Пример #1
0
    def test_transform(self):
        for width in range(2, 5):
            g = [utils.graycode(i) for i in range(2**width)]
            # Sanity: the gray sequence should be a Hilbert cube too
            self.is_hilbertcube(g)

            for e in range(2**width):
                for d in range(width):
                    x = [hilbert.transform(e, d, width, i) for i in g]

                    # From Lemma 2.11 of Hamilton
                    assert hilbert.transform(e, d, width, e) == 0
                    assert hilbert.itransform(e, d, width, 0) == e

                    # The base gray code starts at 0, and has a direction of width-1:
                    if e == 0 and d == width-1:
                        assert x == g
                    self.is_hilbertcube(x)
                    assert [hilbert.itransform(e, d, width, i) for i in x] == g

        # These values are from the example on p 18 of Hamilton
        assert hilbert.transform(0, 1, 2, 3) == 3
        assert hilbert.transform(3, 0, 2, 2) == 2
        assert hilbert.transform(3, 0, 2, 1) == 1
Пример #2
0
    def test_transform(self):
        for width in range(2, 5):
            g = [utils.graycode(i) for i in range(2**width)]
            # Sanity: the gray sequence should be a Hilbert cube too
            self.is_hilbertcube(g)

            for e in range(2**width):
                for d in range(width):
                    x = [hilbert.transform(e, d, width, i) for i in g]

                    # From Lemma 2.11 of Hamilton
                    assert hilbert.transform(e, d, width, e) == 0
                    assert hilbert.itransform(e, d, width, 0) == e

                    # The base gray code starts at 0, and has a direction of width-1:
                    if e == 0 and d == width - 1:
                        assert x == g
                    self.is_hilbertcube(x)
                    assert [hilbert.itransform(e, d, width, i) for i in x] == g

        # These values are from the example on p 18 of Hamilton
        assert hilbert.transform(0, 1, 2, 3) == 3
        assert hilbert.transform(3, 0, 2, 2) == 2
        assert hilbert.transform(3, 0, 2, 1) == 1
Пример #3
0
 def test_igraycode(self):
     for i in range(10):
         assert utils.igraycode(utils.graycode(i)) == i
         assert utils.graycode(utils.igraycode(i)) == i
Пример #4
0
 def test_graycode(self):
     assert utils.graycode(3) == 2
     assert utils.graycode(4) == 6