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"); }
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"); } }
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"); }