public void SaveSymbTreeTest() { var generator = new FullProgramGenerator <MathProgram, double>(); var tree = new SymbolTree <MathProgram>(); for (var i = 0; i < NUM_PROGS; i++) { var prog = generator.Generate(MathPrimitiveSets.Default, MAX_DEPTH); tree.AddProgram(prog); Console.WriteLine(prog); } var fullPath = Path.GetFullPath("."); var imgPath = Path.Combine(fullPath, $"{SYMB_FILE_NAME}.dot.png"); File.Delete(imgPath); var dotPath = tree.ToGraphvizFile(fullPath, SYMB_FILE_NAME, GraphvizImageType.Png, WAIT_TIMEOUT); Console.WriteLine(imgPath); Assert.IsTrue(File.Exists(dotPath), $"Dot file with information tree should exist in {dotPath}"); Assert.IsTrue(new FileInfo(dotPath).Length > 0, "Dot file size should be > 0 bytes."); Assert.IsTrue(File.Exists(imgPath), $"Image file with information tree should exist in {imgPath}"); Assert.IsTrue(new FileInfo(imgPath).Length > 0, "Image size should be > 0 bytes."); #if !DEBUG File.Delete(dotPath); File.Delete(imgPath); #endif }
/// <inheritdoc /> public double Calculate(ITreeProgram prog1, ITreeProgram prog2) { if (prog1 == null || prog2 == null) { return(0); } if (prog1.Equals(prog2)) { return(1); } var prog1SymbTree = new SymbolTree <ITreeProgram>(); prog1SymbTree.AddProgram(prog1); var prog2SymbTree = new SymbolTree <ITreeProgram>(); prog2SymbTree.AddProgram(prog2); return(prog1SymbTree.GetSimilarity(prog2SymbTree)); }
public void SaveSymbTreeTest() { var prog = new FullProgramGenerator <MathProgram, double>().Generate(MathPrimitiveSets.Default, 4); Console.WriteLine(prog); var tree = new SymbolTree <MathProgram>(); tree.AddProgram(prog); var fullPath = Path.Combine(Path.GetFullPath("."), SYMB_FILE_NAME); File.Delete(fullPath); tree.ToD3JsonFile(fullPath); Console.WriteLine(fullPath); Assert.IsTrue(File.Exists(fullPath), $"Image file with information tree should exist in {fullPath}."); Assert.IsTrue(new FileInfo(fullPath).Length > 0, "Image size should be > 0 bytes."); #if !DEBUG File.Delete(fullPath); #endif }