package homework4;

import edu.unca.cs.csci202.IntList ;

/**
 *
 * @author J Dean Brock <brock@unca.edu>
 */
public class TestDriver {

    static private final int numTests = 10 ;
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int numPassed = 0 ;
        for (int i=0; i<10; ++i) {
            System.out.println("Test " + i) ;
            // Generate a random number between 8 and 15
            int vectSize = 8 + (int)(8*Math.random()) ;
            System.out.println("List size is " + vectSize) ;
            // Initialize an IntList
            IntList list = null ;
            int squareTotal = 0 ;
            System.out.print("List is [") ;
            for (int j=0; j<vectSize; ++j) {
                // Generate a random number between 8 and 99
                int vectElement = (int)(100*Math.random()) ;
                System.out.printf("%3d", vectElement) ;
                System.out.print(j<vectSize-1 ? ',' : ']') ;
                list = new IntList(vectElement, list) ;
                squareTotal += vectElement*vectElement ;
            }
            System.out.println() ;
            System.out.println("Sum of squares should be " + squareTotal) ;
            System.out.println("Calling SumSquares.sumQuares()") ;
            int squareReturn = SumSquares.sumSquares(list) ;
            System.out.println("SumSquares.sumSquares returned "
                    + squareReturn) ;
            if (squareTotal == squareReturn) {
                System.out.println("Success!") ;
                ++numPassed ;
            } else {
                System.out.println("Failure!") ;
            }
            System.out.println() ;
        }
        if (numPassed == numTests) {
            System.out.println("All tests passed!") ;
        } else {
            System.out.println("Failed on "
                    + (numTests-numPassed) + " tests") ;
        }

    }
}
