Exemplo n.º 1
0
    def test_twoNodeOneSource_ManualSub_Op(self):
        
        e = Event(1)

        NetInput = Node("Net Input")
        src = Node("src", can_hold=False)
        a = Node("A1")
        b = Node("B1")

        mod0 = Modifier(NetInput, src, 200)
        mod1 = Modifier(src, a, 0.50, method='proportion')
        mod2 = Modifier(src, b, 0.50, method='proportion')

        mod0.subscribe_to(e)
        mod1.subscribe_to(e)
        mod2.subscribe_to(e)

        self.assertTrue(NetInput._val == 0)
        self.assertTrue(src._val == 0)
        self.assertTrue(a._val == 0)
        self.assertTrue(b._val == 0)

        e()

        self.assertTrue(NetInput._val == -200)
        self.assertTrue(src._val == 0)
        self.assertTrue(a._val == 100)
        self.assertTrue(b._val == 100)
Exemplo n.º 2
0
    def test_SweepBasic_ManualIdxAdd_nop(self):
        """ Here we don't have to make several events to which
        each element must subscribe to. Instead, we only make one
        base event, and re-use that event over a Sweep object
        """

        A = Node("A")
        B = Node("B")
        M = Modifier(A, B, 1)

        e = Event(1)
        M.subscribe_to(e)

        s = Sweep(e)

        #This won't happen in actual code, but for TDD purposes
        #we will extend the list like this
        s._indexes.extend([1, 2, 3])

        self.assertTrue(A.val == 0)
        self.assertTrue(B.val == 0)

        ret = 0
        while ret is not None:
            ret = s()

        self.assertTrue(A.val == -B.val)
        self.assertTrue(B.val == 3)
Exemplo n.º 3
0
    def test_twoNodeNoSource_ManualSub_Op(self):

        e = Event(1)

        a = Node("A", init_val = 100)
        b = Node("B")
        mod = Modifier(a,b,100)

        mod.subscribe_to(e)

        self.assertTrue(a._val == 100)
        self.assertTrue(b._val == 0)

        e()

        self.assertTrue(a._stage == 0)
        self.assertTrue(a._val == 0)
        self.assertTrue(b._stage == 0)
        self.assertTrue(b._val == 100)
Exemplo n.º 4
0
    def test_twoEvents_ManualSub_Op(self):

        e = Event(1)
        e2 = Event(2)
        e.nextEvent = e2

        NetInput = Node("Net Input")
        src = Node("src", can_hold=False)
        a = Node("A1")
        b = Node("B1")

        mod0 = Modifier(NetInput, src, 200)
        mod1 = Modifier(src, a, 0.50, method='proportion')
        mod2 = Modifier(src, b, 0.50, method='proportion')

        mod0.subscribe_to(e, e2)
        mod1.subscribe_to(e, e2)
        mod2.subscribe_to(e, e2)

        self.assertTrue(NetInput._val == 0)
        self.assertTrue(src._val == 0)
        self.assertTrue(a._val == 0)
        self.assertTrue(b._val == 0)

        e = e()

        self.assertTrue(NetInput._val == -200)
        self.assertTrue(src._val == 0)
        self.assertTrue(a._val == 100)
        self.assertTrue(b._val == 100)

        e = e()

        self.assertTrue(NetInput._val == -400)
        self.assertTrue(src._val == 0)
        self.assertTrue(a._val == 200)
        self.assertTrue(b._val == 200)

        self.assertTrue(e is None)
Exemplo n.º 5
0
    def test_nodeStaging_noHold_op(self):

        n = Node("test", can_hold=False)
        n.stage(100)

        self.assertTrue(n._val == 0)
        self.assertTrue(n._stage == 100)

        n.apply()

        self.assertTrue(n._stage == 0)
        self.assertTrue(n._val == 0)
Exemplo n.º 6
0
    def test_nodeStaging_withHolds_op(self):

        n = Node("test")
        n.stage(100)

        self.assertTrue(n._val == 0)
        self.assertTrue(n._stage == 100)

        n.apply()

        self.assertTrue(n._stage == 0)
        self.assertTrue(n._val == 100)
Exemplo n.º 7
0
    def test_modifierSimple_add_op(self):

        a = Node("A", init_val=100)
        b = Node("B")

        mod = Modifier(a, b, 100)

        self.assertTrue(a._val == 100)
        self.assertTrue(b._val == 0)

        mod.apply()

        self.assertTrue(a._stage == -100)
        self.assertTrue(a._val == 100)
        self.assertTrue(b._stage == 100)
        self.assertTrue(b._val == 0)

        a.apply()
        b.apply()

        self.assertTrue(a._stage == 0)
        self.assertTrue(a._val == 0)
        self.assertTrue(b._stage == 0)
        self.assertTrue(b._val == 100)