Commits

Germano Gabbianelli committed 9d140be

Corretti i metodi equals e daArray di NodoLista e aggiunti i relativi test.

  • Participants
  • Parent commits cb70d8a

Comments (0)

Files changed (3)

File Calcolatrice.java

 class Calcolatrice {
     public static void main(String[] args) {
+        Test.testNodoLista();
         Test.testNumero();
     }
 }

File NodoLista.java

     public NodoLista next;
 
     public NodoLista() {
+        this.info = 0;
         this.next = null;
     }
 
     public boolean equals(NodoLista nodo) {
         NodoLista me = this;
 
-        while (me != null && nodo != null) {
-            if (me.info == nodo.info) {
-                if (me.next == nodo.next)
-                    return true;
-            } else {
+        while (me != null) {
+            if (nodo == null || me.info != nodo.info)
                 return false;
-            }
+            else if (me.next == nodo.next)
+                return true;
+            me = me.next;
+            nodo = nodo.next;
         }
-        return true;
+        if (nodo != null)
+            return false;
+        else
+            return true;
+
     }
 
-    public static NodoLista daArray(int[] oggetti) {
+    public static NodoLista daArray(int[] cifre) {
         NodoLista primo, nodo;
 
         primo = nodo = new NodoLista();
         
-        for (int i = 0; i < oggetti.length; i++) {
-            nodo.info = oggetti[i];
+        for (int i = 0; i < cifre.length -1; i++) {
+            nodo.info = cifre[i];
             nodo = nodo.next = new NodoLista();
         }
+        nodo.info = cifre[cifre.length-1];
         return primo;
     }
             
 class Test {
 
+    public static void testNodoLista() {
+        System.out.println("********** TEST: NodoLista **********");
+        
+        NodoLista nodo = new NodoLista();
+
+        // test getLunghezza
+        for (int i = 0; i < 4; i++)
+            nodo = new NodoLista(10, nodo);
+        System.out.println(nodo.getLunghezza() + " == 5");
+
+        // test daArray
+        nodo = NodoLista.daArray(new int[] {10, 87, 1, 0});
+        System.out.println(nodo.info + " == 10");
+        System.out.println(nodo.next.info + " == 87");
+        System.out.println(nodo.getLunghezza() + " == 4");
+
+        // test equals
+        NodoLista nodo2 = NodoLista.daArray(new int[] {10, 87, 1, 0});
+        System.out.println(nodo.equals(nodo) + " == true");
+        System.out.println(nodo.equals(nodo2) + " == true");
+
+        nodo2.next = nodo.next;
+        System.out.println(nodo.equals(nodo2) + " == true");
+
+        nodo2.next = nodo.next.next;
+        System.out.println(nodo.equals(nodo2) + " == false");
+
+        nodo2 = NodoLista.daArray(new int[] {10, 87, 1});
+        System.out.println(nodo.equals(nodo2) + " == false");
+
+        nodo2 = NodoLista.daArray(new int[] {41, 31, 6, 10});
+        System.out.println(nodo.equals(nodo2) + " == false");
+
+    }
+
     public static void testNumero() {
+        System.out.println("********** TEST: Numero **********");
+
         Numero zero = new Numero("0"),
                max_int = new Numero("2147483647"),                // 2³¹-1
                max_long = new Numero("9223372036854775807"),      // 2⁶³-1
 
     }
 }
+