示例#1
0
 def test_invalid_r(self):
     iterable = 'abcde'
     r = 4
     n = factorial(len(iterable)) // factorial(len(iterable) - r)
     for r in [-1, n + 1]:
         with self.assertRaises(ValueError):
             mi.nth_combination(iterable, r, 0)
示例#2
0
 def test_invalid_index(self):
     iterable = 'abcde'
     r = 4
     n = factorial(len(iterable)) // factorial(len(iterable) - r)
     for index in [-1 - n, n + 1]:
         with self.assertRaises(IndexError):
             mi.nth_combination(iterable, r, index)
示例#3
0
 def test_invalid_index(self):
     with self.assertRaises(IndexError):
         mi.nth_combination('abcdefg', 3, -36)
示例#4
0
 def test_invalid_r(self):
     for r in (-1, 3):
         with self.assertRaises(ValueError):
             mi.nth_combination([], r, 0)
示例#5
0
 def test_long(self):
     actual = mi.nth_combination(range(180), 4, 2000000)
     expected = (2, 12, 35, 126)
     self.assertEqual(actual, expected)
示例#6
0
 def test_basic(self):
     iterable = 'abcdefg'
     r = 4
     for index, expected in enumerate(combinations(iterable, r)):
         actual = mi.nth_combination(iterable, r, index)
         self.assertEqual(actual, expected)
示例#7
0
 def test_long(self):
     actual = mi.nth_combination(range(180), 4, 2000000)
     expected = (2, 12, 35, 126)
     self.assertEqual(actual, expected)
示例#8
0
 def test_basic(self):
     iterable = 'abcdefg'
     r = 4
     for index, expected in enumerate(combinations(iterable, r)):
         actual = mi.nth_combination(iterable, r, index)
         self.assertEqual(actual, expected)
示例#9
0
 def test_invalid_index(self):
     with self.assertRaises(IndexError):
         mi.nth_combination('abcdefg', 3, -36)
示例#10
0
 def test_invalid_r(self):
     for r in (-1, 3):
         with self.assertRaises(ValueError):
             mi.nth_combination([], r, 0)