Heart Transplant Tester


/**
 * 
 * HeartTransplantDriver
 * 
 * Use this class to test HeartTransplant's methods.
 * 
 */

public class HeartTransplantDriver {
	    public static void main (String[] args) {

        HeartTransplant ht = new HeartTransplant();

        // Initialize Patients.
        int numberOfLines = StdIn.readInt();
        ht.readPatients(numberOfLines);
        StdOut.println(ht.getPatients().length + " patients read from file.");
 
        // Initialize SurvivabilityByAge.
        numberOfLines = StdIn.readInt();
        ht.readSurvivabilityByAge(numberOfLines);
        StdOut.println(ht.getSurvivabilityByAge().getDataSize() + " survivability rates by age lines read from file.");

        // Initialize SurvivabilityByCause.
        numberOfLines = StdIn.readInt();
        ht.readSurvivabilityByCause(numberOfLines);
        StdOut.println(ht.getSurvivabilityByCause().getDataSize() + " survivability rates by cause lines read from file.\n");

        // Prints all patients.
        StdOut.println("ALL patients: ");
        for (Patient p : ht.getPatients()) {   
            StdOut.println(p);
        }
        StdOut.println();

        // Prints survivability by age data.
        StdOut.println("Survivability By Age: ");
        ht.getSurvivabilityByAge().printAllData();
        StdOut.println();

        // Prints survivability by cause data.
        StdOut.println("Survivability By Cause: ");
        ht.getSurvivabilityByCause().printAllData();
        StdOut.println();

        // Prints all patients with age above 18.
        StdOut.println("Patients above age 18: "); 
        Patient patientsByAge[] = ht.getPatientsWithAgeAbove(18);
        for (Patient p : patientsByAge ) {   
            StdOut.println(p.toString() );
        }
        StdOut.println();

        // Prints all patients whose heart disease was caused by accident.
        StdOut.println("Patients whose heart disease was caused by accidents: ");
        Patient patientsByCause[] = ht.getPatientsByHeartConditionCause(Patient.CAUSE_ACCIDENT);
        for (Patient p : patientsByCause) {
            StdOut.println(p.toString() );
        }
        StdOut.println();

        // Prints 4 patients with the highest likelihood of survival post transplant.
        StdOut.println("TOP 4 PATIENTS with highest potential for survivability: ");
        for( int i = 0; i < 4; i++) {
            StdOut.println( ht.getPatientForTransplant().toString() );
        }
    }
}