Skip to content

Commit dac1155

Browse files
committed
Add unit tests to cover bitplane 0 edge cases.
1 parent c6656f4 commit dac1155

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

test/test_chip8screen.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ def test_all_pixels_off_on_screen_init(self):
4444
self.assertEqual(0, self.screen.get_pixel(x_pos, y_pos, 1))
4545
self.assertEqual(0, self.screen.get_pixel(x_pos, y_pos, 2))
4646

47+
def test_get_pixel_on_bitplane_0_returns_false(self):
48+
self.screen.init_display()
49+
for xpos in range(64):
50+
for ypos in range(32):
51+
self.screen.draw_pixel(xpos, ypos, 1, 1)
52+
self.screen.draw_pixel(xpos, ypos, 1, 2)
53+
self.assertFalse(self.screen.get_pixel(xpos, ypos, 0))
54+
4755
def test_write_pixel_turns_on_pixel_on_bitplane(self):
4856
self.screen.init_display()
4957
for xpos in range(64):
@@ -60,6 +68,14 @@ def test_write_pixel_turns_on_pixel_on_both_bitplanes(self):
6068
self.assertTrue(self.screen.get_pixel(xpos, ypos, 1))
6169
self.assertTrue(self.screen.get_pixel(xpos, ypos, 2))
6270

71+
def test_write_pixel_does_nothing_on_bitplane_0(self):
72+
self.screen.init_display()
73+
for xpos in range(64):
74+
for ypos in range(32):
75+
self.screen.draw_pixel(xpos, ypos, 1, 0)
76+
self.assertFalse(self.screen.get_pixel(xpos, ypos, 1))
77+
self.assertFalse(self.screen.get_pixel(xpos, ypos, 2))
78+
6379
def test_clear_screen_clears_pixels_on_bitplane_1(self):
6480
self.screen.init_display()
6581
for x_pos in range(64):
@@ -83,6 +99,30 @@ def test_clear_screen_clears_pixels_on_bitplane_1_only_when_both_set(self):
8399
self.assertFalse(self.screen.get_pixel(x_pos, y_pos, 1))
84100
self.assertTrue(self.screen.get_pixel(x_pos, y_pos, 2))
85101

102+
def test_clear_screen_on_bitplane_0_does_nothing(self):
103+
self.screen.init_display()
104+
for xpos in range(64):
105+
for ypos in range(32):
106+
self.screen.draw_pixel(xpos, ypos, 1, 1)
107+
self.screen.draw_pixel(xpos, ypos, 1, 2)
108+
self.screen.clear_screen(0)
109+
for xpos in range(64):
110+
for ypos in range(32):
111+
self.assertTrue(self.screen.get_pixel(xpos, ypos, 1))
112+
self.assertTrue(self.screen.get_pixel(xpos, ypos, 2))
113+
114+
def test_scroll_down_bitplane_0_does_nothing(self):
115+
self.screen.init_display()
116+
self.screen.draw_pixel(0, 0, 1, 1)
117+
self.screen.draw_pixel(0, 0, 1, 2)
118+
self.assertTrue(self.screen.get_pixel(0, 0, 1))
119+
self.assertTrue(self.screen.get_pixel(0, 0, 2))
120+
self.screen.scroll_down(1, 0)
121+
self.assertTrue(self.screen.get_pixel(0, 0, 1))
122+
self.assertTrue(self.screen.get_pixel(0, 0, 2))
123+
self.assertFalse(self.screen.get_pixel(0, 1, 1))
124+
self.assertFalse(self.screen.get_pixel(0, 1, 2))
125+
86126
def test_scroll_down_bitplane_1(self):
87127
self.screen.init_display()
88128
self.screen.draw_pixel(0, 0, 1, 1)
@@ -118,6 +158,24 @@ def test_scroll_down_bitplane_3_both_pixels_active(self):
118158
self.assertTrue(self.screen.get_pixel(0, 1, 1))
119159
self.assertTrue(self.screen.get_pixel(0, 1, 2))
120160

161+
def test_scroll_right_bitplane_0_does_nothing(self):
162+
self.screen.init_display()
163+
self.screen.draw_pixel(0, 0, 1, 1)
164+
self.screen.draw_pixel(0, 0, 1, 2)
165+
self.assertTrue(self.screen.get_pixel(0, 0, 1))
166+
self.assertTrue(self.screen.get_pixel(0, 0, 2))
167+
self.screen.scroll_right(0)
168+
self.assertTrue(self.screen.get_pixel(0, 0, 1))
169+
self.assertFalse(self.screen.get_pixel(1, 0, 1))
170+
self.assertFalse(self.screen.get_pixel(2, 0, 1))
171+
self.assertFalse(self.screen.get_pixel(3, 0, 1))
172+
self.assertFalse(self.screen.get_pixel(4, 0, 1))
173+
self.assertTrue(self.screen.get_pixel(0, 0, 2))
174+
self.assertFalse(self.screen.get_pixel(1, 0, 2))
175+
self.assertFalse(self.screen.get_pixel(2, 0, 2))
176+
self.assertFalse(self.screen.get_pixel(3, 0, 2))
177+
self.assertFalse(self.screen.get_pixel(4, 0, 2))
178+
121179
def test_scroll_right_bitplane_1(self):
122180
self.screen.init_display()
123181
self.screen.draw_pixel(0, 0, 1, 1)
@@ -171,6 +229,24 @@ def test_scroll_right_bitplane_3_both_pixels_active(self):
171229
self.assertFalse(self.screen.get_pixel(3, 0, 2))
172230
self.assertTrue(self.screen.get_pixel(4, 0, 2))
173231

232+
def test_scroll_left_bitplane_0_does_nothing(self):
233+
self.screen.init_display()
234+
self.screen.draw_pixel(63, 0, 1, 1)
235+
self.screen.draw_pixel(63, 0, 1, 2)
236+
self.assertTrue(self.screen.get_pixel(63, 0, 1))
237+
self.assertTrue(self.screen.get_pixel(63, 0, 2))
238+
self.screen.scroll_left(0)
239+
self.assertTrue(self.screen.get_pixel(63, 0, 1))
240+
self.assertFalse(self.screen.get_pixel(62, 0, 1))
241+
self.assertFalse(self.screen.get_pixel(61, 0, 1))
242+
self.assertFalse(self.screen.get_pixel(60, 0, 1))
243+
self.assertFalse(self.screen.get_pixel(59, 0, 1))
244+
self.assertTrue(self.screen.get_pixel(63, 0, 2))
245+
self.assertFalse(self.screen.get_pixel(62, 0, 2))
246+
self.assertFalse(self.screen.get_pixel(61, 0, 2))
247+
self.assertFalse(self.screen.get_pixel(60, 0, 2))
248+
self.assertFalse(self.screen.get_pixel(59, 0, 2))
249+
174250
def test_scroll_left_bitplane_1(self):
175251
self.screen.init_display()
176252
self.screen.draw_pixel(63, 0, 1, 1)

0 commit comments

Comments
 (0)