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