예제 #1
0
파일: test_set.py 프로젝트: jvitku/nengo
 def test_nonlinear(self):
     sm = SimModel()
     f = lambda x: x
     nl1 = Direct(1, 1, f)
     nl2 = Direct(2, 2, f)
     sm.nonlinearity(nl1)
     self.assertEqual(len(sm.nonlinearities), 1)
     sm.nonlinearity(nl1)
     self.assertEqual(len(sm.nonlinearities), 1)  # Already in there
     sm.nonlinearity(nl2)
     self.assertEqual(len(sm.nonlinearities), 2)
     sm.nonlinearity(Direct(1, 1, f))  # Same params as nl1, but different
     self.assertEqual(len(sm.nonlinearities), 3)
예제 #2
0
def test_simple_direct_mode():
    m = SimModel()
    one, steps, simtime = setup_simtime(m)
    sig = m.signal()

    pop = m.nonlinearity(Direct(n_in=1, n_out=1, fn=np.sin))
    m.encoder(simtime, pop, weights=[[1.0]])
    m.decoder(pop, sig, weights=[[1.0]])
    m.transform(1.0, sig, sig)

    sim = Simulator(m)
    for i in range(5):
        sim.step()
        if i:
            assert sim.signals[sig] == np.sin(sim.signals[simtime] - 0.001)