Mercurial > pub > ImplabNet
diff Implab.Test/Implab.Format.Test/JsonTests.cs @ 182:76e8f2ba12b8 ref20160224
pretty print DFA, the minimization is still buggy
author | cin |
---|---|
date | Thu, 24 Mar 2016 18:52:10 +0300 |
parents | 130781364799 |
children | 4f82e0f161c3 |
line wrap: on
line diff
--- a/Implab.Test/Implab.Format.Test/JsonTests.cs Thu Mar 24 03:54:46 2016 +0300 +++ b/Implab.Test/Implab.Format.Test/JsonTests.cs Thu Mar 24 18:52:10 2016 +0300 @@ -1,11 +1,49 @@ using NUnit.Framework; using System; +using Implab.Formats.JSON; namespace Implab.Format.Test { - [TestFixture()] + [TestFixture] public class JsonTests { - [Test()] - public void TestCase() { + [Test] + public void TestScannerValidTokens() { + var scanner = new JSONScanner(@"9123, -123, 0, 0.1, -0.2, -0.1e3, 1.3E-3, ""some \t\n\u0020 text"", literal []{}:"); + + Tuple<JsonTokenType,object>[] expexted = new [] { + new Tuple<JsonTokenType,object>(JsonTokenType.Number, 9123d), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Number, -123d ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Number, 0d ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Number, 0.1d ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Number, -0.2d ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Number, -0.1e3d ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Number, 1.3E-3d ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.String, "some \t\n text" ), + new Tuple<JsonTokenType,object>(JsonTokenType.ValueSeparator, ", " ), + new Tuple<JsonTokenType,object>(JsonTokenType.Literal, "literal" ), + new Tuple<JsonTokenType,object>(JsonTokenType.BeginArray, " [" ), + new Tuple<JsonTokenType,object>(JsonTokenType.EndArray, "]" ), + new Tuple<JsonTokenType,object>(JsonTokenType.BeginObject, "{" ), + new Tuple<JsonTokenType,object>(JsonTokenType.EndObject, "}" ), + new Tuple<JsonTokenType,object>(JsonTokenType.NameSeparator, ":" ) + }; + + object value; + JsonTokenType tokenType; + for (var i = 0; i < expexted.Length; i++) { + + Assert.IsTrue(scanner.ReadToken(out value, out tokenType)); + Assert.AreEqual(expexted[i].Item1, tokenType); + Assert.AreEqual(expexted[i].Item2, value); + } + + Assert.IsFalse(scanner.ReadToken(out value, out tokenType)); } } }