Further simplification and refactoring of display

This commit is contained in:
Andrew Kay
2019-07-03 20:17:00 -05:00
parent ac3c0f7508
commit 0429f86fc1
4 changed files with 46 additions and 80 deletions

View File

@@ -13,27 +13,9 @@ class DisplayMoveCursorTestCase(unittest.TestCase):
self.display = Display(self.interface, dimensions)
def test_with_address(self):
def test(self):
# Act
self.display.move_cursor(address=80)
# Assert
self.assertEqual(self.display.address_counter, 80)
self.interface.offload_load_address_counter.assert_called_with(80)
def test_with_index(self):
# Act
self.display.move_cursor(index=15)
# Assert
self.assertEqual(self.display.address_counter, 95)
self.interface.offload_load_address_counter.assert_called_with(95)
def test_with_coordinates(self):
# Act
self.display.move_cursor(row=10, column=15)
self.display.move_cursor(10, 15)
# Assert
self.assertEqual(self.display.address_counter, 895)
@@ -42,12 +24,12 @@ class DisplayMoveCursorTestCase(unittest.TestCase):
def test_no_change(self):
# Arrange
self.display.move_cursor(address=80)
self.display.move_cursor(0, 0)
self.interface.offload_load_address_counter.reset_mock()
# Act
self.display.move_cursor(address=80)
self.display.move_cursor(0, 0)
# Assert
self.assertEqual(self.display.address_counter, 80)
@@ -56,19 +38,19 @@ class DisplayMoveCursorTestCase(unittest.TestCase):
def test_no_change_force(self):
# Arrange
self.display.move_cursor(address=80)
self.display.move_cursor(0, 0)
self.interface.offload_load_address_counter.reset_mock()
# Act
self.display.move_cursor(address=80, force_load=True)
self.display.move_cursor(0, 0, force_load=True)
# Assert
self.assertEqual(self.display.address_counter, 80)
self.interface.offload_load_address_counter.assert_called_with(80)
class DisplayWriteBufferTestCase(unittest.TestCase):
class DisplayBufferedWriteTestCase(unittest.TestCase):
def setUp(self):
self.interface = Mock()
@@ -76,20 +58,10 @@ class DisplayWriteBufferTestCase(unittest.TestCase):
self.display = Display(self.interface, dimensions)
def test_with_index(self):
def test(self):
# Act
self.display.write_buffer(0x01, index=15)
self.display.write_buffer(0x02, index=97)
# Assert
self.assertEqual(self.display.buffer[15], 0x01)
self.assertEqual(self.display.buffer[97], 0x02)
self.assertSequenceEqual(self.display.dirty, [15, 97])
def test_with_coordinates(self):
# Act
self.display.write_buffer(0x01, row=0, column=15)
self.display.write_buffer(0x02, row=1, column=17)
self.display.buffered_write(0x01, 0, 15)
self.display.buffered_write(0x02, 1, 17)
# Assert
self.assertEqual(self.display.buffer[15], 0x01)
@@ -97,15 +69,15 @@ class DisplayWriteBufferTestCase(unittest.TestCase):
self.assertSequenceEqual(self.display.dirty, [15, 97])
def test_change(self):
self.assertTrue(self.display.write_buffer(0x01, index=0))
self.assertTrue(self.display.write_buffer(0x02, index=0))
self.assertTrue(self.display.buffered_write(0x01, 0, 0))
self.assertTrue(self.display.buffered_write(0x02, 0, 0))
self.assertEqual(self.display.buffer[0], 0x02)
self.assertSequenceEqual(self.display.dirty, [0])
def test_no_change(self):
self.assertTrue(self.display.write_buffer(0x01, index=0))
self.assertFalse(self.display.write_buffer(0x01, index=0))
self.assertTrue(self.display.buffered_write(0x01, 0, 0))
self.assertFalse(self.display.buffered_write(0x01, 0, 0))
self.assertEqual(self.display.buffer[0], 0x01)
self.assertSequenceEqual(self.display.dirty, [0])
@@ -129,9 +101,9 @@ class DisplayFlushTestCase(unittest.TestCase):
def test_single_range(self):
# Arrange
self.display.write_buffer(0x01, index=0)
self.display.write_buffer(0x02, index=1)
self.display.write_buffer(0x03, index=2)
self.display.buffered_write(0x01, 0, 0)
self.display.buffered_write(0x02, 0, 1)
self.display.buffered_write(0x03, 0, 2)
# Act
self.display.flush()
@@ -141,12 +113,12 @@ class DisplayFlushTestCase(unittest.TestCase):
def test_multiple_ranges(self):
# Arrange
self.display.write_buffer(0x01, index=0)
self.display.write_buffer(0x02, index=1)
self.display.write_buffer(0x03, index=2)
self.display.write_buffer(0x05, index=30)
self.display.write_buffer(0x06, index=31)
self.display.write_buffer(0x04, index=20)
self.display.buffered_write(0x01, 0, 0)
self.display.buffered_write(0x02, 0, 1)
self.display.buffered_write(0x03, 0, 2)
self.display.buffered_write(0x05, 0, 30)
self.display.buffered_write(0x06, 0, 31)
self.display.buffered_write(0x04, 0, 20)
# Act
self.display.flush()
@@ -164,13 +136,13 @@ class DisplayClearTestCase(unittest.TestCase):
def test_excluding_status_line(self):
# Arrange
self.display.write_buffer(0x01, index=0)
self.display.buffered_write(0x01, 0, 0)
self.assertEqual(self.display.buffer[0], 0x01)
self.assertTrue(self.display.dirty)
# Act
self.display.clear(include_status_line=False)
self.display.clear(clear_status_line=False)
# Assert
self.interface.offload_write.assert_called_with(b'\x00', address=80, repeat=1919)
@@ -181,13 +153,13 @@ class DisplayClearTestCase(unittest.TestCase):
def test_including_status_line(self):
# Arrange
self.display.write_buffer(0x01, index=0)
self.display.buffered_write(0x01, 0, 0)
self.assertEqual(self.display.buffer[0], 0x01)
self.assertTrue(self.display.dirty)
# Act
self.display.clear(include_status_line=True)
self.display.clear(clear_status_line=True)
# Assert
self.interface.offload_write.assert_called_with(b'\x00', address=0, repeat=1999)
@@ -206,11 +178,11 @@ class DisplayFlushRangeTestCase(unittest.TestCase):
def test_when_start_address_is_current_address_counter(self):
# Arrange
self.display.move_cursor(index=0)
self.display.move_cursor(0, 0)
self.display.write_buffer(0x01, index=0)
self.display.write_buffer(0x02, index=1)
self.display.write_buffer(0x03, index=2)
self.display.buffered_write(0x01, 0, 0)
self.display.buffered_write(0x02, 0, 1)
self.display.buffered_write(0x03, 0, 2)
# Act
self.display.flush()
@@ -223,11 +195,11 @@ class DisplayFlushRangeTestCase(unittest.TestCase):
def test_when_start_address_is_not_current_address_counter(self):
# Arrange
self.display.move_cursor(index=70)
self.display.move_cursor(0, 70)
self.display.write_buffer(0x01, index=0)
self.display.write_buffer(0x02, index=1)
self.display.write_buffer(0x03, index=2)
self.display.buffered_write(0x01, 0, 0)
self.display.buffered_write(0x02, 0, 1)
self.display.buffered_write(0x03, 0, 2)
# Act
self.display.flush()