diff options
-rwxr-xr-x | more_itertools/more.py | 4 | ||||
-rw-r--r-- | more_itertools/more.pyi | 4 | ||||
-rw-r--r-- | tests/test_more.py | 30 |
3 files changed, 19 insertions, 19 deletions
diff --git a/more_itertools/more.py b/more_itertools/more.py index 8c9e332..4567a7c 100755 --- a/more_itertools/more.py +++ b/more_itertools/more.py @@ -3707,7 +3707,7 @@ def product_index(element, *args): return index -def combination_index(iterable, element): +def combination_index(element, iterable): """Equivalent to ``list(combinations(iterable, r)).index(element) The subsequences of *iterable* that are of length *r* can be ordered @@ -3744,7 +3744,7 @@ def combination_index(iterable, element): return factorial(n + 1) // (factorial(k + 1) * factorial(n - k)) - index -def permutation_index(iterable, element): +def permutation_index(element, iterable): """Equivalent to ``list(permutations(iterable, r)).index(element)``` The subsequences of *iterable* that are of length *r* where order is diff --git a/more_itertools/more.pyi b/more_itertools/more.pyi index 8bebd7c..b397eab 100644 --- a/more_itertools/more.pyi +++ b/more_itertools/more.pyi @@ -467,8 +467,8 @@ def nth_permutation( def value_chain(*args: Iterable[Any]) -> Iterable[Any]: ... def product_index(element: Iterable[_T], *args: Iterable[_T]) -> int: ... def combination_index( - iterable: Iterable[_T], element: Iterable[_T] + element: Iterable[_T], iterable: Iterable[_T] ) -> int: ... def permutation_index( - iterable: Iterable[_T], element: Iterable[_T] + element: Iterable[_T], iterable: Iterable[_T] ) -> int: ... diff --git a/tests/test_more.py b/tests/test_more.py index 665ee07..7ac88e4 100644 --- a/tests/test_more.py +++ b/tests/test_more.py @@ -4274,7 +4274,7 @@ class CombinationIndexTests(TestCase): r = 4 first_index = {} for index, element in enumerate(combinations(iterable, r)): - actual = mi.combination_index(iterable, element) + actual = mi.combination_index(element, iterable) expected = first_index.setdefault(element, index) self.assertEqual(actual, expected) @@ -4283,7 +4283,7 @@ class CombinationIndexTests(TestCase): r = len(iterable) first_index = {} for index, element in enumerate(combinations(iterable, r=r)): - actual = mi.permutation_index(iterable, element) + actual = mi.combination_index(element, iterable) expected = first_index.setdefault(element, index) self.assertEqual(actual, expected) @@ -4292,31 +4292,31 @@ class CombinationIndexTests(TestCase): r = 3 first_index = {} for index, element in enumerate(combinations(iterable, r)): - actual = mi.combination_index(iterable, element) + actual = mi.combination_index(element, iterable) expected = first_index.setdefault(element, index) self.assertEqual(actual, expected) def test_null(self): - actual = mi.combination_index([], tuple()) + actual = mi.combination_index(tuple(), []) expected = 0 self.assertEqual(actual, expected) def test_long(self): - actual = mi.combination_index(range(180), (2, 12, 35, 126)) + actual = mi.combination_index((2, 12, 35, 126), range(180)) expected = 2000000 self.assertEqual(actual, expected) def test_invalid_order(self): with self.assertRaises(ValueError): - mi.combination_index('abcde', tuple('acb')) + mi.combination_index(tuple('acb'), 'abcde') def test_invalid_large(self): with self.assertRaises(ValueError): - mi.combination_index('abcdef', tuple('abcdefg')) + mi.combination_index(tuple('abcdefg'), 'abcdef') def test_invalid_match(self): with self.assertRaises(ValueError): - mi.product_index('abcde', tuple('axe')) + mi.product_index(tuple('axe'), 'abcde') class PermutationIndexTests(TestCase): @@ -4325,7 +4325,7 @@ class PermutationIndexTests(TestCase): r = 4 first_index = {} for index, element in enumerate(permutations(iterable, r)): - actual = mi.permutation_index(iterable, element) + actual = mi.permutation_index(element, iterable) expected = first_index.setdefault(element, index) self.assertEqual(actual, expected) @@ -4333,7 +4333,7 @@ class PermutationIndexTests(TestCase): iterable = 'abcd' first_index = {} for index, element in enumerate(permutations(iterable)): - actual = mi.permutation_index(iterable, element) + actual = mi.permutation_index(element, iterable) expected = first_index.setdefault(element, index) self.assertEqual(actual, expected) @@ -4342,24 +4342,24 @@ class PermutationIndexTests(TestCase): r = 3 first_index = {} for index, element in enumerate(permutations(iterable, r)): - actual = mi.permutation_index(iterable, element) + actual = mi.permutation_index(element, iterable) expected = first_index.setdefault(element, index) self.assertEqual(actual, expected) def test_null(self): - actual = mi.permutation_index([], tuple()) + actual = mi.permutation_index(tuple(), []) expected = 0 self.assertEqual(actual, expected) def test_long(self): - actual = mi.permutation_index(range(180), (2, 12, 35, 126)) + actual = mi.permutation_index((2, 12, 35, 126), range(180)) expected = 11631678 self.assertEqual(actual, expected) def test_invalid_large(self): with self.assertRaises(ValueError): - mi.permutation_index('abcdef', tuple('abcdefg')) + mi.permutation_index(tuple('abcdefg'), 'abcdef') def test_invalid_match(self): with self.assertRaises(ValueError): - mi.product_index('abcde', tuple('axe')) + mi.product_index(tuple('axe'), 'abcde') |