예제 #1
0
    def test_merge_deltas(self):
        result_value = BindArgs(bound=8, deltas=[
            'higher deltas', WrappedDelta(type=DeltaType.list, delta=[
                    WrappedDelta(type=DeltaType.default, delta=None),
                    WrappedDelta(type=DeltaType.configured, delta=False)])])
        higher_deltas = ['higher deltas']
        bound_before = Bound(unbound=4, annotation=MaybeDeltaMaker.has_value)

        bound_result, higher_deltas = bind(get_echo(result_value))(
            BindArgs(bound=bound_before, deltas=higher_deltas))
        expect(bound_result).to_equal(Bound(unbound=None, annotation=False))
        expect(higher_deltas).to_equal(['higher deltas'])
예제 #2
0
    def test_bind_two_layers(self):
        bound_before = Bound(
                unbound=Bound(unbound=4, annotation=MaybeDeltaMaker.has_value),
                annotation=MaybeDeltaMaker.has_value)
        result = BindArgs(bound=8, deltas=[
            'higher deltas',
            WrappedDelta(type=DeltaType.default, delta=True),
            WrappedDelta(type=DeltaType.default, delta=True)])

        after = bind(bind(get_echo(result)))(
                BindArgs(bound=bound_before, deltas=['higher deltas']))
        outer_bound, deltas = after
        inner_bound, outer_annotation = outer_bound
        value, inner_annotation = inner_bound
        expect(outer_annotation).to_equal(MaybeDeltaMaker.has_value)
        expect(inner_annotation).to_equal(MaybeDeltaMaker.has_value)
        expect(value).to_equal(8)
        expect(deltas[0]).to_equal('higher deltas')
예제 #3
0
    def test_bind_has_value_to_has_no_value(self):
        result_value = BindArgs(bound='value', deltas=['higher deltas',
            WrappedDelta(type=DeltaType.configured, delta=MaybeDeltaMaker.no_value)])
        higher_deltas = ['higher deltas']
        bound_before = Bound(unbound=4, annotation=MaybeDeltaMaker.has_value)

        bound_result, higher_deltas = bind(get_echo(result_value))(BindArgs(
            bound=bound_before, deltas=higher_deltas))
        expect(bound_result).to_equal((None, MaybeDeltaMaker.no_value))
        expect(higher_deltas).to_equal(['higher deltas'])
예제 #4
0
    def test_box_four(a):
        add_simplads = SM.add_simplads({
            's1': ListSimplad(),
            's2': ListSimplad(),
            's3': ListSimplad(),
            's4': ListSimplad()})
        order = SM.set_simplad_order(['s4','s3','s2','s1'])

        sm = (F() >> add_simplads >> order)(SM.make())

        boxed = SM.get_box(sm)(lambda x: x)(
            BindArgs(bound=SimpladResult(val=8,
                    delta_map={'s2': MaybeType.no_value}), deltas=[]))

        expect(boxed).to_equal(
           BindArgs(bound=8, deltas=[
               WrappedDelta(type=DeltaType.default, delta=None),
               WrappedDelta(type=DeltaType.configured,
                   delta=MaybeType.no_value),
               WrappedDelta(type=DeltaType.default, delta=None),
               WrappedDelta(type=DeltaType.default, delta=None)]))
예제 #5
0
    def test_merge_deltas(self):
        result_value = BindArgs(
            bound=8,
            deltas=[
                'higher deltas',
                WrappedDelta(type=DeltaType.list,
                             delta=[
                                 WrappedDelta(type=DeltaType.default,
                                              delta=None),
                                 WrappedDelta(type=DeltaType.configured,
                                              delta=ErrorDeltaMaker.finish())
                             ])
            ])
        higher_deltas = ['higher deltas']
        bound_before = Bound(unbound=4, annotation=ErrorType.none)

        bound_result, higher_deltas = bind(get_echo(result_value))(BindArgs(
            bound=bound_before, deltas=higher_deltas))
        expect(bound_result).to_equal(
            Bound(unbound=ErrorRes(has_error=False, result=8),
                  annotation=ErrorType.finish))
        expect(higher_deltas).to_equal(['higher deltas'])
예제 #6
0
    def test_bind_has_no_value_to_has_value(self):
        result_delta = WrappedDelta(type=DeltaType.configured,
                                    delta=ErrorDeltaMaker.error('error text'))
        higher_deltas_after = ['higher deltas', result_delta]
        result_value = BindArgs(bound=None, deltas=higher_deltas_after)
        higher_deltas_before = ['higher deltas']
        bound_before = Bound(unbound=4, annotation=ErrorType.none)

        bound_result, higher_deltas = bind(get_echo(result_value))(BindArgs(
            bound=bound_before, deltas=higher_deltas_before))

        expect(bound_result).to_equal(
            Bound(unbound=ErrorRes(has_error=True, error_text='error text'),
                  annotation=ErrorType.error))
        expect(higher_deltas).to_equal(['higher deltas'])
예제 #7
0
    def test_bind_has_value_to_has_value(self):
        result_value = BindArgs(bound=8,
                                deltas=[
                                    'higher deltas',
                                    WrappedDelta(type=DeltaType.default,
                                                 delta=None)
                                ])
        higher_deltas = ['higher deltas']
        bound_before = Bound(unbound=4, annotation=ErrorType.none)

        bound_result, higher_deltas = bind(get_echo(result_value))(BindArgs(
            bound=bound_before, deltas=higher_deltas))
        expect(bound_result).to_equal(
            Bound(unbound=8, annotation=ErrorType.none))
        expect(higher_deltas).to_equal(['higher deltas'])