From 8a7ba9a6bfa4815f7438432b4b339295e23a5929 Mon Sep 17 00:00:00 2001 From: vesal <vesa.t.lappalainen@jyu.fi> Date: Mon, 5 Feb 2024 09:39:26 +0200 Subject: [PATCH] live08 --- luennot/live07/.classpath | 12 +++ luennot/live07/.project | 17 +++++ luennot/live07/src/testaaminen/Poista.java | 70 +++++++++++++++++ .../live07/src/testaaminen/PoistaTest.java | 37 +++++++++ .../src/testaaminen/test/PoistaTest.java | 37 +++++++++ luennot/live08/.classpath | 10 +++ luennot/live08/.project | 17 +++++ luennot/live08/src/elaimet/Kissa.java | 55 ++++++++++++++ luennot/live08/src/elaimet/Koira.java | 52 +++++++++++++ luennot/live08/src/oliot/aika/olio/Aika.java | 75 +++++++++++++++++++ .../src/oliot/aika/olio/AikaKokeilu.java | 24 ++++++ luennot/live08/src/poyta/Alisotku.java | 60 +++++++++++++++ luennot/luento10/src/astia1/Astia.java | 2 +- 13 files changed, 467 insertions(+), 1 deletion(-) create mode 100644 luennot/live07/.classpath create mode 100644 luennot/live07/.project create mode 100644 luennot/live07/src/testaaminen/Poista.java create mode 100644 luennot/live07/src/testaaminen/PoistaTest.java create mode 100644 luennot/live07/src/testaaminen/test/PoistaTest.java create mode 100644 luennot/live08/.classpath create mode 100644 luennot/live08/.project create mode 100644 luennot/live08/src/elaimet/Kissa.java create mode 100644 luennot/live08/src/elaimet/Koira.java create mode 100644 luennot/live08/src/oliot/aika/olio/Aika.java create mode 100644 luennot/live08/src/oliot/aika/olio/AikaKokeilu.java create mode 100644 luennot/live08/src/poyta/Alisotku.java diff --git a/luennot/live07/.classpath b/luennot/live07/.classpath new file mode 100644 index 0000000..fe54bca --- /dev/null +++ b/luennot/live07/.classpath @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry combineaccessrules="false" kind="src" path="/demot"/> + <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/luennot/live07/.project b/luennot/live07/.project new file mode 100644 index 0000000..2ab71dd --- /dev/null +++ b/luennot/live07/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>live07</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/luennot/live07/src/testaaminen/Poista.java b/luennot/live07/src/testaaminen/Poista.java new file mode 100644 index 0000000..1f27b55 --- /dev/null +++ b/luennot/live07/src/testaaminen/Poista.java @@ -0,0 +1,70 @@ +package testaaminen; + + +/** + * Esimerkki testaamisesta + * @author vesal + * @version 29.1.2024 + * + */ +public class Poista { + + /** + * Poistetaan jonosta esiintymƤt niin ettei siinƤ ole yhtƤƤn + * poistettava osajonoa. + * @param jono MistƤ poistetaan + * @param poistettava mitƤ poistetaan + * @return jono ilman poistettavaa + * @example + * <pre name="test"> + * poista("Catcat" ,"at") => "Cc"; + * poista("Paatti" ,"at") === "Pi"; + * poista("Puatit" ,"at") === "Puit"; + * poista("Abba" ,"bb") === "Aa"; + * poista("Abbababba","ba") === "Abb"; + * poista("AbbabaaB" ,"ba") === "AB"; + * poista("Abba" ,"Ab") === "ba"; + * poista("Abba" ,"cc") === "Abba"; + * poista("Abba" ,"" ) === "Abba"; + * poista("" ,"Aa") === ""; + * poista("" ,"" ) === ""; + * poista(null ,"" ) === ""; + * poista(null ,"k" ) === ""; // # THROWS NullPointerException + * poista("Kissa" ,null) === "Kissa"; + * </pre> + */ + public static String poista(String jono, String poistettava) { + return demo.d3.Poista.poista(jono, poistettava); + //return "Pi"; + } + + + private static int poistatesti(String jono, String mita, String odotettuTulos) { + String vaihdettu = poista(jono, mita); + if ( vaihdettu.equals(odotettuTulos ) ) return 0; + System.out.println(jono + " => " + vaihdettu + " piti tulla " + + odotettuTulos); + return 1; + } + + + /** + * @param args ei kƤytƶssƤ + */ + public static void main(String[] args) { + int v = 0; + v += poistatesti("Catcat", "at", "Cc"); + v += poistatesti("Paatti", "at", "Pi"); + v += poistatesti("Puatit", "at", "Puit"); + v += poistatesti("Abba", "bb", "Aa"); + v += poistatesti("Abbababba", "ba", "Abb"); + v += poistatesti("AbbabaaB", "ba", "AB"); + v += poistatesti("Abba", "Aa", "Abba"); + v += poistatesti("Abba", "", "Abba"); + v += poistatesti("", "Aa", ""); + v += poistatesti("", "", ""); + // if ( v != 0 ) + System.out.println("VirheitƤ: " + v); + } + +} diff --git a/luennot/live07/src/testaaminen/PoistaTest.java b/luennot/live07/src/testaaminen/PoistaTest.java new file mode 100644 index 0000000..ad60496 --- /dev/null +++ b/luennot/live07/src/testaaminen/PoistaTest.java @@ -0,0 +1,37 @@ +/** + * + */ +package testaaminen; + +import static org.junit.Assert.*; +import static testaaminen.Poista.poista; + +import org.junit.Test; + +/** + * @author vesal + * @version 29.1.2024 + * + */ +public class PoistaTest { + + /** + * Test method for {@link testaaminen.Poista#poista(java.lang.String, java.lang.String)}. + */ + @Test + public void testPoista() { + assertEquals("SelkeƤ","Cc", poista("Catcat","at")); + } + + /** + * Erikoisempia tapauksia + */ + @Test + public void testPoista2() { + assertEquals("Poistaminen tuottaa uuden","Pi", poista("Paatti","at")); + assertEquals("Perusversio","Puit", poista("Puatit","at")); + assertEquals("Poistaminen tuotata uusia","Abb", poista("Abbababba","ba")); + assertEquals("Poistettavaa ei lƶydy","Abba", poista("Abba","Aa")); + } + +} diff --git a/luennot/live07/src/testaaminen/test/PoistaTest.java b/luennot/live07/src/testaaminen/test/PoistaTest.java new file mode 100644 index 0000000..14c6539 --- /dev/null +++ b/luennot/live07/src/testaaminen/test/PoistaTest.java @@ -0,0 +1,37 @@ +package testaaminen.test; +// Generated by ComTest BEGIN +import static org.junit.Assert.*; +import org.junit.*; +import static testaaminen.Poista.*; +// Generated by ComTest END + +/** + * Test class made by ComTest + * @version 2024.01.29 11:22:55 // Generated by ComTest + * + */ +@SuppressWarnings("all") +public class PoistaTest { + + + + // Generated by ComTest BEGIN + /** testPoista19 */ + @Test + public void testPoista19() { // Poista: 19 + assertEquals("From: Poista line: 20", "Cc", poista("Catcat" ,"at")); + assertEquals("From: Poista line: 21", "Pi", poista("Paatti" ,"at")); + assertEquals("From: Poista line: 22", "Puit", poista("Puatit" ,"at")); + assertEquals("From: Poista line: 23", "Aa", poista("Abba" ,"bb")); + assertEquals("From: Poista line: 24", "Abb", poista("Abbababba","ba")); + assertEquals("From: Poista line: 25", "AB", poista("AbbabaaB" ,"ba")); + assertEquals("From: Poista line: 26", "ba", poista("Abba" ,"Ab")); + assertEquals("From: Poista line: 27", "Abba", poista("Abba" ,"cc")); + assertEquals("From: Poista line: 28", "Abba", poista("Abba" ,"" )); + assertEquals("From: Poista line: 29", "", poista("" ,"Aa")); + assertEquals("From: Poista line: 30", "", poista("" ,"" )); + assertEquals("From: Poista line: 31", "", poista(null ,"" )); + assertEquals("From: Poista line: 32", "", poista(null ,"k" )); // # THROWS NullPointerException + assertEquals("From: Poista line: 33", "Kissa", poista("Kissa" ,null)); + } // Generated by ComTest END +} \ No newline at end of file diff --git a/luennot/live08/.classpath b/luennot/live08/.classpath new file mode 100644 index 0000000..f00af9b --- /dev/null +++ b/luennot/live08/.classpath @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/luennot/live08/.project b/luennot/live08/.project new file mode 100644 index 0000000..4444afd --- /dev/null +++ b/luennot/live08/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>live08</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/luennot/live08/src/elaimet/Kissa.java b/luennot/live08/src/elaimet/Kissa.java new file mode 100644 index 0000000..8da106a --- /dev/null +++ b/luennot/live08/src/elaimet/Kissa.java @@ -0,0 +1,55 @@ +package elaimet; + +/** + * Elain-luokka. Kantaluokka elƤimille. + * @author Vesa Lappalainen + * @version 1.0, 06.02.2003 + * +*/ +public class Kissa { + private String nimi; + private double paino; + + /** + * ElƤimen alustus + * @param nimi elƤimen nimi + * @param paino elƤimen paino g + */ + public Kissa(String nimi, double paino) { + this.nimi = nimi; + this.paino = paino; + } + + + /** + * ElƤimen ƤƤntely + */ + public void aantele() { + System.out.println("Miauuu"); + } + + + /** + * @return elƤimen tiedot muodossa "Miuku 18000" + */ + @Override + public String toString() { + return nimi + " " + paino; + } + + /** + * Testataan Kissa-luokkaa + * @param args ei kƤytƶssƤ + */ + public static void main(String[] args) { + + Kissa miuku = new Kissa("Miuku", 18000); + miuku.aantele(); + System.out.println(miuku); + + Kissa mirri = new Kissa("Mirri", 930); + mirri.aantele(); + System.out.println(mirri.toString()); + } + +} diff --git a/luennot/live08/src/elaimet/Koira.java b/luennot/live08/src/elaimet/Koira.java new file mode 100644 index 0000000..e33b146 --- /dev/null +++ b/luennot/live08/src/elaimet/Koira.java @@ -0,0 +1,52 @@ +package elaimet; + +/** + * Elain-luokka. Kantaluokka elƤimille. + * @author Vesa Lappalainen + * @version 1.0, 06.02.2003 + * +*/ +public class Koira { + private String nimi; + private double paino; + + /** + * ElƤimen alustus + * @param nimi elƤimen nimi + * @param paino elƤimen paino g + */ + public Koira(String nimi, double paino) { + this.nimi = nimi; + this.paino = paino; + } + + + /** + * ElƤimen ƤƤntely + */ + public void aantele() { + System.out.println("Wuff"); + } + + + /** + * @return elƤimen tiedot muodossa "Miuku 18000" + */ + @Override + public String toString() { + return nimi + " " + paino; + } + + /** + * Testataan Kissa-luokkaa + * @param args ei kƤytƶssƤ + */ + public static void main(String[] args) { + + Koira musti = new Koira("Musti", 12000); + musti.aantele(); + System.out.println(musti); + + } + +} diff --git a/luennot/live08/src/oliot/aika/olio/Aika.java b/luennot/live08/src/oliot/aika/olio/Aika.java new file mode 100644 index 0000000..60b9b1e --- /dev/null +++ b/luennot/live08/src/oliot/aika/olio/Aika.java @@ -0,0 +1,75 @@ +package oliot.aika.olio; + +/** + * EnsimmƤinen kunnon olioesimerkki + * @author Vesa Lappalainen @version 1.0, 01.02.2003 + * @author Santtu Viitanen @version 1.1, 7.7.2011 + * @example + * <pre name="test"> + * Aika a1 = new Aika(12,15); + * a1.lisaa(55); a1.toString() === "13:10"; + * </pre> + */ +public class Aika { // luokka + + private int h; // attribuuti + private int m; + + + /** + * alustetaan keskiyƶhƶn + */ + public Aika() { + this.h = 0; + this.m = 0; + } + + + + /** + * Alustaa ajan + * @param h tunnit + * @param m minuutit + * @example + * <pre name="test"> + * new Aika(12,15).toString() === "12:15"; + * </pre> + */ + public Aika(int h, int m) { // Muodostaja + this.h = h; + this.m = m; + } + + + + /** + * LisƤƤ aikaan valitun minuuttimƤƤrƤn + * @param lisaMin lisƤttƤvƤ minuuttimƤƤrƤ + * @example + * <pre name="test"> + * Aika a1 = new Aika(13,16); + * a1.lisaa(27); a1.toString() === "13:43"; + * a1.lisaa(39); a1.toString() === "14:22"; + * </pre> + */ + public void lisaa(int lisaMin) { + int yht_min = this.h * 60 + this.m + lisaMin; + this.h = yht_min / 60; + this.m = yht_min % 60; + } + + + /** + * @return aika merkkijonona muodossa 12:05 + * @example + * <pre name="test"> + * new Aika(7,5).toString() === "07:05"; + * new Aika(12,15).toString() === "12:15"; + * </pre> + */ + @Override + public String toString() { + return String.format("%02d:%02d", this.h, this.m); + } + +} diff --git a/luennot/live08/src/oliot/aika/olio/AikaKokeilu.java b/luennot/live08/src/oliot/aika/olio/AikaKokeilu.java new file mode 100644 index 0000000..3f3071a --- /dev/null +++ b/luennot/live08/src/oliot/aika/olio/AikaKokeilu.java @@ -0,0 +1,24 @@ +package oliot.aika.olio; + +/** + * @author vesal + * @version 30.1.2024 + */ +public class AikaKokeilu { + /** + * @param args ei kƤytƶssƤ + */ + public static void main(String[] args) { + Aika a1 = new Aika(); // olio a1 on olioviite + System.out.println(a1.toString()); + a1.lisaa(55); + // a1.h = 175; + System.out.println(a1.toString()); + Aika a2 = new Aika(12,15); // olio a1 on olioviite + System.out.println(a2.toString()); + a2.lisaa(90); + System.out.println(a2.toString()); + System.out.println(a1.toString()); + } + +} diff --git a/luennot/live08/src/poyta/Alisotku.java b/luennot/live08/src/poyta/Alisotku.java new file mode 100644 index 0000000..b348f54 --- /dev/null +++ b/luennot/live08/src/poyta/Alisotku.java @@ -0,0 +1,60 @@ +package poyta; + +/** + * MitƤ ohjelma tulostaa?? + * @author Vesa Lappalainen + * @version 1.0, 19.01.2003 + */ + +@SuppressWarnings("all") +public class Alisotku { + + /** + * Palauttaa merkkijonon kokonaislukuna + * @param s muutettava merkkijono + * @return merkkijonosta saatu kokonaisluku + */ + private static int i(StringBuilder s) { + return Integer.parseInt(s.toString()); + } + + /** + * Sijoittaa kokonaisluvun arvon merkkijonoon + * @param s merkkijono johon tulos sijoitetaan + * @param i kokonaisluku joka sijoitetaan + */ + private static void set(StringBuilder s,int i) { + s.delete(0, s.length()).append(""+i); + } +// BYCODEBEGIN +/* 01 */ static int a; static StringBuilder b; static int c; +/* 02 */ +/* 03 */ private static void ali_1(StringBuilder a, int b) +/* 04 */ { +/* 05 */ int d; +/* 06 */ d = i(a); +/* 07 */ c = b + 3; +/* 08 */ b = d - 1; +/* 09 */ a.append(""+(c - 5)); +/* 10 */ } +/* 11 */ +/* 12 */ private static void ali_2(StringBuilder a, StringBuilder b) +/* 13 */ { +/* 14 */ int c; +/* 15 */ c = i(a) + i(b); +/* 16 */ set(a,9 - c); +/* 17 */ set(b,32); +/* 18 */ } +/* 19 */ +/* 20 */ public static void main(String[] args) { +/* 21 */ StringBuilder d = new StringBuilder(); b = new StringBuilder(); +/* 22 */ a=1; set(b,2); c=3; set(d,4); +/* 23 */ ali_1(d,c); +/* 24 */ ali_2(b,d); +/* 25 */ ali_1(d,3+i(d)); +/* 26 */ System.out.println("" + a + " " + b + " " + c + " " + d); +/* 27 */ } +// BYCODEEND + +} + diff --git a/luennot/luento10/src/astia1/Astia.java b/luennot/luento10/src/astia1/Astia.java index 4f0385c..3bfa2c5 100644 --- a/luennot/luento10/src/astia1/Astia.java +++ b/luennot/luento10/src/astia1/Astia.java @@ -15,7 +15,7 @@ package astia1; * @version 1.0, 09.02.2003 */ public class Astia { - private double tilavuus; + private final double tilavuus; private double maara; -- GitLab