示例#1
0
        public void ijkToIj_zero()
        {
            CoordIJK ijk = new CoordIJK();

            LocalIJ.CoordIJ ij = new LocalIJ.CoordIJ();

            CoordIJK.ijkToIj(ijk, ref ij);
            Assert.True(ij.i == 0, "ij.i zero");
            Assert.True(ij.j == 0, "ij.j zero");

            CoordIJK.ijToIjk(ij, ref ijk);
            Assert.True(ijk.i == 0, "ijk.i zero");
            Assert.True(ijk.j == 0, "ijk.j zero");
            Assert.True(ijk.k == 0, "ijk.k zero");
        }
示例#2
0
        public void ijkToIj_roundtrip()
        {
            for (Direction dir = Direction.CENTER_DIGIT; dir < Direction.NUM_DIGITS; dir++)
            {
                CoordIJK ijk = new CoordIJK();
                CoordIJK._neighbor(ref ijk, dir);

                LocalIJ.CoordIJ ij = new LocalIJ.CoordIJ();
                CoordIJK.ijkToIj(ijk, ref ij);

                CoordIJK recovered = new CoordIJK();
                CoordIJK.ijToIjk(ij, ref recovered);

                Assert.True(CoordIJK._ijkMatches(ijk, recovered) != 0,
                            "got same ijk coordinates back");
            }
        }
示例#3
0
        public void ijkDistance()
        {
            CoordIJK z  = new CoordIJK(0, 0, 0);
            CoordIJK i  = new CoordIJK(1, 0, 0);
            CoordIJK ik = new CoordIJK(1, 0, 1);
            CoordIJK ij = new CoordIJK(1, 1, 0);
            CoordIJK j2 = new CoordIJK(0, 2, 0);

            Assert.True(CoordIJK.ijkDistance(z, z) == 0, "identity distance 0,0,0");
            Assert.True(CoordIJK.ijkDistance(i, i) == 0, "identity distance 1,0,0");
            Assert.True(CoordIJK.ijkDistance(ik, ik) == 0, "identity distance 1,0,1");
            Assert.True(CoordIJK.ijkDistance(ij, ij) == 0, "identity distance 1,1,0");
            Assert.True(CoordIJK.ijkDistance(j2, j2) == 0, "identity distance 0,2,0");

            Assert.True(CoordIJK.ijkDistance(z, i) == 1, "0,0,0 to 1,0,0");
            Assert.True(CoordIJK.ijkDistance(z, j2) == 2, "0,0,0 to 0,2,0");
            Assert.True(CoordIJK.ijkDistance(z, ik) == 1, "0,0,0 to 1,0,1");
            Assert.True(CoordIJK.ijkDistance(i, ik) == 1, "1,0,0 to 1,0,1");
            Assert.True(CoordIJK.ijkDistance(ik, j2) == 3, "1,0,1 to 0,2,0");
            Assert.True(CoordIJK.ijkDistance(ij, ik) == 2, "1,0,1 to 1,1,0");
        }