/**
 * A driver that can be used to test the TaxCalculator class
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public class CalculatorDriver
{
    /**
     * The entry-point of the application
     *
     * @param args   The command-line arguments
     */
    public static void main(String[] args)
    {

       // TaxCalculator.isValid()
       System.out.println("\nisValid()");       
       {
          for (int i=-2; i<5; i++)
          {
             boolean valid;
             
             valid = TaxCalculator.isValid(i);             
             System.out.printf("Actual: %b\tExpected: %b\n", 
                               valid, ((i>=0) && (i<=2)));
             
          }
       }


       double[] values     = {10.00, 5.00, 20.00};
       int[]    categories = {TaxCalculator.NON_FOOD, 
                              TaxCalculator.FOOD,
                              TaxCalculator.PREPARED_FOOD};
       double   tax, total;


       // TaxCalculator.total()
       System.out.println("\ntotal()");       
       {
          total = TaxCalculator.total(values, categories, 
                                      TaxCalculator.NON_FOOD);

          System.out.printf("Actual: %8.4f\tExpected: %8.4f\n", 
                            total, values[0]);
             
             
          total = TaxCalculator.total(values, categories, 
                                      TaxCalculator.FOOD);

          System.out.printf("Actual: %8.4f\tExpected: %8.4f\n", 
                            total, values[1]);
             
             
          total = TaxCalculator.total(values, categories, 
                                      TaxCalculator.PREPARED_FOOD);

          System.out.printf("Actual: %8.4f\tExpected: %8.4f\n", 
                            total, values[2]);
             
       }




       // TaxCalculator.nonfoodTax()
       System.out.println("\nnonfoodTax()");       
       {
          
          tax = TaxCalculator.nonfoodTax(values, categories);
          System.out.printf("Actual: %8.4f\tExpected: %8.4f\n", 
                            tax, 0.50);
       }





       // TaxCalculator.foodTax()
       System.out.println("\nfoodTax()");       
       {
          
          tax = TaxCalculator.foodTax(values, categories);
          System.out.printf("Actual: %8.4f\tExpected: %8.4f\n", 
                            tax, 0.15);
       }




       // TaxCalculator.preparedfoodTax()
       System.out.println("\npreparedfoodTax()");       
       {
          
          tax = TaxCalculator.preparedfoodTax(values, categories);
          System.out.printf("Actual: %8.4f\tExpected: %8.4f\n", 
                            tax, 2.40);
       }




    }
    
    
}