import unittest
class FloorRegion:
def __init__(self, x_start: int, length: int):
self.x_start = x_start
self.length = length
def __repr__(self):
return f"FloorRegion({self.x_start}, {self.length})"
def __eq__(self, other):
return self.x_start == other.x_start and self.length == other.length
def center(self):
# YOUR CODE HERE
def find_regions(groundline: list[int], min_height: int, min_width: int) -> list[FloorRegion]:
# YOUR CODE HERE
class FloorTest(unittest.TestCase):
def test_region(self):
line = [119, 9, 9, 9, 9, 10, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 26, 26, 28, 30, 33, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 119]
regions = find_regions(line, 30, 16)
self.assertEqual(regions, [FloorRegion(105, 54)])
self.assertEqual(regions[0].center(), 132)
line = [24, 25, 25, 26, 26, 28, 30, 33, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 41, 41, 41, 12, 13, 13, 14, 14, 15, 42, 42, 42, 42,42, 42, 42, 42,42, 42, 42, 42,42, 42, 42, 42, 26, 28, 30, 33, 42, 42, 42, 42, 42, 42, 42, 42, 41,42, 42, 42, 42, 42, 42, 42, 42, 41]
regions = find_regions(line, 30, 16)
self.assertEqual(regions, [FloorRegion(27, 16), FloorRegion(45, 19)])
self.assertEqual(regions[0].center(), 35)
self.assertEqual(regions[1].center(), 54)
if __name__ == '__main__':
unittest.main()