Files
python/exercises/rectangles/rectangles_test.py

94 lines
2.6 KiB
Python
Raw Normal View History

import unittest
from rectangles import count
2015-11-08 01:31:17 +01:00
# test cases adapted from `x-common//canonical-data.json` @ version: 1.0.0
class WordTest(unittest.TestCase):
def test_no_rows(self):
self.assertEqual(count([]), 0)
2015-11-08 01:31:17 +01:00
def test_no_columns(self):
self.assertEqual(count(['']), 0)
def test_no_rectangles(self):
self.assertEqual(count([' ']), 0)
2015-11-08 01:31:17 +01:00
def test_one_rectangle(self):
lines = ['+-+',
'| |',
'+-+']
self.assertEqual(count(lines), 1)
def test_two_rectangles_without_shared_parts(self):
lines = [' +-+',
' | |',
'+-+-+',
'| | ',
'+-+ ']
self.assertEqual(count(lines), 2)
def test_five_rectangles_with_shared_parts(self):
lines = [' +-+',
' | |',
'+-+-+',
'| | |',
'+-+-+']
self.assertEqual(count(lines), 5)
def test_rectangle_of_height_1_is_counted(self):
lines = ['+--+',
'+--+']
self.assertEqual(count(lines), 1)
def test_rectangle_of_width_1_is_counted(self):
lines = ['++',
'||',
'++']
self.assertEqual(count(lines), 1)
def test_1x1_square_is_counted(self):
lines = ['++',
'++']
self.assertEqual(count(lines), 1)
def test_only_complete_rectangles_are_counted(self):
lines = [' +-+',
' |',
'+-+-+',
'| | -',
'+-+-+']
self.assertEqual(count(lines), 1)
def test_rectangles_can_be_of_different_sizes(self):
lines = ['+------+----+',
'| | |',
'+---+--+ |',
'| | |',
'+---+-------+']
self.assertEqual(count(lines), 3)
def test_corner_is_required_for_a_rectangle_to_be_complete(self):
lines = ['+------+----+',
'| | |',
'+------+ |',
'| | |',
'+---+-------+']
self.assertEqual(count(lines), 2)
def test_large_input_with_many_rectangles(self):
lines = ['+---+--+----+',
'| +--+----+',
'+---+--+ |',
'| +--+----+',
'+---+--+--+-+',
'+---+--+--+-+',
'+------+ | |',
' +-+']
self.assertEqual(count(lines), 60)
2016-11-29 09:44:47 +01:00
if __name__ == '__main__':
2015-11-08 01:31:17 +01:00
unittest.main()