def test_permutations_float(self): """permutations should use gamma function when floats as input""" self.assertFloatEqual(permutations(1.0,1), 1) self.assertFloatEqual(permutations(2,1.0), 2) self.assertFloatEqual(permutations(3.0,1.0), 3) self.assertFloatEqual(permutations(4.0,1), 4) self.assertFloatEqual(permutations(4.0,2.0), 12) self.assertFloatEqual(permutations(4.0,3.0), 24) self.assertFloatEqual(permutations(4,4.0), 24) self.assertFloatEqual(permutations(300, 100), 3.8807387193009318e+239)
def test_permutations(self): """permutations should return expected results""" self.assertEqual(permutations(1,1), 1) self.assertEqual(permutations(2,1), 2) self.assertEqual(permutations(3,1), 3) self.assertEqual(permutations(4,1), 4) self.assertEqual(permutations(4,2), 12) self.assertEqual(permutations(4,3), 24) self.assertEqual(permutations(4,4), 24) self.assertFloatEqual(permutations(300, 100), 3.8807387193009318e+239)
def test_permutations_range(self): """permutations should increase gradually with increasing k""" start = 5 #permuations(10,5) = 30240 end = 6 #permutations(10,6) = 151200 step = 0.1 lower_lim = 30240 upper_lim = 151200 previous_value = 30239.9999 while start <= end: obs = permutations(10,start) assert lower_lim <= obs <= upper_lim assert obs > previous_value previous_value = obs start += step