Esempio n. 1
0
    def test_merge_deltas(self):
        bound_before = unit(echo)(4)

        delta = WrappedDelta(
            type=DeltaType.list,
            delta=[
                WrappedDelta(delta=LogDeltaMaker.messages_and_listener(['one'
                                                                        ]),
                             type=DeltaType.configured),
                WrappedDelta(delta=LogDeltaMaker.messages(['two']),
                             type=DeltaType.configured)
            ])

        args = bind(return_with_delta(delta))(BindArgs(bound=bound_before,
                                                       deltas=['higher delts'
                                                               ]))

        result = BindArgs(bound=8,
                          deltas=[
                              'delts',
                              WrappedDelta(type=DeltaType.configured,
                                           delta=(['three'], []))
                          ])

        res = bind(get_echo(result))(BindArgs(bound=args.bound, deltas=[]))
        (value, listeners), deltas = res
        func, log = listeners['log']
        expect(log).to_equal(['one', 'two', 'three'])
Esempio n. 2
0
 def double(i):
     return BindArgs(bound=2 * i[0],
                     deltas=[
                         WrappedDelta(
                             type=DeltaType.list,
                             delta=[
                                 WrappedDelta(type=DeltaType.configured,
                                              delta='a'),
                                 WrappedDelta(type=DeltaType.configured,
                                              delta='b')
                             ]),
                         WrappedDelta(type=DeltaType.default,
                                      delta=None)
                     ])
Esempio n. 3
0
    def test_bind_two_layers(self):
        bound_before = Bound(unbound=Bound(unbound=4, annotation={}),
                             annotation={})
        delta = WrappedDelta(type=DeltaType.configured, delta=([], []))
        result = BindArgs(bound=8, deltas=['delts', delta, delta])

        after = bind(bind(get_echo(result)))(BindArgs(bound=bound_before,
                                                      deltas=['delts']))
        expect(after).to_equal((((8, {}), {}), ['delts']))
Esempio n. 4
0
 def rotate(deltas_by_children):
     deltas_by_simplad = [[] for i in deltas_by_children[0]]
     for child in deltas_by_children:
         simplad_index = 0
         for simplad_delta in child:
             deltas_by_simplad[simplad_index].append(simplad_delta)
             simplad_index += 1
     return [
         WrappedDelta(type=DeltaType.list, delta=delta_list)
         for delta_list in deltas_by_simplad
     ]
Esempio n. 5
0
    def test_bind_single_layer(self):
        bound_before = Bound(unbound=4, annotation={})
        delta = (['one'], [])
        result = BindArgs(bound=8,
                          deltas=[
                              'delts',
                              WrappedDelta(type=DeltaType.configured,
                                           delta=delta)
                          ])

        after = bind(get_echo(result))(BindArgs(bound=bound_before,
                                                deltas=['delts']))
        expect(after).to_equal(((8, {}), ['delts']))
Esempio n. 6
0
    def test_single_message(self):
        def add_to_log(log, message):
            log.append(message)
            return log

        bound_before = Bound(unbound=4, annotation={'log': (add_to_log, [])})
        delta = (['one'], [])
        result = BindArgs(bound=8,
                          deltas=[
                              'delts',
                              WrappedDelta(type=DeltaType.configured,
                                           delta=delta)
                          ])

        res = bind(get_echo(result))(BindArgs(bound=bound_before,
                                              deltas=['delts']))
        (value, listeners), deltas = res
        func, log = listeners['log']
        expect(log).to_equal(['one'])
Esempio n. 7
0
def return_with_wrapped_delta(delta):
    return lambda i: return_with_delta(
        WrappedDelta(type=DeltaType.configured, delta=delta))(i)
Esempio n. 8
0
    def test_bind_with_deltas(self):
        def double(i):
            return BindArgs(bound=2 * i[0],
                            deltas=[
                                WrappedDelta(
                                    type=DeltaType.list,
                                    delta=[
                                        WrappedDelta(type=DeltaType.configured,
                                                     delta='a'),
                                        WrappedDelta(type=DeltaType.configured,
                                                     delta='b')
                                    ]),
                                WrappedDelta(type=DeltaType.default,
                                             delta=None)
                            ])

        bound_before = Bound(unbound=[1, 2, 3, 4], annotation=None)
        after = bind(double)(BindArgs(bound=bound_before, deltas=[]))
        expect(after).to_equal(
            BindArgs(
                bound=Bound(unbound=[2, 4, 6, 8], annotation=None),
                deltas=[
                    WrappedDelta(
                        type=DeltaType.list,
                        delta=[
                            WrappedDelta(
                                type=DeltaType.list,
                                delta=[
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='a'),
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='b')
                                ]),
                            WrappedDelta(
                                type=DeltaType.list,
                                delta=[
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='a'),
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='b')
                                ]),
                            WrappedDelta(
                                type=DeltaType.list,
                                delta=[
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='a'),
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='b')
                                ]),
                            WrappedDelta(
                                type=DeltaType.list,
                                delta=[
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='a'),
                                    WrappedDelta(type=DeltaType.configured,
                                                 delta='b')
                                ])
                        ])
                ]))
Esempio n. 9
0
 def double(i):
     return BindArgs(
         bound=2 * i[0],
         deltas=[WrappedDelta(type=DeltaType.default, delta=None)])
Esempio n. 10
0
def return_with_delta(delta):
    return lambda i: (i[0],
                      [WrappedDelta(type=DeltaType.configured, delta=delta)])