public void TestParse() { ValidateLogic VL = new ValidateLogic(); UnitSet us = new UnitSet(CharUnits.AtoZ); us.Units.Add(CharUnits.atoz); VL.StartNode = us; us.NextNode = EndNode.Instance; string testString = "DJ"; TinaValidator tv = new TinaValidator(VL); bool result = tv.Validate(testString.ToObjectList()); TestContext.WriteLine(result.ToString()); TestContext.WriteLine(tv.CreateRandomToString()); }
public void FirstTest() { TinaValidator validator = new TinaValidator(FirstTestLogic()); //-------------------------------------------------- //Run Start bool result; string[] files = Directory.GetFiles(NumberFilePath); for (int i = 0; i < files.Length; i++) { using (FileStream fs = new FileStream(files[i], FileMode.Open)) { using StreamReader sr = new StreamReader(fs); string s = sr.ReadToEnd(); List <ObjectConst> thing = s.ToObjectList(); result = validator.Validate(thing); } if (i == 0) { Assert.IsTrue(result); } else { Assert.IsFalse(result); } } for (int i = 0; i < 100; i++) { List <ObjectConst> list = validator.CreateRandom(); TestContext.WriteLine(list.ForEachToString()); result = validator.Validate(list); TestContext.WriteLine(""); Assert.IsTrue(result); } validator.Logic.Save(Path.Combine(SaveLoadPath, "Main1.json")); return; }
public void RerunRecords() { ValidateLogic VL = JsonLogic(); string fullName = "BigJson-0255"; string recordNeedRun = "02-25-00-13-30-0029"; //fullName = $"TestRecord-{DateTime.Now.Year}-{recordNeedRun}"; List <char> ol = null; List <ObjectConst> oll = new List <ObjectConst>(); using (FileStream fs = new FileStream(Path.Combine(RandomJsonPath, $"{fullName}.json"), FileMode.Open)) { StreamReader sr = new StreamReader(fs); JsonSerializerOptions jso = new JsonSerializerOptions { WriteIndented = true, MaxDepth = 128 }; jso.Converters.Add(new Aritiafel.Locations.StorageHouse.DefaultJsonConverterFactory()); //ol = (List<char>)JsonSerializer.Deserialize(sr.ReadToEnd(), typeof(List<char>)); string s = sr.ReadToEnd(); JsonSerializer.Deserialize(s, typeof(object), jso); oll = s.ToObjectList(); sr.Close(); } if (ol != null) { for (int i = 0; i < ol.Count; i++) { oll.Add(new CharConst(ol[i])); } } TinaValidator validator = new TinaValidator(VL); TestContext.WriteLine(validator.Validate(oll).ToString()); }
public void JsonTest() { ValidateLogic VL = JsonLogic(); TinaValidator validator = new TinaValidator(VL); VL.Save(Path.Combine(SaveLoadPath, "JSONTest.json")); string[] files = Directory.GetFiles(RandomJsonPath); foreach (string file in files) { File.Delete(file); } for (int i = 0; i < 1000; i++) { List <ObjectConst> ol; ol = validator.CreateRandom(); string s = ol.ForEachToString(); byte[] buffer = System.Text.Encoding.Convert(System.Text.Encoding.Unicode, System.Text.Encoding.UTF8, System.Text.Encoding.Unicode.GetBytes(s)); s = System.Text.Encoding.UTF8.GetString(buffer); if (ol.Count > 10000) { using (FileStream fs = new FileStream(Path.Combine(RandomJsonPath, $"BigJson-{i.ToString("0000")}.json"), FileMode.Create)) { BinaryWriter bw = new BinaryWriter(fs); bw.Write(buffer); bw.Close(); } TestContext.WriteLine($"{i} ObjectCount: {ol.Count}"); } try { JsonSerializer.Deserialize(s, typeof(object)); } catch (Exception ex) { TestContext.WriteLine("Wrong Happen:" + i); TestContext.WriteLine("Message:" + ex.Message); TestContext.WriteLine(s); using (FileStream fs = new FileStream(Path.Combine(WrongRecordsPath, $"DeserializeRecord-{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")}-{i.ToString("0000")}.json"), FileMode.Create)) { StreamWriter sw = new StreamWriter(fs); sw.WriteLine($"Message: {ex.Message}"); sw.WriteLine("Content:"); sw.Write(s); sw.Close(); } } if (!validator.Validate(ol)) { TestContext.WriteLine("-----------------------------"); TestContext.WriteLine("Wrong happen: " + i); TestContext.WriteLine(ol.ForEachToString()); TestContext.WriteLine("TotalObjectCount:" + ol.Count); //TestContext.WriteLine("Error Node:" + validator.ErrorNode.ID); //TestContext.WriteLine("Node Type:" + validator.ErrorNode.GetType().Name); string ss = ""; for (int j = (int)validator.LongerErrorLocation - 5; j < validator.LongerErrorLocation + 5; j++) { if (j >= 0 && j < ol.Count) { ss += ol[j].ToString(); } if (j == validator.LongerErrorLocation) { ss += "!"; } } TestContext.WriteLine("NearbyString:" + ss); TestContext.WriteLine("Error Location:" + validator.LongerErrorLocation); JsonSerializerOptions jso = new JsonSerializerOptions { WriteIndented = true, MaxDepth = 128 }; jso.Converters.Add(new Aritiafel.Locations.StorageHouse.DefaultJsonConverterFactory()); using (FileStream fs = new FileStream(Path.Combine(WrongRecordsPath, $"TestRecord-{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")}-{i.ToString("0000")}.json"), FileMode.Create)) { StreamWriter sw = new StreamWriter(fs); sw.Write(JsonSerializer.Serialize(ol, jso)); sw.Close(); } } } TestContext.WriteLine("Test End"); }