gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, primeri se sada sami pokrecu.
authorDoni Pracner <quinnuendo@gmail.com>
Sun, 15 Nov 2015 13:18:13 +0000 (14:18 +0100)
committerDoni Pracner <quinnuendo@gmail.com>
Sun, 15 Nov 2015 13:18:13 +0000 (14:18 +0100)
U svim klasama primerima su dodati main metodi koji pokrecu test program
sa adekvatnim parametrima.

Hash/Gadjanje.java
Hash/Kancelarija.java
Hash/TestHash.java
Hash/XO.java

index 27684ec..b70b6d0 100644 (file)
@@ -9,22 +9,6 @@ public class Gadjanje extends InfoTip {
        private int[] rezultati;
        private static int MAX_DUZ = 20;
 
-       public Gadjanje(String linija) {
-               String[] delovi = linija.replaceAll("  ", " ").split(" ");
-               if (delovi.length > 0) {
-                       try {
-                               int br = Integer.parseInt(delovi[0]);
-                               rezultati = new int[br];
-                               for (int i = 0; i < br; i++) {
-                                       rezultati[i] = Integer.parseInt(delovi[i + 1]);
-                               }
-                       } catch (Exception ex) {
-                               throw new RuntimeException(ex);
-                       }
-               } else
-                       throw new RuntimeException("Pogresan broj argumenata u redu");
-       }
-
        public Gadjanje() {
                // prazan konstruktor potreban za test program
        }
@@ -93,4 +77,26 @@ public class Gadjanje extends InfoTip {
                return str;
        }
 
+       // pomocni metod za lakse testiranje
+       public static void main(String[] args) {
+               new TestHash(new Gadjanje(), "mete").run();
+       }
+       
+       // ovaj konstruktor nije neophodan, ostavljen je kao primer
+       public Gadjanje(String linija) {
+               String[] delovi = linija.replaceAll("  ", " ").split(" ");
+               if (delovi.length > 0) {
+                       try {
+                               int br = Integer.parseInt(delovi[0]);
+                               rezultati = new int[br];
+                               for (int i = 0; i < br; i++) {
+                                       rezultati[i] = Integer.parseInt(delovi[i + 1]);
+                               }
+                       } catch (Exception ex) {
+                               throw new RuntimeException(ex);
+                       }
+               } else
+                       throw new RuntimeException("Pogresan broj argumenata u redu");
+       }
+
 }
