package hw1;

/**
 * A driver that can be used to test the WingPricer class.
 * 
 * @author CS159 Professors
 * @version 1
 */
public class WingPricerTest {

	/**
	 * The entry point of the driver.
	 * 
	 * @param args The command-line arguments (which are ignored)
	 */
	public static void main(String[] args) {
		
		System.out.println("\n");
		System.out.println("Testing WingPricer.numberOfFullBoxes()");
        System.out.printf("%s: %d\n", describe(0), WingPricer.numberOfFullBoxes(0));
        System.out.printf("%s: %d\n", describe(3), WingPricer.numberOfFullBoxes(3));
		System.out.printf("%s: %d\n", describe(5), WingPricer.numberOfFullBoxes(5));
		System.out.printf("%s: %d\n", describe(7), WingPricer.numberOfFullBoxes(7));
		System.out.printf("%s: %d\n", describe(12), WingPricer.numberOfFullBoxes(12));
		System.out.printf("%s: %d\n", describe(13), WingPricer.numberOfFullBoxes(13));
		System.out.printf("%s: %d\n", describe(23), WingPricer.numberOfFullBoxes(23));
		System.out.printf("%s: %d\n", describe(36), WingPricer.numberOfFullBoxes(36));
		System.out.printf("%s: %d\n", describe(98), WingPricer.numberOfFullBoxes(98));
		
		System.out.println("\n");
		System.out.println("Testing WingPricer.numberOfExtras()");
        System.out.printf("%s: %d\n", describe(0), WingPricer.numberOfExtras(0));
        System.out.printf("%s: %d\n", describe(3), WingPricer.numberOfExtras(3));
		System.out.printf("%s: %d\n", describe(5), WingPricer.numberOfExtras(5));
		System.out.printf("%s: %d\n", describe(7), WingPricer.numberOfExtras(7));
		System.out.printf("%s: %d\n", describe(12), WingPricer.numberOfExtras(12));
		System.out.printf("%s: %d\n", describe(13), WingPricer.numberOfExtras(13));
		System.out.printf("%s: %d\n", describe(23), WingPricer.numberOfExtras(23));
		System.out.printf("%s: %d\n", describe(36), WingPricer.numberOfExtras(36));
		System.out.printf("%s: %d\n", describe(98), WingPricer.numberOfExtras(98));
		
		System.out.println("\n");
		System.out.println("Testing WingPricer.needAnExtraBox()");
		System.out.printf("%s: %b\n", describe(0), WingPricer.needAnExtraBox(0));
        System.out.printf("%s: %b\n", describe(3), WingPricer.needAnExtraBox(3));
        System.out.printf("%s: %b\n", describe(5), WingPricer.needAnExtraBox(5));
		System.out.printf("%s: %b\n", describe(7), WingPricer.needAnExtraBox(7));
		System.out.printf("%s: %b\n", describe(12), WingPricer.needAnExtraBox(12));
		System.out.printf("%s: %b\n", describe(13), WingPricer.needAnExtraBox(13));
		System.out.printf("%s: %b\n", describe(23), WingPricer.needAnExtraBox(23));
		System.out.printf("%s: %b\n", describe(36), WingPricer.needAnExtraBox(36));
		System.out.printf("%s: %b\n", describe(98), WingPricer.needAnExtraBox(98));
		
		System.out.println("\n");
		System.out.println("Testing WingPricer.numberOfBoxes()");
        System.out.printf("%s: %d\n", describe(0), WingPricer.numberOfBoxes(0));
        System.out.printf("%s: %d\n", describe(3), WingPricer.numberOfBoxes(3));
		System.out.printf("%s: %d\n", describe(5), WingPricer.numberOfBoxes(5));
		System.out.printf("%s: %d\n", describe(7), WingPricer.numberOfBoxes(7));
		System.out.printf("%s: %d\n", describe(12), WingPricer.numberOfBoxes(12));
		System.out.printf("%s: %d\n", describe(13), WingPricer.numberOfBoxes(13));
		System.out.printf("%s: %d\n", describe(23), WingPricer.numberOfBoxes(23));
		System.out.printf("%s: %d\n", describe(36), WingPricer.numberOfBoxes(36));
		System.out.printf("%s: %d\n", describe(98), WingPricer.numberOfBoxes(98));
		
		System.out.println("\n");
		System.out.println("Testing WingPricer.priceFor()");
        System.out.printf("%s: %5.2f\n", describe(0), WingPricer.priceFor(0));
        System.out.printf("%s: %5.2f\n", describe(3), WingPricer.priceFor(3));
		System.out.printf("%s: %5.2f\n", describe(5), WingPricer.priceFor(5));
		System.out.printf("%s: %5.2f\n", describe(7), WingPricer.priceFor(7));
		System.out.printf("%s: %5.2f\n", describe(12), WingPricer.priceFor(12));
		System.out.printf("%s: %5.2f\n", describe(13), WingPricer.priceFor(13));
		System.out.printf("%s: %5.2f\n", describe(23), WingPricer.priceFor(23));
		System.out.printf("%s: %5.2f\n", describe(36), WingPricer.priceFor(36));
		System.out.printf("%s: %5.2f\n", describe(98), WingPricer.priceFor(98));
	}
	
	/**
	 * A convenience method that creates a description of a test.
	 * 
	 * @param number The number of Wings in the test
	 * @return A description of the test
	 */
	private static String describe(int number) {
		return String.format("\tFor %d Wings", number);
	}
}
