#!/usr/bin/python import myut import rangeset def simple_nonoverlapping(): rs = rangeset.rangeset() rs.add(1,4) rs.add(8,10) myut.assertEqual(list(rs.iterator()), [ 1,2,3,4, 8,9,10 ]) def less_simple_nonoverlapping(): rs = rangeset.rangeset() rs.add(1,3) rs.add(12,15) rs.add(6,9) myut.assertEqual(list(rs.iterator()), [ 1,2,3, 6,7,8,9, 12,13,14,15 ]) def overlapping_middle(): rs = rangeset.rangeset() rs.add(1,3) rs.add(6,9) rs.add(12,15) rs.add(8,13) myut.assertEqual(list(rs.iterator()), [ 1,2,3, 6,7,8,9,10,11,12,13,14,15 ]) def overlapping_beginning(): rs = rangeset.rangeset() rs.add(6,9) rs.add(12,15) rs.add(3,7) myut.assertEqual(list(rs.iterator()), [ 3,4,5,6,7,8,9, 12,13,14,15 ]) def overlapping_end(): rs = rangeset.rangeset() rs.add(6,9) rs.add(12,15) rs.add(13,18) myut.assertEqual(list(rs.iterator()), [ 6,7,8,9, 12,13,14,15,16,17,18 ]) def wholly_encompassing(): rs = rangeset.rangeset() rs.add(6,9) rs.add(12,15) rs.add(4,18) myut.assertEqual(list(rs.iterator()), [ 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 ]) def wholly_encompassed(): rs = rangeset.rangeset() rs.add(6,9) rs.add(7,8) myut.assertEqual(list(rs.iterator()), [ 6,7,8,9 ]) def identical(): rs = rangeset.rangeset() rs.add(1,3) rs.add(6,9) rs.add(12,15) rs.add(6,9) myut.assertEqual(list(rs.iterator()), [ 1,2,3, 6,7,8,9, 12,13,14,15 ]) def adjacent(): rs = rangeset.rangeset() rs.add(1,3) rs.add(6,9) rs.add(4,5) myut.assertTrue(len(rs.rangeset_items) == 1) myut.assertEqual(list(rs.iterator()), [ 1,2,3,4,5,6,7,8,9 ]) def pops(): rs = rangeset.rangeset() rs.add(1,3) rs.add(6,9) lst = [] while rs: value = rs.pop_left() lst.append(value) myut.assertEqual(lst, [ 1,2,3, 6,7,8,9 ]) def main(): #print 'simple nonoverlapping' simple_nonoverlapping() #print 'less simple nonoverlapping' less_simple_nonoverlapping() #print 'overlapping middle' overlapping_middle() #print 'overlapping beginning' overlapping_beginning() #print 'overlapping end' overlapping_end() #print 'wholly encompassing' wholly_encompassing() #print 'wholly encompassed' wholly_encompassed() #print 'identical' identical() #print 'adjacent' adjacent() #print 'pops' pops() main()