index 6d157b5..655a1cc 100644 (file)
@@ -11,19 +11,6 @@ public class Kancelarija extends InfoTip {
        private String prezime;
        private int broj;
 
-       public Kancelarija(String line) {
-               String[] delovi = line.replaceAll("  ", " ").split(" ");
-               if (delovi.length == 2) {
-                       try {
-                               prezime = delovi[0];
-                               broj = Integer.parseInt(delovi[1]);
-                       } catch (Exception ex) {
-                               throw new RuntimeException(ex);
-                       }
-               } else
-                       throw new RuntimeException("Pogresan broj argumenata u redu");
-       }
-
        public Kancelarija(String prezime, int broj) {
                this.prezime = prezime;
                this.broj = broj;
@@ -51,12 +38,12 @@ public class Kancelarija extends InfoTip {
 
                // Prvo proveravamo broj
                if (broj != k2.broj) {
-                   return false;
+                       return false;
                }
 
                // A potom prezime
                if (!Objects.equals(prezime, k2.prezime)) {
-                   return false;
+                       return false;
                }
 
                // Proverili smo polja i sva su jednaka
@@ -79,4 +66,24 @@ public class Kancelarija extends InfoTip {
                InfoTip rez = new Kancelarija(prez, br);
                return rez;
        }
+
+       // pomocni metod za lakse testiranje
+       public static void main(String[] args) {
+               new TestHash(new Kancelarija(), "kancelarije").run();
+       }
+       
+       // ovaj konstruktor nije neophodan, ostavljen je kao primer
+       public Kancelarija(String line) {
+               String[] delovi = line.trim().split(" ");
+               if (delovi.length == 2) {
+                       try {
+                               prezime = delovi[0];
+                               broj = Integer.parseInt(delovi[1]);
+                       } catch (Exception ex) {
+                               throw new RuntimeException(ex);
+                       }
+               } else
+                       throw new RuntimeException("Pogresan broj argumenata u redu");
+       }
+
 }
index 607d3b1..565614b 100644 (file)
@@ -4,25 +4,41 @@
  * Napravljen je da prikazuje rezultate ubacivanja istog fajla u tabele
  * razlicitih velicina.
  * 
- * Takodje se lako moze promeniti tip podataka koji se ubacuje promenama dve
- * promenljive na pocetku klase. Medjutim da bi to radilo tipovi treba da
- * prosiruju klasu InfoTip i da imaju ili prazan konstruktor ili da se nekako
- * drugacije inicijalizuje objekat `element` u ovoj klasi.
+ * Takodje se lako moze promeniti tip podataka koji se ubacuje prosledjivanjem
+ * odgovarajuceg tipa i imena foldera u konstruktoru, ili promenama dve
+ * promenljive na pocetku klase.
+ * 
+ * Medjutim da bi to radilo tipovi treba da prosiruju klasu InfoTip i da imaju
+ * ili prazan konstruktor ili da se nekako drugacije inicijalizuje objekat
+ * `element` u ovoj klasi.
+ * 
+ * Takodje se ocekuje da postoje fajlovi tipa "t0" i "t2" za testiranje. Osnova
+ * imena fajla se moze proslediti u konstruktoru, ali ce program svakako traziti
+ * fajlove koji se zavrsavaju sa 0 i 2. To se moze promeniti u kodu ovog
+ * programa.
  */
 public class TestHash {
 
        // treba promeniti tip ovog objekta i folder u kome su adekvatni
        // podaci da bi se radilo sa drugim podacima
+       // ovo se moze uraditi u konstruktoru
        private InfoTip element = new Kancelarija();
        private String folder = "kancelarije";
+       private String osnova = "/t";
+
+       public TestHash() {
+
+       }
 
-       // Na primer ovako treba podesiti za Gadjanje mete
-       // private InfoTip element = new Gadjanje();
-       // private String folder = "mete";
+       public TestHash(InfoTip element, String folder, String osnova) {
+               this.element = element;
+               this.folder = folder;
+               this.osnova = osnova;
+       }
 
-       // a ovako za XO
-       // private InfoTip element = new XO();
-       // private String folder = "xo";
+       public TestHash(InfoTip element, String folder) {
+               this(element, folder, "/t");
+       }
 
        /*
         * Pravi praznu mapu i ispisuje je
@@ -59,7 +75,8 @@ public class TestHash {
                        }
                        Svetovid.closeIn(fajl);
                }
-               hash.printStats();
+               System.out.println("-- dodatni testovi ubacivanja i izbacivanja --");
+               // hash.printStats();
                InfoTip it = hash.someElement();
                if (!hash.add(it)) {
                        System.out.println("success: not added again");
@@ -81,7 +98,7 @@ public class TestHash {
        public void run() {
                // emptyTest();
 
-               String fajl = "/t2.txt";
+               String fajl = osnova + "2.txt";
 
                infoTest(folder + fajl, 101, element);
                Svetovid.out.println();
@@ -91,7 +108,7 @@ public class TestHash {
                Svetovid.out.println();
 
                // add remove radimo na manjem fajlu
-               addRemoveTest(folder + "/t0.txt", 101, element);
+               addRemoveTest(folder + osnova + "0.txt", 101, element);
 
        }
 
index ef94eea..8645f09 100644 (file)
@@ -62,4 +62,8 @@ public class XO extends InfoTip {
                return rez;
        }
 
+       // pomocni metod za lakse testiranje
+       public static void main(String[] args) {
+               new TestHash(new XO(), "xo").run();
+       }
 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner