Ejemplo n.º 1
0
 def test_collapse(self):
     """Checks the collapse function."""
     # Reload in case we prunned it before
     self.hier_st = SegmentTree("test/SALAMI_636.jams")
     self.hier_st.collapse_to_level("small_scale")
     self.assertEqual(len(self.hier_st.get_segments_in_level(
                      "small_scale")), 33)
     self.assertEqual(len(self.hier_st.get_segments_in_level(
                      "large_scale")), 0)
     self.assertEqual(len(self.hier_st.get_segments_in_level(
                      "root")), 1)
     self.assertEqual(len(self.hier_st.levels), 2)
Ejemplo n.º 2
0
 def test_construct_mini_tree(self):
     tree = SegmentTree([1,2,3,4])
     self.assertEquals(10, tree.sum(0, 3))
Ejemplo n.º 3
0
 def test_construct_terminal(self):
     tree = SegmentTree([1,2])
     self.assertEquals(3, tree.sum(0, 1))
Ejemplo n.º 4
0
 def test_set_internal(self):
     tree = SegmentTree([1,2,3,4])
     self.assertEquals(10, tree.sum(0, 3))
     tree.set(1, 10)
     self.assertEquals(11, tree.sum(0, 1))
     self.assertEquals(18, tree.sum(0, 3))
Ejemplo n.º 5
0
 def test_set_leaf(self):
     tree = SegmentTree([1,2,3,4])
     self.assertEquals(2, tree.sum(1, 1))
     tree.set(1, 10)
     self.assertEquals(10, tree.sum(1, 1))
Ejemplo n.º 6
0
 def test_partial_sum(self):
     tree = SegmentTree([1,2,3,4,12,13])
     self.assertEquals(3, tree.sum(0, 1))
     self.assertEquals(7, tree.sum(2, 3))
     self.assertEquals(21, tree.sum(1, 4))
Ejemplo n.º 7
0
 def setUp(self):
     """Load JAMS. One flat (Isophonics) and one hierarchichal (SALAMI)."""
     self.flat_st = SegmentTree("test/Isophonics_01_-_"
                                "A_Hard_Day\'s_Night.jams")
     self.hier_st = SegmentTree("test/SALAMI_636.jams")
Ejemplo n.º 8
0
class TestSegmentTree(unittest.TestCase):

    def setUp(self):
        """Load JAMS. One flat (Isophonics) and one hierarchichal (SALAMI)."""
        self.flat_st = SegmentTree("test/Isophonics_01_-_"
                                   "A_Hard_Day\'s_Night.jams")
        self.hier_st = SegmentTree("test/SALAMI_636.jams")

    def test_hier_levels(self):
        """Checks the levels of the hierarchical tree."""
        # 4 levels: root, function, large_scale and small_scale
        self.assertEqual(len(self.hier_st.levels), 4)

    def test_flat_levels(self):
        """Checks the levels of the flat tree."""
        # 2 levels: root and function
        self.assertEqual(len(self.flat_st.levels), 2)

    def test_hier_segment_retrieval(self):
        """Checks whether we are able to retrieve all segments of a
            hierarchical tree."""
        # Root level
        self.assertEqual(len(self.hier_st.get_segments_in_level("root")), 1)
        self.assertEqual(len(self.hier_st.get_segments_in_level(level_idx=0)),
                         1)
        # Function level
        self.assertEqual(len(self.hier_st.get_segments_in_level("function")),
                         11)
        self.assertEqual(len(self.hier_st.get_segments_in_level(level_idx=1)),
                         11)
        # Large scale level
        self.assertEqual(len(self.hier_st.get_segments_in_level(
                         "large_scale")), 11)
        self.assertEqual(len(self.hier_st.get_segments_in_level(level_idx=2)),
                         11)
        # Small scale level
        self.assertEqual(len(self.hier_st.get_segments_in_level(
                         "small_scale")), 33)
        self.assertEqual(len(self.hier_st.get_segments_in_level(level_idx=3)),
                         33)

    def test_flat_segment_retrieval(self):
        """Checks whether we are able to retrieve all segments of a
            flat tree."""
        # Root level
        self.assertEqual(len(self.flat_st.get_segments_in_level("root")), 1)
        self.assertEqual(len(self.flat_st.get_segments_in_level(level_idx=0)),
                         1)
        # Function level
        self.assertEqual(len(self.flat_st.get_segments_in_level("function")),
                         12)
        self.assertEqual(len(self.flat_st.get_segments_in_level(level_idx=1)),
                         12)

    def test_pruning(self):
        """Checks the prunning function."""
        # Prune at Function level
        self.hier_st.prune_to_level("function")
        self.assertEqual(len(self.hier_st.get_segments_in_level("function")),
                         11)
        self.assertEqual(len(self.hier_st.get_segments_in_level("large_scale")
                             ), 0)

    def test_collapse(self):
        """Checks the collapse function."""
        # Reload in case we prunned it before
        self.hier_st = SegmentTree("test/SALAMI_636.jams")
        self.hier_st.collapse_to_level("small_scale")
        self.assertEqual(len(self.hier_st.get_segments_in_level(
                         "small_scale")), 33)
        self.assertEqual(len(self.hier_st.get_segments_in_level(
                         "large_scale")), 0)
        self.assertEqual(len(self.hier_st.get_segments_in_level(
                         "root")), 1)
        self.assertEqual(len(self.hier_st.levels), 2)