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'])
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')
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'])
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)]))
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'])
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'])
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'])