Beispiel #1
0
    def test_raises_when_kwargs_list_lengths_and_stackers_lengths_differ(self):
        with pytest.raises(ValueError) as e:
            bps.single_stack(['a', 'b', 'c'], 'foo', baz=[1, 2], quux=[3, 4])

        assert str(e.value).endswith(
            "Keyword argument sequences for broadcasting must be the same length as stackers"
        )
Beispiel #2
0
    def test_raises_when_kwargs_list_lengths_differ(self) -> None:
        with pytest.raises(ValueError) as e:
            bps.single_stack(['a', 'b'], 'foo', baz=[1, 2], quux=[3, 4, 5])

        assert str(e.value).endswith(
            "Keyword argument sequences for broadcasting must all be the same lengths. Got lengths: [2, 3]"
        )
Beispiel #3
0
 def test_broadcast_with_no_kwargs(self) -> None:
     stackers = ['a', 'b', 'c', 'd']
     kws = bps.single_stack(stackers, 'start')
     assert len(kws) == len(stackers)
     for i, kw in enumerate(kws):
         assert {"start", "name"} == set(kw.keys())
         assert list(kw["start"]["expr"].fields) == stackers[: i + 1]
Beispiel #4
0
 def test_broadcast_with_no_kwargs(self):
     stackers = ['a', 'b', 'c', 'd']
     kws = bps.single_stack(stackers, 'start')
     assert len(kws) == len(stackers)
     for i, kw in enumerate(kws):
         assert set(['start', 'name']) == set(kw.keys())
         assert list(kw['start']['expr'].fields) == stackers[:i + 1]
Beispiel #5
0
 def test_broadcast_name_scalar_overrides(self) -> None:
     stackers = ['a', 'b', 'c', 'd']
     kws = bps.single_stack(stackers, 'start', foo=[10, 20, 30, 40], bar="baz", name="name")
     assert len(kws) == len(stackers)
     for i, kw in enumerate(kws):
         assert {"start", "foo", "bar", "name"} == set(kw.keys())
         assert list(kw["start"]["expr"].fields) == stackers[: i + 1]
         assert kw["foo"] == [10, 20, 30, 40][i]
         assert kw["bar"] == "baz"
         assert kw["name"] == "name"
Beispiel #6
0
 def test_broadcast_with_scalar_kwargs(self) -> None:
     stackers = ['a', 'b', 'c', 'd']
     kws = bps.single_stack(stackers, 'start', foo=10, bar="baz")
     assert len(kws) == len(stackers)
     for i, kw in enumerate(kws):
         assert {"start", "foo", "bar", "name"} == set(kw.keys())
         assert list(kw["start"]["expr"].fields) == stackers[: i + 1]
         assert kw["foo"] == 10
         assert kw["bar"] == "baz"
         assert kw["name"] == stackers[i]
Beispiel #7
0
 def test_broadcast_with_scalar_kwargs(self):
     stackers = ['a', 'b', 'c', 'd']
     kws = bps.single_stack(stackers, 'start', foo=10, bar="baz")
     assert len(kws) == len(stackers)
     for i, kw in enumerate(kws):
         assert set(['start', 'foo', 'bar', 'name']) == set(kw.keys())
         assert list(kw['start']['expr'].fields) == stackers[:i + 1]
         assert kw['foo'] == 10
         assert kw['bar'] == "baz"
         assert kw['name'] == stackers[i]
Beispiel #8
0
 def test_broadcast_name_scalar_overrides(self):
     stackers = ['a', 'b', 'c', 'd']
     kws = bps.single_stack(stackers,
                            'start',
                            foo=[10, 20, 30, 40],
                            bar="baz",
                            name="name")
     assert len(kws) == len(stackers)
     for i, kw in enumerate(kws):
         assert set(['start', 'foo', 'bar', 'name']) == set(kw.keys())
         assert list(kw['start']['expr'].fields) == stackers[:i + 1]
         assert kw['foo'] == [10, 20, 30, 40][i]
         assert kw['bar'] == "baz"
         assert kw['name'] == "name"
Beispiel #9
0
    def test_raises_when_spec_in_kwargs(self) -> None:
        with pytest.raises(ValueError) as e:
            bps.single_stack(['a', 'b'], 'foo', foo=10)

        assert str(e.value).endswith("Stack property 'foo' cannot appear in keyword args")