33import static org .junit .Assert .assertTrue ;
44
55import java .util .ArrayList ;
6+ import java .util .Arrays ;
7+ import java .util .Collection ;
68
79import org .junit .Test ;
810
911import com .jwetherell .algorithms .data_structures .IntervalTree ;
1012
1113public class IntervalTreeTests {
14+
15+ private static boolean collectionsEqual (Collection <?> c1 , Collection <?> c2 ) {
16+ return c1 .containsAll (c2 ) && c2 .containsAll (c1 );
17+ }
1218
1319 @ Test
1420 public void testIntervalTree () {
@@ -31,36 +37,25 @@ public void testIntervalTree() {
3137 IntervalTree <String > tree = new IntervalTree <String >(intervals );
3238
3339 IntervalTree .IntervalData <String > query = tree .query (2 );
34- assertTrue ("Interval Tree query error. query=2 returned=" + query , query .getData (). contains (RED ));
40+ assertTrue ("Interval Tree query error. query=2 returned=" + query , collectionsEqual ( query .getData (), Arrays . asList (RED ) ));
3541
3642 query = tree .query (4 ); // Stabbing query
37- assertTrue ("Interval Tree query error. query=4 returned=" + query , query .getData (). contains ( GREEN ));
43+ assertTrue ("Interval Tree query error. query=4 returned=" + query , collectionsEqual ( query .getData (), Arrays . asList ( RED , ORANGE , GREEN ) ));
3844
3945 query = tree .query (9 ); // Stabbing query
40- assertTrue ("Interval Tree query error. query=9 returned=" +query , query .getData ().contains (PURPLE ));
46+ assertTrue ("Interval Tree query error. query=9 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (
47+ GREEN , DARK_GREEN , BLUE , PURPLE )));
4148
4249 query = tree .query (1 , 16 ); // Range query
43- assertTrue ("Interval Tree query error. query=1->16 returned=" +query , (query .getData ().contains (RED ) &&
44- query .getData ().contains (ORANGE ) &&
45- query .getData ().contains (GREEN ) &&
46- query .getData ().contains (DARK_GREEN ) &&
47- query .getData ().contains (BLUE ) &&
48- query .getData ().contains (PURPLE ) &&
49- query .getData ().contains (BLACK ))
50- );
50+ assertTrue ("Interval Tree query error. query=1->16 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (
51+ RED , ORANGE , GREEN , DARK_GREEN , BLUE , PURPLE , BLACK )));
5152
5253 query = tree .query (7 , 14 ); // Range query
53- assertTrue ("Interval Tree query error. query=7->14 returned=" +query , (query .getData ().contains (GREEN ) &&
54- query .getData ().contains (DARK_GREEN ) &&
55- query .getData ().contains (BLUE ) &&
56- query .getData ().contains (PURPLE ) &&
57- query .getData ().contains (BLACK ))
58- );
54+ assertTrue ("Interval Tree query error. query=7->14 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (
55+ GREEN , DARK_GREEN , BLUE , PURPLE , BLACK )));
5956
6057 query = tree .query (14 , 15 ); // Range query
61- assertTrue ((query .getData ().contains (PURPLE ) &&
62- query .getData ().contains (BLACK ))
63- );
58+ assertTrue ("Interval Tree query error. query=14->15 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (PURPLE , BLACK )));
6459 }
6560
6661 { // Lifespan Interval tree
@@ -80,27 +75,16 @@ public void testIntervalTree() {
8075 IntervalTree <String > tree = new IntervalTree <String >(intervals );
8176
8277 IntervalTree .IntervalData <String > query = tree .query (1890 ); // Stabbing query
83- assertTrue ("Interval Tree query error. query=1890 returned=" +query , (query .getData ().contains (stravinsky ) &&
84- query .getData ().contains (schoenberg ) &&
85- query .getData ().contains (grieg ))
86- );
78+ assertTrue ("Interval Tree query error. query=1890 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (stravinsky , schoenberg , grieg )));
8779
8880 query = tree .query (1909 ); // Stabbing query
89- assertTrue ("Interval Tree query error. query=1909 returned=" +query , (query .getData ().contains (stravinsky ) &&
90- query .getData ().contains (schoenberg ))
91- );
81+ assertTrue ("Interval Tree query error. query=1909 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (stravinsky , schoenberg )));
9282
9383 query = tree .query (1792 , 1903 ); // Range query
94- assertTrue ("Interval Tree query error. query=1792->1903 returned=" +query , query .getData ().contains (stravinsky ) &&
95- query .getData ().contains (schoenberg ) &&
96- query .getData ().contains (grieg ) &&
97- query .getData ().contains (schubert )
98- );
84+ assertTrue ("Interval Tree query error. query=1792->1903 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (stravinsky , schoenberg , grieg , schubert )));
9985
10086 query = tree .query (1776 , 1799 ); // Range query
101- assertTrue ("Interval Tree query error. query=1776->1799 returned=" +query , (query .getData ().contains (schubert ) &&
102- query .getData ().contains (mozart ))
103- );
87+ assertTrue ("Interval Tree query error. query=1776->1799 returned=" + query , collectionsEqual (query .getData (), Arrays .asList (schubert , mozart )));
10488 }
10589 }
10690}
0 commit comments