public void testTokens()
        {
            Trace.WriteLine("TestTokens");

            // Test random cell ids at all levels.
            for (var i = 0; i < 10000; ++i)
            {
                var id = getRandomCellId();
                if (!id.IsValid)
                {
                    continue;
                }
                var token = id.ToToken();
                Assert.True(token.Length <= 16);
                JavaAssert.Equal(S2CellId.FromToken(token), id);
            }
            // Check that invalid cell ids can be encoded.
            var token1 = S2CellId.None.ToToken();

            JavaAssert.Equal(S2CellId.FromToken(token1), S2CellId.None);
        }
Exemplo n.º 2
0
        public void Test_S2CellId_Tokens()
        {
            // Test random cell ids at all levels.
            for (int i = 0; i < 10000; ++i)
            {
                var id    = S2Testing.GetRandomCellId();
                var token = id.ToToken();
                Assert.True(token.Length <= 16);
                Assert.Equal(id, S2CellId.FromToken(token));
                Assert.Equal(id, S2CellId.FromToken(token));
            }
            // Check that invalid cell ids can be encoded, and round-trip is
            // the identity operation.
            string token2 = S2CellId.None.ToToken();

            Assert.Equal(S2CellId.None, S2CellId.FromToken(token2));
            Assert.Equal(S2CellId.None, S2CellId.FromToken(token2));

            // Sentinel is invalid.
            token2 = S2CellId.Sentinel.ToToken();
            Assert.Equal(S2CellId.FromToken(token2), S2CellId.Sentinel);
            Assert.Equal(S2CellId.FromToken(token2),
                         S2CellId.Sentinel);

            // Check an invalid face.
            token2 = S2CellId.FromFace(7).ToToken();
            Assert.Equal(S2CellId.FromToken(token2), S2CellId.FromFace(7));
            Assert.Equal(S2CellId.FromToken(token2),
                         S2CellId.FromFace(7));

            // Check that supplying tokens with non-alphanumeric characters
            // returns S2CellId.None.
            Assert.Equal(S2CellId.None, S2CellId.FromToken("876b e99"));
            Assert.Equal(S2CellId.None, S2CellId.FromToken("876bee99\n"));
            Assert.Equal(S2CellId.None, S2CellId.FromToken("876[ee99"));
            Assert.Equal(S2CellId.None, S2CellId.FromToken(" 876bee99"));
        }