Exemple #1
0
    def test_from_parameters_force_width(self):
        # Create the mock signal and connection
        signal = SignalParameters(latching=True)
        rps = ReceptionParameters(nengo.LinearFilter([1.0], [0.5, 1.0]), 1)

        # Create the filter
        lpf = LinearFilter.from_parameters(signal, rps, width=2)
        assert lpf == LinearFilter(2, True, [1.0], [0.5, 1.0])
Exemple #2
0
    def test_eq(self):
        # Check that linear filters are equal iff. they share a numerator and
        # denominator.
        lpf = LowpassFilter(0, False, 0.1)
        lf1 = LinearFilter(0, False, [1.0], [0.1, 0.2])
        lf2 = LinearFilter(0, False, [1.0], [0.1, 0.3])
        lf3 = LinearFilter(0, False, [1.0], [0.1, 0.2])

        assert lf1 != lpf
        assert lf2 != lf1
        assert lf3 != lf2
        assert lf3 == lf1
    def test_from_parameters_force_width(self):
        # Create the mock signal and connection
        signal = SignalParameters(latching=True)
        rps = ReceptionParameters(nengo.LinearFilter([1.0], [0.5, 1.0]), 1)

        # Create the filter
        lpf = LinearFilter.from_parameters(signal, rps, width=2)
        assert lpf == LinearFilter(2, True, [1.0], [0.5, 1.0])
    def test_pack_data(self, num, den, dt, order):
        # Create the filter
        lf = LinearFilter(0, False, num, den)

        # Create a buffer to pack data into
        data = bytearray((order*2 + 1)*4)

        # Pack the parameters
        lf.pack_data(dt, data, 0)

        # Generate what we expect the data to look like
        numd, dend, _ = cont2discrete((num, den), dt)
        numd = numd.flatten()
        exp = list()
        for a, b in zip(dend[1:], numd[1:]):
            exp.append(-a)
            exp.append(b)
        expected_data = tp.np_to_fix(np.array(exp)).tostring()

        # Check that's what we get
        assert struct.unpack_from("<I", data, 0)[0] == order
        assert data[4:] == expected_data
Exemple #5
0
    def test_pack_data(self, num, den, dt, order):
        # Create the filter
        lf = LinearFilter(0, False, num, den)

        # Create a buffer to pack data into
        data = bytearray((order * 2 + 1) * 4)

        # Pack the parameters
        lf.pack_data(dt, data, 0)

        # Generate what we expect the data to look like
        numd, dend, _ = cont2discrete((num, den), dt)
        numd = numd.flatten()
        exp = list()
        for a, b in zip(dend[1:], numd[1:]):
            exp.append(-a)
            exp.append(b)
        expected_data = tp.np_to_fix(np.array(exp)).tostring()

        # Check that's what we get
        assert struct.unpack_from("<I", data, 0)[0] == order
        assert data[4:] == expected_data
    def test_from_signal_and_connection_with_slice(self, latching, num, den):
        # Create the mock signal and connection
        signal = mock.Mock(name="signal", spec_set=["latching"])
        signal.latching = latching

        with nengo.Network():
            a = nengo.Ensemble(100, 1)
            b = nengo.Ensemble(100, 2)
            connection = nengo.Connection(a, b[1],
                                          synapse=nengo.LinearFilter(num, den))

        # Create the filter
        lpf = LinearFilter.from_signal_and_connection(signal, connection)
        assert lpf == LinearFilter(2, latching, num, den)
    def test_from_signal_and_connection_force_width(self):
        # Create the mock signal and connection
        signal = mock.Mock(name="signal", spec_set=["latching"])
        signal.latching = True

        with nengo.Network():
            a = nengo.Ensemble(100, 3)
            b = nengo.Ensemble(100, 3)
            connection = nengo.Connection(
                a, b, synapse=nengo.LinearFilter([1.0], [0.5, 1.0])
            )

        # Create the filter
        lpf = LinearFilter.from_signal_and_connection(signal, connection,
                                                      width=2)
        assert lpf == LinearFilter(2, True, [1.0], [0.5, 1.0])
 def test_size_words(self, num, den, size_words):
     lf = LinearFilter(0, False, num, den)
     assert lf.size_words() == size_words
 def test_method_index(self):
     lf = LinearFilter(0, False, [1.0], [1.0, 0.5])
     assert lf.method_index() == 2
Exemple #10
0
 def test_size_words(self, num, den, size_words):
     lf = LinearFilter(0, False, num, den)
     assert lf.size_words() == size_words
Exemple #11
0
 def test_method_index(self):
     lf = LinearFilter(0, False, [1.0], [1.0, 0.5])
     assert lf.method_index() == 2