def test_add_the_same_overflow(self): """ Fills bus with two identical groupss with overflow """ with mock.patch(LINE_NAME + ".bus_capacity", new_callable=PropertyMock) as mocked_bus_capacity: mocked_bus_capacity.return_value = 20 group1 = get_group(10, "A") group2 = get_group(30, "A") bus = Bus(get_empty_line(), 0) self.are_lists_equal(bus.passengers, []) after_fill = bus.fill([group1]) assert bus.count == 10 assert len(bus.passengers) == 1 after_fill = bus.fill([group2]) self.are_lists_equal(after_fill, [get_group(20, "A")], passenger_group_equality) assert bus.count == 20 assert len(bus.passengers) == 1 self.are_equal(bus.passengers[0], get_group(20, "A"), passenger_group_equality)
def test_two_different_in_two_overflow(self): """ Fills bus with two groups one by one with overflow """ with mock.patch(LINE_NAME + ".bus_capacity", new_callable=PropertyMock) as mocked_bus_capacity: mocked_bus_capacity.return_value = 20 group1 = get_group(10, "A") group2 = get_group(30, "B") bus = Bus(get_empty_line(), 0) self.are_lists_equal(bus.passengers, []) after_fill = bus.fill([group1]) assert after_fill == [] assert bus.count == 10 assert len(bus.passengers) == 1 after_fill = bus.fill([group2]) self.are_lists_equal(after_fill, [get_group(20, "B")], passenger_group_equality) assert bus.count == 20 assert len(bus.passengers) == 2
def test_basic(self): """ Fills bus with one group without overflow """ with mock.patch(LINE_NAME + ".bus_capacity", new_callable=PropertyMock) as mocked_bus_capacity: mocked_bus_capacity.return_value = 10 group = get_group(10) bus = Bus(get_empty_line(), 0) assert bus.passengers == [] assert [] == bus.fill([group]) assert len(bus.passengers) == 1 assert isinstance(bus.passengers[0], PassengersGroup) assert bus.passengers[0].count == 10
def test_overflow_basic(self): """ Fills bus with one group with overflow """ with mock.patch(LINE_NAME + ".bus_capacity", new_callable=PropertyMock) as mocked_bus_capacity: mocked_bus_capacity.return_value = 10 group = get_group(30, "A") bus = Bus(get_empty_line(), 0) self.are_lists_equal(bus.passengers, []) after_fill = bus.fill([group]) self.are_lists_equal([PassengersGroup("A", 20)], after_fill, passenger_group_equality) assert len(bus.passengers) == 1 assert bus.count == 10 assert isinstance(bus.passengers[0], PassengersGroup) self.are_equal(bus.passengers[0], PassengersGroup("A", 10), passenger_group_equality)
def test_two_different_in_one_overflow(self): """ Fills bus with two groupss (as one list) with overflow """ with mock.patch(LINE_NAME + ".bus_capacity", new_callable=PropertyMock) as mocked_bus_capacity: mocked_bus_capacity.return_value = 20 group1 = get_group(10, "A") group2 = get_group(30, "B") bus = Bus(get_empty_line(), 0) self.are_lists_equal(bus.passengers, []) after_fill = bus.fill([group1, group2]) assert sum([i.count for i in after_fill]) == 20 assert after_fill != [] assert bus.count == 20 assert len(bus.passengers) == 2 assert bus.passengers[0] != bus.passengers[1]