def test_clear(self): #Test clear on front only tdb = Structs.DoubleBuffer() tdb._write_front_buffer(3) tdb._write_front_buffer(4) tdb._write_back_buffer(100) tdb._write_back_buffer(200) tdb.clear(front=True, back=False) expected_front = [] actual_front = tdb.get_front_buffer_items() self.assertListEqual(expected_front, actual_front) expected_back = [100, 200] actual_back = tdb.get_back_buffer_items() self.assertListEqual(expected_back, actual_back) #Test clear on back only tdb = Structs.DoubleBuffer() tdb._write_front_buffer(3) tdb._write_front_buffer(4) tdb._write_back_buffer(100) tdb._write_back_buffer(200) tdb.clear(front=False, back=True) expected_front = [3, 4] actual_front = tdb.get_front_buffer_items() self.assertListEqual(expected_front, actual_front) expected_back = [] actual_back = tdb.get_back_buffer_items() self.assertListEqual(expected_back, actual_back) #Test clear on both tdb = Structs.DoubleBuffer() tdb._write_front_buffer(3) tdb._write_front_buffer(4) tdb._write_back_buffer(100) tdb._write_back_buffer(200) tdb.clear(front=True, back=True) expected_front = [] actual_front = tdb.get_front_buffer_items() self.assertListEqual(expected_front, actual_front) expected_back = [] actual_back = tdb.get_back_buffer_items() self.assertListEqual(expected_back, actual_back) #Test clear on neither tdb = Structs.DoubleBuffer() tdb._write_front_buffer(3) tdb._write_front_buffer(4) tdb._write_back_buffer(100) tdb._write_back_buffer(200) tdb.clear(front=False, back=False) expected_front = [3, 4] actual_front = tdb.get_front_buffer_items() self.assertListEqual(expected_front, actual_front) expected_back = [100, 200] actual_back = tdb.get_back_buffer_items() self.assertListEqual(expected_back, actual_back)
def test_push(self): #Test wrong type push tdb = Structs.DoubleBuffer() #Test proper push tdb.push(3) tbd_fb = tdb.get_front_buffer_items() tbd_bb = tdb.get_back_buffer_items() expected_fb = 0 expected_bb = 1 actual_fb = len(tbd_fb) actual_bb = len(tbd_bb) self.assertTrue(expected_fb == actual_fb) self.assertTrue(expected_bb == actual_bb)
def test_flip_exact(self): tdb = Structs.DoubleBuffer() tdb.push(3) tdb.push(4) tdb.flip(mode='exact') tdb.push(100) tdb.push(200) tdb.flip(mode='exact') expected_front = [100, 200] actual_front = tdb.get_front_buffer_items() self.assertListEqual(expected_front, actual_front) expected_back = [3, 4] actual_back = tdb.get_back_buffer_items() self.assertListEqual(expected_back, actual_back)
def test_pop(self): #Test that pop from empty list raises IndexError tdb = Structs.DoubleBuffer() with self.assertRaises(IndexError): tdb.pop() #Test that pop after push STILL raises IndexError since push is to bbuf tdb = Structs.DoubleBuffer() tdb.push(3) with self.assertRaises(IndexError): tdb.pop() #Test that pop after push AND flip correctly gets the value back #Push an value after the flip to make sure that value doesn't get returned #(should be in back buffer) tdb = Structs.DoubleBuffer() tdb.push("Yellow") tdb.flip(mode='exact') tdb.push("Red") expected = "Yellow" actual = tdb.pop() self.assertTrue(expected == actual) with self.assertRaises(IndexError): tdb.pop()
def test_flip_transfer_front(self): tdb = Structs.DoubleBuffer() tdb.push(3) tdb.push(4) tdb.flip(mode='exact') #This flip is simply so that we can put stuff #In both buffers tdb.push(100) tdb.push(200) tdb.flip(mode='transfer_front') #This is the flip we're testing expected_front = [100, 200, 3, 4] actual_front = tdb.get_front_buffer_items() self.assertListEqual(expected_front, actual_front) expected_back = [] actual_back = tdb.get_back_buffer_items() self.assertListEqual(expected_back, actual_back)