From 5961f14f6909cc29132d583075927d3b63256cdc Mon Sep 17 00:00:00 2001 From: Niemi Miikka Matias <miikka.m.niemi@student.jyu.fi> Date: Mon, 24 Mar 2025 18:01:37 +0200 Subject: [PATCH] testeja niin saakutisti --- Ohj2HT/koko | 0 Ohj2HT/lajit | 0 Ohj2HT/src/Luokat/Reissu.java | 113 ++++++++++++++++++++++-- Ohj2HT/src/Luokat/Reissut.java | 48 ++++++++++ Ohj2HT/src/Luokat/test/ReissuTest.java | 59 ++++++++++++- Ohj2HT/src/Luokat/test/ReissutTest.java | 37 +++++++- Ohj2HT/viehe | 0 7 files changed, 247 insertions(+), 10 deletions(-) create mode 100644 Ohj2HT/koko create mode 100644 Ohj2HT/lajit create mode 100644 Ohj2HT/viehe diff --git a/Ohj2HT/koko b/Ohj2HT/koko new file mode 100644 index 0000000..e69de29 diff --git a/Ohj2HT/lajit b/Ohj2HT/lajit new file mode 100644 index 0000000..e69de29 diff --git a/Ohj2HT/src/Luokat/Reissu.java b/Ohj2HT/src/Luokat/Reissu.java index 9137317..fa6ade3 100644 --- a/Ohj2HT/src/Luokat/Reissu.java +++ b/Ohj2HT/src/Luokat/Reissu.java @@ -8,8 +8,8 @@ import java.util.ArrayList; import java.util.List; /** - * Luokka yhden reissun esittämistä varten osaa muodostaa reissun joko suoraan tiedoston tiedoista tai attribuuteista - * osaa myös muuttaa reissun tiedot tallennus muotoon + * Luokka yhden reissun esittämistä varten osaa muodostaa reissun joko suoraan tiedoston + * tiedoista tai attribuuteista, sekä osaa myös muuttaa reissun tiedot tallennus muotoon. */ public class Reissu { private LocalDate Pvm; @@ -20,6 +20,9 @@ private String keli; private List<Saalis> saaliit; private boolean poistetaanko; +/** + * Konstruktori reissun luomiseen annetuilla tiedoilla. + */ public Reissu(LocalDate Pvm, String sijainti, String keli, List<Saalis> saaliit, boolean poistetaanko) { this.Pvm = Pvm; this.reissunTag = SeuraavanReissunTag; @@ -29,8 +32,33 @@ private boolean poistetaanko; this.saaliit = saaliit; this.poistetaanko = false; } + /** + * get metodit palauttavat halutun asian halutussa muodossa + * + * testit gettereille + /**@example + * <pre name="test"> + * #import Luokat.*; + * #import java.time.LocalDate; + * #import java.util.ArrayList; + * #import java.util.List; + + * #import org.junit.*; - + #import Luokat.Reissu; + #import Luokat.Saalis; + + * LocalDate pvm = LocalDate.of(2024, 4, 21); + * List<Saalis> saaliit = new ArrayList<>(); + * Reissu r = new Reissu(pvm, "Helsinki", "aurinkoinen", saaliit, false); + * + * r.getPaivamaara() === pvm; + * r.getSijainti() === "Helsinki"; + * r.getpoistetaanko() === false; + * r.getSaaliit() === saaliit; + * </pre> + */ + public int getTag() { return reissunTag; } @@ -54,15 +82,40 @@ private boolean poistetaanko; public boolean getpoistetaanko() { return poistetaanko; } + + + /** + * asettaa reissun poistetaanko arvoksi true, jolloin sitä ei enään tarvita. + */ public void poistetaan() { poistetaanko = true; } + /** + * Muuntaa päivämäärän merkkijonosta LocalDate-muotoon. + * Tukee useita välimerkkejä ja yksinumeroisia päiviä/kuukausia. + * @param pvm: päivämäärä, joka halutaan muuttaa. + * @return LocalDate tai null, riippuen siitä oliko päivämäärä validi. + * + * testi + /**@example + * <pre name="test"> + * sToDate("12.43 Å() 2004") === null; + * sToDate("12.4.2004") === LocalDate.of(2004,4,12); + * sToDate(" 12 3,2004") === null; + * sToDate("12/4 2004") === LocalDate.of(2004,4,12); + * sToDate("12 4,2004") === LocalDate.of(2004,4,12); + * </pre> + + */ + public static LocalDate sToDate(String pvm) { DateTimeFormatter paivamaara = DateTimeFormatter.ofPattern("dd-MM-yyyy"); - pvm = pvm.replace('.', '-').replace(' ', '-').replace(',', '-'); + + pvm = pvm.replace('.', '-').replace('/', '-').replace(',', '-').replace(' ', '-'); + pvm = pvm.trim().replaceAll("\\s+", ""); String[] osat = pvm.split("-"); if (osat.length == 3) { @@ -81,6 +134,15 @@ private boolean poistetaanko; } } + + /** + * Tarkistaa, onko annettu päivämäärä merkkijonona oikeassa muodossa. + * @param dateStr Tarkistettava päivämäärä + * @param formatter Käytettävä formatteri + * @return true jos validi, muuten false + */ + + public static boolean onkoValid(String dateStr, DateTimeFormatter formatter) { try { LocalDate.parse(dateStr, formatter); @@ -90,6 +152,22 @@ private boolean poistetaanko; } } + /** + * Konstruktori reissun luomiseen tiedostorivistä. + * @param tiedosto Yksi reissurivi tiedostosta + * + * testit + /**@example + * <pre name="test"> + * Reissu r = new Reissu("5|02.03.2024|Rovaniemi|kylmä"); + * r.getTag() === 5; + * r.getPaivamaara() ===LocalDate.of(2024, 3, 2); + * r.getSijainti() === "Rovaniemi"; + * r.getKeli() === "kylmä"; + * r.getpoistetaanko() === false; + * </pre> + */ + public Reissu (String tiedosto) { String[] t = tiedosto.split("\\|"); this.Pvm = sToDate(t[1]); @@ -100,18 +178,41 @@ private boolean poistetaanko; SeuraavanReissunTag = tagi+1; this.poistetaanko = false; } + + + /** + * Asettaa reissun saalislistan. + * @param saaliit Lista saaliista + */ + public void setSaaliit(List<Saalis> saaliit) { this.saaliit = saaliit; } + + /** + * Muuntaa reissun tiedot tallennusmuotoon (merkkijonoksi). + * @return tallennusmuotoinen merkkijono + /**@example + * <pre name="test"> + * LocalDate pvm = LocalDate.of(2023, 5, 10); + * Reissu r = new Reissu(pvm, "Oulu", "selkeä", new ArrayList<>(), false); + * String tallennus = r.toString(); + * tallennus.matches("\\d+\\|10\\.05\\.2023\\|Oulu\\|selkeä") === true; + * + * </pre> + */ + + public String toString() { String tag = Integer.toString(reissunTag); String pvm = Pvm.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")).replace('-', '.'); return tag + "|" + pvm + "|" + sijainti + "|" + keli; } - - //helppo testi + + + //nopea testi mainilla public static void main(String[] args) { Reissu testi = new Reissu( sToDate("01.12.2025"), "Jyväskylä", "lumisade", new ArrayList<>(), false); diff --git a/Ohj2HT/src/Luokat/Reissut.java b/Ohj2HT/src/Luokat/Reissut.java index 6535b5b..309704b 100644 --- a/Ohj2HT/src/Luokat/Reissut.java +++ b/Ohj2HT/src/Luokat/Reissut.java @@ -91,6 +91,12 @@ public class Reissut { } + /** + * käy reissut läpi ja katsoo onko missään yksittäisessä reissussa poistetaanko + * arvo = true. Tällöin reissu poistetaan + */ + + public void removeReissu() { Iterator<Reissu> iterator = reissut.iterator(); while (iterator.hasNext()) { @@ -101,7 +107,44 @@ public class Reissut { } } } + + /* testit + /**@example + * <pre name="test"> + * #import java.time.LocalDate; + #import java.util.ArrayList; + #import java.util.List; + + #import org.junit.Before; + #import org.junit.Test; + #import Luokat.Reissu; + #import Luokat.Reissut; + #import Luokat.Tulkki; + + * + * Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); + Tulkki viehe = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat"); + Tulkki koko = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); + + * Reissut test = new Reissut(lajit, koko, viehe); + * test.getReissut().clear(); + * + * Reissu t0 = new Reissu(Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false); + * Reissu t1 = new Reissu(Reissu.sToDate("12.12.2023"), "jk", "sade", new ArrayList<>(), false); + * Reissu t2 = new Reissu(Reissu.sToDate("12.12.1223"), "sk", "aurinko", new ArrayList<>(), false); + * Reissu t3 = new Reissu(Reissu.sToDate("15.11.2024"), "ka", "pilvi", new ArrayList<>(), false); + * test.lisaaListaan(t1); + * test.lisaaListaan(t2); + * test.lisaaListaan(t3); + * test.lisaaListaan(t0); + * test.getReissut().size() === 4; + * t1.poistetaan(); + * + * test.removeReissu(); + * test.getReissut().size() === 3; + * </pre> + */ // Testi public static void main(String[] args) { Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); @@ -116,6 +159,7 @@ public class Reissut { reissut.lisaaListaan(t1); reissut.lisaaListaan(t2); reissut.lisaaListaan(t3); reissut.lisaaListaan(t0); + for (Reissu t: reissut.getReissut()) { System.out.println("ennen " + t.getPvmString()); } @@ -148,4 +192,8 @@ public class Reissut { } //todo: // tallenna() + + } + + diff --git a/Ohj2HT/src/Luokat/test/ReissuTest.java b/Ohj2HT/src/Luokat/test/ReissuTest.java index 75775ba..130842b 100644 --- a/Ohj2HT/src/Luokat/test/ReissuTest.java +++ b/Ohj2HT/src/Luokat/test/ReissuTest.java @@ -1,17 +1,72 @@ package Luokat.test; // Generated by ComTest BEGIN -import static org.junit.Assert.*; +import java.util.ArrayList; +import java.util.List; import org.junit.*; +import Luokat.Reissu; +import Luokat.Saalis; +import static org.junit.Assert.*; import Luokat.*; +import java.time.LocalDate; +import static Luokat.Reissu.*; // Generated by ComTest END /** * Test class made by ComTest - * @version 2025.03.19 08:54:17 // Generated by ComTest + * @version 2025.03.24 17:03:45 // Generated by ComTest * */ @SuppressWarnings({ "all" }) public class ReissuTest { + + // Generated by ComTest BEGIN + /** testGetTag40 */ + @Test + public void testGetTag40() { // Reissu: 40 + LocalDate pvm = LocalDate.of(2024, 4, 21); + List<Saalis> saaliit = new ArrayList<>(); + Reissu r = new Reissu(pvm, "Helsinki", "aurinkoinen", saaliit, false); + assertEquals("From: Reissu line: 55", pvm, r.getPaivamaara()); + assertEquals("From: Reissu line: 56", "Helsinki", r.getSijainti()); + assertEquals("From: Reissu line: 57", false, r.getpoistetaanko()); + assertEquals("From: Reissu line: 58", saaliit, r.getSaaliit()); + } // Generated by ComTest END + + + // Generated by ComTest BEGIN + /** testSToDate104 */ + @Test + public void testSToDate104() { // Reissu: 104 + assertEquals("From: Reissu line: 105", null, sToDate("12.43 Å() 2004")); + assertEquals("From: Reissu line: 106", LocalDate.of(2004,4,12), sToDate("12.4.2004")); + assertEquals("From: Reissu line: 107", null, sToDate(" 12 3,2004")); + assertEquals("From: Reissu line: 108", LocalDate.of(2004,4,12), sToDate("12/4 2004")); + assertEquals("From: Reissu line: 109", LocalDate.of(2004,4,12), sToDate("12 4,2004")); + } // Generated by ComTest END + + + // Generated by ComTest BEGIN + /** testReissu161 */ + @Test + public void testReissu161() { // Reissu: 161 + Reissu r = new Reissu("5|02.03.2024|Rovaniemi|kylmä"); + assertEquals("From: Reissu line: 163", 5, r.getTag()); + assertEquals("From: Reissu line: 164", LocalDate.of(2024, 3, 2), r.getPaivamaara()); + assertEquals("From: Reissu line: 165", "Rovaniemi", r.getSijainti()); + assertEquals("From: Reissu line: 166", "kylmä", r.getKeli()); + assertEquals("From: Reissu line: 167", false, r.getpoistetaanko()); + } // Generated by ComTest END + + + // Generated by ComTest BEGIN + /** testToString197 */ + @Test + public void testToString197() { // Reissu: 197 + LocalDate pvm = LocalDate.of(2023, 5, 10); + Reissu r = new Reissu(pvm, "Oulu", "selkeä", new ArrayList<>(), false); + String tallennus = r.toString(); + assertEquals("From: Reissu line: 201", true, tallennus.matches("\\d+\\|10\\.05\\.2023\\|Oulu\\|selkeä")); + } // Generated by ComTest END } \ No newline at end of file diff --git a/Ohj2HT/src/Luokat/test/ReissutTest.java b/Ohj2HT/src/Luokat/test/ReissutTest.java index 6485584..5bc320d 100644 --- a/Ohj2HT/src/Luokat/test/ReissutTest.java +++ b/Ohj2HT/src/Luokat/test/ReissutTest.java @@ -1,15 +1,48 @@ package Luokat.test; // Generated by ComTest BEGIN +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import org.junit.Before; +import org.junit.Test; +import Luokat.Reissu; +import Luokat.Reissut; +import Luokat.Tulkki; import static org.junit.Assert.*; import org.junit.*; -import Luokat.*; +import static Luokat.Reissut.*; // Generated by ComTest END /** * Test class made by ComTest - * @version 2025.02.24 13:03:17 // Generated by ComTest + * @version 2025.03.24 18:01:11 // Generated by ComTest * */ @SuppressWarnings({ "all" }) public class ReissutTest { + + + + // Generated by ComTest BEGIN + /** testMain113 */ + @Test + public void testMain113() { // Reissut: 113 + Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); + Tulkki viehe = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat"); + Tulkki koko = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); + Reissut test = new Reissut(lajit, koko, viehe); + test.getReissut().clear(); + Reissu t0 = new Reissu(Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false); + Reissu t1 = new Reissu(Reissu.sToDate("12.12.2023"), "jk", "sade", new ArrayList<>(), false); + Reissu t2 = new Reissu(Reissu.sToDate("12.12.1223"), "sk", "aurinko", new ArrayList<>(), false); + Reissu t3 = new Reissu(Reissu.sToDate("15.11.2024"), "ka", "pilvi", new ArrayList<>(), false); + test.lisaaListaan(t1); + test.lisaaListaan(t2); + test.lisaaListaan(t3); + test.lisaaListaan(t0); + assertEquals("From: Reissut line: 141", 4, test.getReissut().size()); + t1.poistetaan(); + test.removeReissu(); + assertEquals("From: Reissut line: 145", 3, test.getReissut().size()); + } // Generated by ComTest END } \ No newline at end of file diff --git a/Ohj2HT/viehe b/Ohj2HT/viehe new file mode 100644 index 0000000..e69de29 -- GitLab