void TestObject2() { Assert.Equal(LeptParseResult.OK, parser.Parse( " { " + "\"n\" : null , " + "\"f\" : false , " + "\"t\" : true , " + "\"i\" : 123 , " + "\"s\" : \"abc\", " + "\"a\" : [ 1, 2, 3 ]," + "\"o\" : { \"1\" : 1, \"2\" : 2, \"3\" : 3 }" + " } " )); Assert.Equal(LeptType.Object, parser.Type); Assert.Equal(7, parser.Object.Length); Assert.Equal("n", parser.Object[0].Key); Assert.Equal(LeptType.Null, parser.Object[0].Value.Type); Assert.Equal("f", parser.Object[1].Key); Assert.Equal(LeptType.False, parser.Object[1].Value.Type); Assert.Equal("t", parser.Object[2].Key); Assert.Equal(LeptType.True, parser.Object[2].Value.Type); Assert.Equal("i", parser.Object[3].Key); Assert.Equal(LeptType.Number, parser.Object[3].Value.Type); Assert.Equal(123.0, parser.Object[3].Value.Number); Assert.Equal("s", parser.Object[4].Key); Assert.Equal(LeptType.String, parser.Object[4].Value.Type); Assert.Equal("abc", parser.Object[4].Value.String); Assert.Equal("a", parser.Object[5].Key); Assert.Equal(LeptType.Array, parser.Object[5].Value.Type); Assert.Equal(3, parser.Object[5].Value.Array.Length); for (int i = 0; i < 3; i++) { Lept element = parser.Object[5].Value.Array[i]; Assert.Equal(LeptType.Number, element.Type); Assert.Equal(i + 1.0, element.Number); } Assert.Equal("o", parser.Object[6].Key); { Lept element1 = parser.Object[6].Value; Assert.Equal(LeptType.Object, element1.Type); for (int i = 0; i < 3; i++) { Lept element2 = element1.Object[i].Value; Assert.Equal('1' + i, element1.Object[i].Key[0]); Assert.Equal(1, element1.Object[i].Key.Length); Assert.Equal(LeptType.Number, element2.Type); Assert.Equal(i + 1.0, element2.Number); } } }
void TestArray2() { Assert.Equal(LeptParseResult.OK, parser.Parse("[ [ ] , [ 0 ] , [ 0 , 1 ] , [ 0 , 1 , 2 ] ]")); Assert.Equal(LeptType.Array, parser.Type); Assert.Equal(4, parser.Array.Length); for (int i = 0; i < 4; i++) { Lept element1 = parser.Array[i]; Assert.Equal(LeptType.Array, element1.Type); Assert.Equal(i, element1.Array.Length); for (int j = 0; j < i; j++) { Lept element2 = element1.Array[j]; Assert.Equal(LeptType.Number, element2.Type); Assert.Equal((double)j, element2.Number); } } }