public double comparePhases() {
        int cycleListSize = (s1.numCycles() > s2.numCycles()) ? s1.numCycles() : s2.numCycles();
        int match = 0;
        int size = 0;

        for (int i = 0; i < cycleListSize; i++) {
            if (i >= s1.numCycles()) {
                System.out.println("--CYCLE MISMATCH (INDEX:" + i + ")--");
                System.out.println("Session 1:\tNO CYCLE");
                System.out.println("Session 2:\t" + s2.getCycle(i).toString());
            }
            else if (i >= s2.numCycles()) {
                System.out.println("--CYCLE MISMATCH (INDEX:" + i + ")--");
                System.out.println("Session 1:\t" + s1.getCycle(i).toString());
                System.out.println("Session 2:\tNO CYCLE");
            }
            else {
                int phaseListSize = (s1.getCycle(i).size() > s2.getCycle(i).size()) ? s1.getCycle(i).size() : s2.getCycle(i).size();

                for (int j = 0; j < phaseListSize; j++) {
                    size++;
                    if (j >= s1.getCycle(i).size()) {
                        System.out.println("--PHASE MISMATCH (CYCLE: " + i + ", INDEX: " + j +")--");
                        System.out.println("Session 1:\tNO PHASE");
                        System.out.println("Session 2:\t" + s2.getCycle(i).get(j).toString());
                    }
                    else if (j >= s2.getCycle(i).size()) {
                        System.out.println("--PHASE MISMATCH (CYCLE: " + i + ", INDEX: " + j +")--");
                        System.out.println("Session 1:\t" + s1.getCycle(i).get(j).toString());
                        System.out.println("Session 2:\tNO PHASE");
                    }
                    else if (s1.getCycle(i).get(j).equals(s2.getCycle(i).get(j))) {
                        match++;
                    }
                }
            }
        }

        System.out.print(match + " of " + size + " phases (");
        System.out.print(df.format((double) match / (double) size));
        System.out.println(") match");
        System.out.println();

        return (double) match / (double) size;
    }