// Copyright 2009-2010 by Mary McGlohon
// Carnegie Mellon University
// mmcgloho@cs.cmu.edu

import org.junit.*;
import static org.junit.Assert.*;

import java.io.*;
import java.util.*;
import java.text.*;


public class CascadeTest  {
    //c1 and c2 are isomorphic with authors
    //c1 and c3 are isomorphic without authors
    //c1 and c4 are not isomorphic
    String cascade1 = "1:1 -1 2:2 1 3:2 1 4:1 3 5:3 3";
    String cascade2 = "6:4 -1 7:5 6 8:5 6 9:4 8 10:6 8";    
    String cascade3 = "6:4 -1 7:5 6 8:6 6 9:4 8 10:5 8";    
    String cascade4 = "1 -1 2 1 3 1 4 2 5 3";
    


    @Before
        public void setUp() {
        
    }

    @Test
        public void testIsomorphicWithAuthors() {
        Cascade c1 = new Cascade(cascade1, true);
        Cascade c2 = new Cascade(cascade2, true);
        assertTrue(Cascade.isomorphic(c1, c2));
    }

    @Test
        public void testIsomorphicWithoutAuthors() {
        Cascade c1 = new Cascade(cascade1, false);
        Cascade c3 = new Cascade(cascade3, false);
        assertTrue(Cascade.isomorphic(c1, c3));

        c1 = new Cascade(cascade1, true);
        c3 = new Cascade(cascade3, true);
        assertFalse(Cascade.isomorphic(c1, c3));
    }

    @Test
        public void testNotIsomorphic() {
        Cascade c1 = new Cascade(cascade1, false);
        Cascade c4 = new Cascade(cascade4, false);
        assertFalse(Cascade.isomorphic(c1, c4));

        c1 = new Cascade(cascade1, true);
        c4 = new Cascade(cascade4, true);
        assertFalse(Cascade.isomorphic(c1, c4));
    }

}