Esempio n. 1
0
def test_clear_momentum_events():
    g = Gauge(0, 10, at=0)
    m = g.add_momentum(+1, since=10, until=20)
    assert list(g.momentum_events()) == \
        [(0, NONE, None), (10, ADD, m), (20, REMOVE, m), (+inf, NONE, None)]
    # assert len(g._events) == 2
    g.remove_momentum(m)
    assert list(g.momentum_events()) == [(0, NONE, None), (+inf, NONE, None)]
Esempio n. 2
0
def test_clear_momentum_events():
    g = Gauge(0, 10, at=0)
    m = g.add_momentum(+1, since=10, until=20)
    assert list(g.momentum_events()) == \
        [(0, NONE, None), (10, ADD, m), (20, REMOVE, m), (+inf, NONE, None)]
    # assert len(g._events) == 2
    g.remove_momentum(m)
    assert list(g.momentum_events()) == [(0, NONE, None), (+inf, NONE, None)]
Esempio n. 3
0
def test_remove_momentum_event_on_remove_momentum():
    g = Gauge(0, 10, at=0)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (10, 10)]
    g.remove_momentum(+1)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (10, 10)]
    g.remove_momentum(+1)
    g.add_momentum(+1)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (5, 10)]
    g.clear_momenta(at=0)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (10, 10)]
Esempio n. 4
0
def test_case8():
    """There's a hyper-gauge.  When the same effects are affected twice, the
    underlying gauge became to be out of the limited range.
    """
    m = Gauge(679, 679, at=1503918965.158631)
    m.add_momentum(+0.001157)

    g = Gauge(679, m, at=1503918965.158631)
    g.add_momentum(+1)

    # Gauge "g" should be always in the range of "m".
    def G_SHOULD_BE_FULLY_IN_RANGE():
        assert g.determination.in_range_since == g.base[TIME]

    G_SHOULD_BE_FULLY_IN_RANGE()

    # first effect ------------------------------------------------------------

    m.forget_past(at=1503919261.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.add_momentum(0, since=1503919261.248346, until=1503919266.248346)
    m.forget_past(at=1503919261.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.add_momentum(-0.2, since=1503919261.248346, until=1503919561.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    # second effect -----------------------------------------------------------

    m.forget_past(at=1503919279.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.forget_past(at=1503919279.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.add_momentum(0, since=1503919279.381339, until=1503919284.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.forget_past(at=1503919279.482356)
    m.remove_momentum(-0.2, since=1503919261.248346, until=1503919561.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    with pytest.raises(ValueError):
        m.forget_past(at=1503919279.381339)
    m.add_momentum(-0.2, since=1503919279.381339, until=1503919579.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()  # failing!

    m.forget_past(at=1503919287.680848)
    G_SHOULD_BE_FULLY_IN_RANGE()  # failing!
Esempio n. 5
0
def test_remove_momentum_event_on_remove_momentum():
    g = Gauge(0, 10, at=0)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (10, 10)]
    g.remove_momentum(+1)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (10, 10)]
    g.remove_momentum(+1)
    g.add_momentum(+1)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (5, 10)]
    g.clear_momenta(at=0)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (10, 10)]
Esempio n. 6
0
def test_case8():
    """There's a hyper-gauge.  When the same effects are affected twice, the
    underlying gauge became to be out of the limited range.
    """
    m = Gauge(679, 679, at=1503918965.158631)
    m.add_momentum(+0.001157)

    g = Gauge(679, m, at=1503918965.158631)
    g.add_momentum(+1)

    # Gauge "g" should be always in the range of "m".
    def G_SHOULD_BE_FULLY_IN_RANGE():
        assert g.determination.in_range_since == g.base[TIME]

    G_SHOULD_BE_FULLY_IN_RANGE()

    # first effect ------------------------------------------------------------

    m.forget_past(at=1503919261.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.add_momentum(0, since=1503919261.248346, until=1503919266.248346)
    m.forget_past(at=1503919261.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.add_momentum(-0.2, since=1503919261.248346, until=1503919561.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    # second effect -----------------------------------------------------------

    m.forget_past(at=1503919279.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.forget_past(at=1503919279.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.add_momentum(0, since=1503919279.381339, until=1503919284.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()

    m.forget_past(at=1503919279.482356)
    m.remove_momentum(-0.2, since=1503919261.248346, until=1503919561.248346)
    G_SHOULD_BE_FULLY_IN_RANGE()

    with pytest.raises(ValueError):
        m.forget_past(at=1503919279.381339)
    m.add_momentum(-0.2, since=1503919279.381339, until=1503919579.381339)
    G_SHOULD_BE_FULLY_IN_RANGE()  # failing!

    m.forget_past(at=1503919287.680848)
    G_SHOULD_BE_FULLY_IN_RANGE()  # failing!
Esempio n. 7
0
def test_remove_momentum():
    g = Gauge(0, 10, at=0)
    m1 = g.add_momentum(+1)
    m2 = g.add_momentum(Momentum(+1))
    g.add_momentum(+2, since=10)
    g.add_momentum(-3, until=100)
    assert len(g.momenta) == 4
    assert g.remove_momentum(m2) == m2
    assert len(g.momenta) == 3
    assert m1 in g.momenta
    assert m2 in g.momenta
    assert g.remove_momentum(m2) == m2
    assert len(g.momenta) == 2
    assert m1 not in g.momenta
    assert m2 not in g.momenta
    with pytest.raises(ValueError):
        g.remove_momentum(+2)
    assert g.remove_momentum(+2, since=10) == (+2, 10, +inf)
    assert len(g.momenta) == 1
    assert g.remove_momentum(Momentum(-3, until=100)) == (-3, -inf, 100)
    assert not g.momenta
Esempio n. 8
0
def test_remove_momentum():
    g = Gauge(0, 10, at=0)
    m1 = g.add_momentum(+1)
    m2 = g.add_momentum(Momentum(+1))
    g.add_momentum(+2, since=10)
    g.add_momentum(-3, until=100)
    assert len(g.momenta) == 4
    assert g.remove_momentum(m2) == m2
    assert len(g.momenta) == 3
    assert m1 in g.momenta
    assert m2 in g.momenta
    assert g.remove_momentum(m2) == m2
    assert len(g.momenta) == 2
    assert m1 not in g.momenta
    assert m2 not in g.momenta
    with pytest.raises(ValueError):
        g.remove_momentum(+2)
    assert g.remove_momentum(+2, since=10) == (+2, 10, +inf)
    assert len(g.momenta) == 1
    assert g.remove_momentum(Momentum(-3, until=100)) == (-3, -inf, 100)
    assert not g.momenta