Skip to content

Commit eaa5c53

Browse files
committed
-
1 parent 2bb1cf6 commit eaa5c53

File tree

3 files changed

+12
-17
lines changed

3 files changed

+12
-17
lines changed

source_py3/python_toolbox/combi/perm.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def __init__(self, perm_sequence, perm_space=None):
114114

115115

116116
_reduced = property(lambda self: (
117-
type(self), self._perm_sequence
117+
type(self), self._perm_sequence, self.nominal_perm_space
118118
))
119119

120120
__iter__ = lambda self: iter(self._perm_sequence)
@@ -334,6 +334,10 @@ def __lt__(self, other):
334334
items = caching.CachedProperty(PermItems)
335335
as_dictoid = caching.CachedProperty(PermAsDictoid)
336336

337+
def __eq__(self, other):
338+
return type(self) == type(other) and \
339+
self.nominal_perm_space == other.nominal_perm_space and \
340+
cute_iter_tools.are_equal(self._perm_sequence, other._perm_sequence)
337341

338342

339343

source_py3/python_toolbox/combi/perm_space.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -650,18 +650,16 @@ def __getitem__(self, i):
650650

651651
else:
652652
factoradic_number = math_tools.to_factoradic(
653-
self.number * math.factorial(
654-
self.nominal_perm_space.n_unused_elements),
655-
n_digits_pad=self.nominal_perm_space.sequence_length
653+
i * math.factorial(
654+
self.n_unused_elements),
655+
n_digits_pad=self.sequence_length
656656
)
657657
if self.is_partial:
658-
factoradic_number = factoradic_number[
659-
:-self.nominal_perm_space.n_unused_elements
660-
]
661-
unused_numbers = list(self.nominal_perm_space.sequence)
658+
factoradic_number = factoradic_number[:-self.n_unused_elements]
659+
unused_numbers = list(self.sequence)
662660
result = tuple(unused_numbers.pop(factoradic_digit) for
663661
factoradic_digit in factoradic_number)
664-
assert sequence_tools.get_length(result) == self.length
662+
assert sequence_tools.get_length(result) == self.sequence_length
665663

666664
return self.perm_type(result, self)
667665

source_py3/test_python_toolbox/test_combi/test_perm_space.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ def test_perm_spaces():
5454
with cute_testing.RaiseAssertor(IndexError): pure_0a[pure_0a.length + 2]
5555
with cute_testing.RaiseAssertor(IndexError): pure_0a[pure_0a.length + 300]
5656

57-
with cute_testing.RaiseAssertor(): Perm(24, pure_0a)
58-
with cute_testing.RaiseAssertor(): Perm(-1, pure_0a)
57+
with cute_testing.RaiseAssertor(): pure_0a[24]
5958

6059
assert pure_0a.take_random() in pure_0c
6160

@@ -90,7 +89,6 @@ def test_perm_spaces():
9089
assert isinstance(first_perm.as_dictoid, combi.perm.PermAsDictoid)
9190
assert first_perm.as_dictoid[2] == 2
9291
assert dict(first_perm.as_dictoid) == {0: 0, 1: 1, 2: 2, 3: 3}
93-
assert first_perm % 7 == 0
9492
assert not (first_perm != first_perm)
9593
assert first_perm == first_perm
9694
assert first_perm
@@ -100,8 +98,6 @@ def test_perm_spaces():
10098
assert some_perm.inverse == ~ some_perm
10199
assert ~ ~ some_perm == some_perm
102100

103-
assert int(first_perm) == 0
104-
assert int(last_perm) == len(pure_perm_space) - 1
105101

106102
assert first_perm in pure_perm_space
107103
assert set(first_perm) not in pure_perm_space # No order? Not contained.
@@ -118,9 +114,6 @@ def test_perm_spaces():
118114
len(pure_perm_space) - 1
119115
assert pure_perm_space.index(some_perm) == 7
120116

121-
assert Perm(7, pure_perm_space) == Perm(7, range(4)) == Perm(7, 4) == \
122-
some_perm
123-
124117
assert 'meow' * Perm((1, 3, 2, 0)) == 'ewom'
125118
assert Perm('meow', 'meow') * Perm((1, 3, 2, 0)) == Perm('ewom', 'meow')
126119
assert [0, 1, 2, 3] * Perm((0, 1, 2, 3)) == (0, 1, 2, 3)

0 commit comments

Comments
 (0)