def test_with_capacity_as_2_and_weights_as_1_and_2(self): capacity = 2 weights = [1, 2] value, items = optimal_weight(capacity, weights) self.assertEqual(2, value) self.assertEqual([1], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_capacity_as_10_and_several_weights(self): capacity = 10 weights = [2, 4, 3, 6] value, items = optimal_weight(capacity, weights) self.assertEqual(10, value) self.assertEqual([3, 1], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_capacity_as_1_and_duplicate_weights(self): capacity = 1 weights = [1, 1] value, items = optimal_weight(capacity, weights) self.assertEqual(1, value) self.assertEqual([0], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_capacity_as_1_and_weights_as_2_and_3(self): capacity = 1 weights = [2, 3] value, items = optimal_weight(capacity, weights) self.assertEqual(0, value) self.assertEqual([], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_non_zero_capacity_and_empty_weights(self): capacity = 123 weights = [] value, items = optimal_weight(capacity, weights) self.assertEqual(0, value) self.assertEqual([], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_zero_capacity(self): capacity = 0 weights = [] value, items = optimal_weight(capacity, weights) self.assertEqual(0, value) self.assertEqual([], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_capacity_as_10_and_bars_as_1_4_8(self): capacity = 10 weights = [1, 4, 8] value, items = optimal_weight(capacity, weights) self.assertEqual(9, value) self.assertEqual([2, 0], items) self.assert_items_within_capacity(capacity, weights, value, items)
def test(self): while True: capacity = randint(0, OptimalWeightStressTestCase.CAPACITY) weights = [] for i in range(0, OptimalWeightStressTestCase.N): weights.append(randint(0, OptimalWeightStressTestCase.WEIGHT)) value, items = optimal_weight(capacity, weights) print('capacity: %s' % capacity) print('weights: %s' % weights) print('value: %s' % value) print('items: %s' % items) print() self.assert_items_within_capacity(capacity, weights, value, items)
def test_with_preceeding_lower_bound_of_weights(self): with self.assertRaisesRegex(AssertionError, ''): capacity = 1 weights = [1, -1, 2] optimal_weight(capacity, weights)