Beispiel #1
0
    def test_with_different_subclasses(self):
        class SubState(State):
            pass

        s1 = State()
        s2 = SubState()
        assert not s1 == s2

        s1 = SubState()
        s2 = SubState()
        assert s1 == s2

        s1.states = {
            'a': State({
                's': State(),
                's2': State() }),
            'b': State()
        }
        s2.states = {
            'a': State({
                's': SubState(),
                's2': State() }),
            'b': State()
        }
        assert not s1 == s2
        s1.states = {
            'a': State({
                's': SubState(),
                's2': State() }),
            'b': State()
        }
        assert s1 == s2
Beispiel #2
0
    def test_children_empty(self):
        s1 = State()
        s2 = State()

        s1.states = []
        assert not s1 == s2  # s2 has {}
        s2.states = []
        assert s1 == s2
Beispiel #3
0
 def test_children_list_different_order(self):
     s1 = State()
     s2 = State()
     s1.states = [leaf('1'), leaf('2'), leaf('3')]
     s2.states = [leaf('1'), leaf('2'), leaf('3')]
     assert s1 == s2
     s2.states = [leaf('3'), leaf('1'), leaf('2')]
     assert s1 == s2
     s2.states = [leaf('3'), leaf('999'), leaf('2')]
     assert not s1 == s2
Beispiel #4
0
 def test_children_list_nested(self):
     s1 = State()
     s2 = State()
     s1.states = [
         State([State(), State()]),
         State([State(), State()]),
     ]
     s2.states = [
         State([State()]),
         State([State(), State()]),
     ]
     assert not s1 == s2
     s2.states = [
         State([State(), State()]),
         State([State(), State()]),
     ]
     assert s1 == s2
Beispiel #5
0
 def test_children_dict_nested(self):
     s1 = State()
     s2 = State()
     s1.states = {
         'a': State({
             's': State(),
             's2': State() }),
         'b': State()
     }
     assert not s1 == s2
     s2.states = {
         'a': State({
             's': State(),
             's2': State() }),
         'b': State()
     }
     assert s1 == s2
Beispiel #6
0
 def test_children_list_different_order_nested(self):
     s1 = State()
     s2 = State()
     s1.states = [
         composite('A', [leaf('1'), leaf('2')]),
         composite('B', [leaf('3'), leaf('4')]),
     ]
     s2.states = [
         composite('A', [leaf('2'), leaf('1')]),
         composite('B', [leaf('4'), leaf('3')]),
     ]
     assert s1 == s2
     s2.states = [
         composite('B', [leaf('4'), leaf('3')]),
         composite('A', [leaf('2'), leaf('1')]),
     ]
     assert s1 == s2
     s2.states = [
         composite('B', [leaf('4'), leaf('3')]),
         composite('A', [leaf('999'), leaf('1')]),
     ]
     assert not s1 == s2
Beispiel #7
0
    def test_children_dict(self):
        s1 = State()
        s2 = State()
        s1.states = {1: 'a', 2: {}}
        s2.states = {1: 'a', 2: {}}
        assert s1 == s2
        s1.states = {1: 'a', 2: {3: {}}}
        assert not s1 == s2

        s1.states = [State(), State()]
        s2.states = [State(), State()]
        assert s1 == s2

        s1.states = { 'a': State(), 'b': State() }
        s2.states = { 'a': State(), 'b': State() }
        assert s1 == s2