
/**
 * This program checks the PalindromeChecker class.
 *
 * @author Richard White
 * @version 2025-10-28
 */
public class PalindromeCheckerTester
{
    public static void main(String[] args)
    {
        int testsPassed = 0;
        System.out.print("Testing the PalindromeChecker...");
        PalindromeChecker pc = new PalindromeChecker();
        System.out.println("passed!");
        testsPassed++;
        
        System.out.print("Setting strict mode to true...");
        pc.setStrictMode(true);
        System.out.println("passed?");
        testsPassed++;
        
        System.out.print("Checking 'racecar' (should be true)...");
        if (pc.checkPhrase("racecar") == true)
        {
            System.out.println("passed");
            testsPassed++;
        }
        else
        {
            System.out.println("failed");
            System.out.println("Should have been true.");
        }
        
        System.out.print("Checking 'Racecar' (should be false in strict mode)...");
        if (pc.checkPhrase("Racecar") == false)
        {
            System.out.println("passed");
            testsPassed++;
        }
        else
        {
            System.out.println("failed");
            System.out.println("Should have been false.");
        }
        
        System.out.print("Checking 'race car' (should be false in strict mode)...");
        if (pc.checkPhrase("race car") == false)
        {
            System.out.println("passed");
            testsPassed++;
        }
        else
        {
            System.out.println("failed");
            System.out.println("Should have been false.");
        }
        
        System.out.println("Switching strictMode to false...");
        pc.setStrictMode(false);
        testsPassed++;
        
        System.out.print("Checking 'racecar' (should still be true in non-strictMode)...");
        if (pc.checkPhrase("racecar") == true)
        {
            System.out.println("passed");
            testsPassed++;
        }
        else
        {
            System.out.println("failed");
            System.out.println("Should have been true.");
        }
        
        System.out.print("Checking 'Racecar' (should be true in non-strict mode)...");
        if (pc.checkPhrase("Racecar") == true)
        {
            System.out.println("passed");
            testsPassed++;
        }
        else
        {
            System.out.println("failed");
            System.out.println("Should have been true.");
        }
        
        System.out.print("Checking 'race car' (should be true in non-strict mode)...");
        if (pc.checkPhrase("race car") == true)
        {
            System.out.println("passed");
            testsPassed++;
        }
        else
        {
            System.out.println("failed");
            System.out.println("Should have been true.");
        }
        
        System.out.println("Tests passed: " + testsPassed + "/9");
        
    }
}