/* Java application having as its purpose to test the methods of ** the RecursiveListUtils class and thus, indirectly, those classes ** that implement the RecursiveList interface. */ public class RecListUtilsTester { public static void main(String[] args) { RecursiveListUtils rlu = new RecursiveListUtils(); RecursiveList factory = RecursiveListEmpty.emptyListFactory(); //RecursiveList factory = new RecursiveListEmpty(); Integer[] b1 = new Integer[] { 4, 17, -2, 0, 9, 11 }; Integer[] b2 = new Integer[] { 5, 8, -3, 25, 3 }; RecursiveList list1 = rlu.listify(b1, factory); System.out.print("b1[]: " ); printAry(b1); System.out.println(); System.out.println("List #1: " + list1); System.out.println("Array length is " + b1.length + "; list length is " + rlu.lengthOf(list1)); RecursiveList list2 = rlu.listify(b2, factory); System.out.print("b2[]: " ); printAry(b2); System.out.println(); System.out.println("List #2: " + list2); System.out.println("Array length is " + b2.length + "; list length is " + rlu.lengthOf(list2)); rlu.resetCounter(); RecursiveList list3 = rlu.append(list1,list2); System.out.println("Result of appending list1 with list2: " + list3); System.out.println("Counter = " + rlu.getCounter()); int k = list2.headOf(); // to make sure types are OK rlu.resetCounter(); RecursiveList list4 = rlu.reverse(list3); System.out.println("Result of reversing list3 is " + list4); System.out.println("Counter = " + rlu.getCounter()); rlu.resetCounter(); RecursiveList list5 = rlu.reverse2(list3); System.out.println("Result of reversing list3 is " + list5); System.out.println("Counter = " + rlu.getCounter()); RecursiveList factory2 = RecursiveListEmpty.emptyListFactory(); String[] sAry = new String[] { "glorp", "horta", "spock", "grisgrop" }; RecursiveList strList = rlu.listify(sAry, factory2); System.out.print("sAry[]: " ); printAry(sAry); System.out.println(); System.out.println("strList: " + strList); System.out.println("sAry length is " + sAry.length + "; list length is " + rlu.lengthOf(strList)); RecursiveList revStrList = rlu.reverse2(strList); System.out.println("revStrList: " + revStrList); } private static void printAry(Object[] ary) { for (Object o : ary) { System.out.print(o + " "); } } }