// JDoodle multi-file (Java): paste 4 files —
//   File 1: OrderedPair.java
//   File 2: ComplexOrderedPair.java
//   File 3: Quadratic.java
//   File 4: QuadraticDriver.java  ← set as main file
public class QuadraticDriver {
    public static void main(String[] args){
        System.out.println("=== Quadratic Driver ===\n");

        // Default constructor: f(x) = x\u00B2
        System.out.println("--- Default: f(x) = x\u00B2 ---");
        Quadratic q1 = new Quadratic();
        System.out.println(q1);
        System.out.println("f(3) = " + q1.f(3));
        System.out.println("Roots: " + q1.getRootsDescription());

        // Two real roots: f(x) = x\u00B2 - 5x + 6  (roots: 2 and 3)
        System.out.println("\n--- Two real roots: x\u00B2 - 5x + 6 ---");
        Quadratic q2 = new Quadratic(1, -5, 6);
        System.out.println(q2);
        System.out.println("Roots: " + q2.getRootsDescription());

        // One repeated root: f(x) = x\u00B2 - 6x + 9  (root: 3)
        System.out.println("\n--- One repeated root: x\u00B2 - 6x + 9 ---");
        Quadratic q3 = new Quadratic(1, -6, 9);
        System.out.println(q3);
        System.out.println("Roots: " + q3.getRootsDescription());

        // Complex roots: f(x) = x\u00B2 + 2x + 5
        System.out.println("\n--- Complex roots: x\u00B2 + 2x + 5 ---");
        Quadratic q4 = new Quadratic(1, 2, 5);
        System.out.println(q4);
        System.out.println("Roots: " + q4.getRootsDescription());

        // Setter side-effect demo (DWR!)
        System.out.println("\n--- Setter side effects ---");
        Quadratic q5 = new Quadratic(1, 0, -4);
        System.out.println("Before: " + q5);
        q5.setB(-4);
        System.out.println("After setB(-4): " + q5);

        // Copy constructor
        System.out.println("\n--- Copy constructor ---");
        Quadratic q6 = new Quadratic(q2);
        System.out.println("Copy of q2: " + q6);

        System.out.println("\n--- Thanks for using our program! ---");
    }//end main
}//end class QuadraticDriver
