Exemple #1
0
        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));
        }
Exemple #3
0
        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
        }