11# Copyright 2009-2014 Ram Rachum.
22# This program is distributed under the MIT license.
33
4+ from python_toolbox import cute_testing
5+
46from python_toolbox .combi import *
57
68
@@ -16,4 +18,34 @@ def test_product_spaces():
1618 assert perm_1 in big_perm_space
1719 assert (perm_0 , perm_1 ) in product_space
1820 assert product_space .index ((perm_0 , perm_1 )) == 10 ** 10
19- assert ( ~ perm_0 , ~ perm_1 ) in product_space
21+ assert (~ perm_0 , ~ perm_1 ) in product_space
22+ assert repr (product_space ) == (
23+ '<ProductSpace: 933262154439441526816992388562667004907159682643816214'
24+ '685929638952175999932299156089414639761565182862536979208272237582511'
25+ '85210916864000000000000000000000000 * 208755412068>'
26+ )
27+
28+ assert product_space
29+ assert not ProductSpace (((),))
30+ assert not ProductSpace (((), {}))
31+ with cute_testing .RaiseAssertor (IndexError ):
32+ product_space [product_space .length ]
33+ with cute_testing .RaiseAssertor (IndexError ):
34+ product_space [product_space .length + 7 ]
35+ with cute_testing .RaiseAssertor (IndexError ):
36+ product_space [- product_space .length - 1 ]
37+ with cute_testing .RaiseAssertor (IndexError ):
38+ product_space [- product_space .length - 100 ]
39+
40+ assert {ProductSpace ((range (4 ), range (3 ))),
41+ ProductSpace ((range (4 ), range (3 ))),
42+ ProductSpace ((range (3 ), range (4 )))} == {
43+ ProductSpace ((range (4 ), range (3 ))),
44+ ProductSpace ((range (3 ), range (4 )))
45+ }
46+
47+ assert ProductSpace ((range (4 ), range (3 ))) == \
48+ ProductSpace ((range (4 ), range (3 )))
49+ assert ProductSpace ((range (4 ), range (3 ))) != \
50+ ProductSpace ((range (3 ), range (4 )))
51+
0 commit comments