Example #1
0
def test_set_range():
    g = Gauge(0, 100, at=0)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (100, 100)]
    g.set_range(Gauge(100, 100, at=0), Gauge(0, 100, at=0), at=0)
    g.max_gauge.add_momentum(-1, until=40)
    g.min_gauge.add_momentum(+1, until=40)
    assert g.determination == [(0, 0), (60, 60)]
    g.clear_momenta(at=30)
    g.add_momentum(-1)
    assert g.determination == [(30, 30), (40, 40)]
Example #2
0
def test_set_range():
    g = Gauge(0, 100, at=0)
    g.add_momentum(+1)
    assert g.determination == [(0, 0), (100, 100)]
    g.set_range(Gauge(100, 100, at=0), Gauge(0, 100, at=0), at=0)
    g.max_gauge.add_momentum(-1, until=40)
    g.min_gauge.add_momentum(+1, until=40)
    assert g.determination == [(0, 0), (60, 60)]
    g.clear_momenta(at=30)
    g.add_momentum(-1)
    assert g.determination == [(30, 30), (40, 40)]
Example #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)]
Example #4
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)]
Example #5
0
class Equilibrium(object):

    gauge = None
    speed = None

    def __init__(self, medium, speed):
        self.speed = speed
        self.medium = medium

    @property
    def medium(self):
        return self._medium

    @medium.setter
    def medium(self, medium, at=None):
        at = now_or(at)
        self._medium = medium
        if self.gauge is None:
            self.gauge = Gauge(medium, medium, medium)
            return
        value = self.gauge.clear_momenta(at)
        if value == medium:
            self.gauge._set_limits(medium, medium, at=at)
            return
        if value < medium:
            self.gauge.set_max(medium, at=at)
            velocity = +self.speed
        elif value > medium:
            self.gauge.set_min(medium, at=at)
            velocity = -self.speed
        self.gauge.add_momentum(velocity, since=at)
Example #6
0
class Equilibrium(object):

    gauge = None
    speed = None

    def __init__(self, medium, speed):
        self.speed = speed
        self.medium = medium

    @property
    def medium(self):
        return self._medium

    @medium.setter
    def medium(self, medium, at=None):
        at = now_or(at)
        self._medium = medium
        if self.gauge is None:
            self.gauge = Gauge(medium, medium, medium)
            return
        value = self.gauge.clear_momenta(at)
        if value == medium:
            self.gauge._set_limits(medium, medium, at=at)
            return
        if value < medium:
            self.gauge.set_max(medium, at=at)
            velocity = +self.speed
        elif value > medium:
            self.gauge.set_min(medium, at=at)
            velocity = -self.speed
        self.gauge.add_momentum(velocity, since=at)
Example #7
0
def test_clear_momenta():
    g = Gauge(0, 10, at=0)
    g.add_momentum(+1)
    g.clear_momenta(at=5)
    assert g.get(5) == 5
    assert g.determination == [(5, 5)]
    # clear momenta when the value is out of the range
    g.add_momentum(+1)
    g.set(15, outbound=OK, at=10)
    g.clear_momenta(at=10)
    assert g.get(10) == 15
    assert g.determination == [(10, 15)]
    # rebase by Gauge.clear_momenta()
    g.clear_momenta(100)
    assert g.get() == 100
Example #8
0
def test_clear_momenta():
    g = Gauge(0, 10, at=0)
    g.add_momentum(+1)
    g.clear_momenta(at=5)
    assert g.get(5) == 5
    assert g.determination == [(5, 5)]
    # clear momenta when the value is out of the range
    g.add_momentum(+1)
    g.set(15, outbound=OK, at=10)
    g.clear_momenta(at=10)
    assert g.get(10) == 15
    assert g.determination == [(10, 15)]
    # rebase by Gauge.clear_momenta()
    g.clear_momenta(100)
    assert g.get() == 100