    @Test
    public void testMergeClusters()
            throws Exception
    {

        Set<Set<String>> c1 = new HashSet<>();
        c1.add(new HashSet<>(Arrays.asList("1", "2")));
        c1.add(new HashSet<>(Arrays.asList("3", "4")));
        Set<Set<String>> merged1 = Step6GraphTransitivityCleaner.mergeClusters(c1);
        assertEquals(2, merged1.size());

        Set<Set<String>> c2 = new HashSet<>();
        c2.add(new HashSet<>(Arrays.asList("1", "2")));
        c2.add(new HashSet<>(Arrays.asList("3", "4")));
        c2.add(new HashSet<>(Arrays.asList("5", "4")));

        Set<Set<String>> merged2 = Step6GraphTransitivityCleaner.mergeClusters(c2);
        assertEquals(2, merged2.size());

        Set<Set<String>> c3 = new HashSet<>();
        c3.add(new HashSet<>(Arrays.asList("1", "5")));
        c3.add(new HashSet<>(Arrays.asList("3", "4")));
        c3.add(new HashSet<>(Arrays.asList("5", "4")));

        Set<Set<String>> merged3 = Step6GraphTransitivityCleaner.mergeClusters(c3);
        assertEquals(1, merged3.size());
    }