コード例 #1
0
    def test_trajectory_too_short(self):
        net = ECA(30, 3)
        with self.assertRaises(ValueError):
            net.trajectory([0, 0, 0], timesteps=-1)

        with self.assertRaises(ValueError):
            net.trajectory([0, 0, 0], timesteps=0)
コード例 #2
0
 def test_timeseries_eca(self):
     for size in [5, 7, 11]:
         rule = ECA(30, size)
         time = 10
         series = rule.timeseries(time)
         self.assertEqual((size, 2**size, time + 1), series.shape)
         for index, state in enumerate(rule):
             traj = rule.trajectory(state, timesteps=time)
             for t, expect in enumerate(traj):
                 got = series[:, index, t]
                 self.assertTrue(np.array_equal(expect, got))
コード例 #3
0
    def test_trajectory_eca(self):
        net = ECA(30, 3)

        with self.assertRaises(ValueError):
            net.trajectory([])

        with self.assertRaises(ValueError):
            net.trajectory([0, 1])

        xs = [0, 1, 0]

        got = net.trajectory(xs)
        self.assertEqual([0, 1, 0], xs)
        self.assertEqual([[0, 1, 0], [1, 1, 1], [0, 0, 0]], got)

        got = net.trajectory(xs, timesteps=5)
        self.assertEqual([0, 1, 0], xs)
        self.assertEqual([[0, 1, 0], [1, 1, 1], [0, 0, 0],
                          [0, 0, 0], [0, 0, 0], [0, 0, 0]], got)

        got = net.trajectory(xs, encode=False)
        self.assertEqual([0, 1, 0], xs)
        self.assertEqual([[0, 1, 0], [1, 1, 1], [0, 0, 0]], got)

        got = net.trajectory(xs, timesteps=5, encode=False)
        self.assertEqual([0, 1, 0], xs)
        self.assertEqual([[0, 1, 0], [1, 1, 1], [0, 0, 0],
                          [0, 0, 0], [0, 0, 0], [0, 0, 0]], got)

        got = net.trajectory(xs, encode=True)
        self.assertEqual([0, 1, 0], xs)
        self.assertEqual([2, 7, 0], list(got))

        got = net.trajectory(xs, timesteps=5, encode=True)
        self.assertEqual([0, 1, 0], xs)
        self.assertEqual([2, 7, 0, 0, 0, 0], list(got))

        xs = 2
        got = net.trajectory(xs)
        self.assertEqual([2, 7, 0], list(got))

        got = net.trajectory(xs, timesteps=5)
        self.assertEqual([2, 7, 0, 0, 0, 0], list(got))

        got = net.trajectory(xs, encode=True)
        self.assertEqual([2, 7, 0], list(got))

        got = net.trajectory(xs, timesteps=5, encode=True)
        self.assertEqual([2, 7, 0, 0, 0, 0], list(got))

        got = net.trajectory(xs, encode=False)
        self.assertEqual([[0, 1, 0], [1, 1, 1], [0, 0, 0]], got)

        got = net.trajectory(xs, timesteps=5, encode=False)
        self.assertEqual([[0, 1, 0], [1, 1, 1], [0, 0, 0],
                          [0, 0, 0], [0, 0, 0], [0, 0, 0]], got)