コード例 #1
0
        private void ShowTextFileResultButton_OnClick(object sender, RoutedEventArgs e)
        {
            var lines   = SymbolFileParser.ParseFile(TxtPath);
            var formula = LinesToWpfMathConverter.Convert(lines);

            FormulaTextBox.Text = formula;
        }
コード例 #2
0
        public void ParseFileTest3()
        {
            var path = TestUtilities.GetTestDataPath("3.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(15, lines.Count);

            BaseLineTest(@"n", 200, 140, 112, 122, lines[0]);
            BaseLineTest(@"\sum", 60, 290, 400, 510, lines[1]);
            BaseLineTest(@"i", 120, 861, 61, 150, lines[2]);
            BaseLineTest(@"=", 191, 920, 131, 61, lines[3]);
            BaseLineTest(@"1", 330, 850, 67, 161, lines[4]);
            BaseLineTest(@"a", 520, 470, 191, 181, lines[5]);
            BaseLineTest(@"1", 720, 580, 71, 161, lines[6]);
            BaseLineTest(@"x", 830, 460, 191, 191, lines[7]);
            BaseLineTest(@"\delta", 1050, 300, 132, 171, lines[8]);
            BaseLineTest(@"1", 1170, 410, 48, 116, lines[9]);
            BaseLineTest(@"i", 1030, 590, 62, 153, lines[10]);
            BaseLineTest(@"x", 1280, 460, 192, 188, lines[11]);
            BaseLineTest(@"\delta", 1500, 269, 140, 170, lines[12]);
            BaseLineTest(@"j", 1620, 380, 81, 142, lines[13]);
            BaseLineTest(@"j", 1480, 590, 111, 201, lines[14]);
        }
コード例 #3
0
        public void ParseFileTest8()
        {
            var path = TestUtilities.GetTestDataPath("8.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(21, lines.Count);

            BaseLineTest(@"(", 25, 50, 12, 35, lines[0]);
            BaseLineTest(@"x", 37, 60, 20, 20, lines[1]);
            BaseLineTest(@"-", 65, 65, 27, 5, lines[2]);
            BaseLineTest(@"c", 102, 60, 15, 19, lines[3]);
            BaseLineTest(@")", 117, 52, 13, 33, lines[4]);
            BaseLineTest(@"(", 137, 52, 13, 34, lines[5]);
            BaseLineTest(@"x", 150, 60, 20, 20, lines[6]);
            BaseLineTest(@"2", 167, 42, 13, 21, lines[7]);
            BaseLineTest(@"+", 190, 55, 25, 25, lines[8]);
            BaseLineTest(@"x", 225, 60, 19, 20, lines[9]);
            BaseLineTest(@"c", 245, 60, 14, 20, lines[10]);
            BaseLineTest(@"+", 270, 55, 23, 23, lines[11]);
            BaseLineTest(@"c", 303, 60, 16, 20, lines[12]);
            BaseLineTest(@"2", 317, 42, 14, 21, lines[13]);
            BaseLineTest(@")", 332, 52, 11, 33, lines[14]);
            BaseLineTest(@"=", 352, 61, 23, 11, lines[15]);
            BaseLineTest(@"x", 387, 60, 18, 20, lines[16]);
            BaseLineTest(@"3", 405, 42, 13, 21, lines[17]);
            BaseLineTest(@"-", 427, 65, 26, 5, lines[18]);
            BaseLineTest(@"c", 463, 60, 16, 21, lines[19]);
            BaseLineTest(@"3", 477, 42, 14, 20, lines[20]);
        }
コード例 #4
0
        private static void BaseConvertTest(string expected, string name)
        {
            var path   = TestUtilities.GetTestDataPath(name);
            var lines  = SymbolFileParser.ParseFile(path);
            var actual = LinesToWpfMathConverter.Convert(lines);

            Assert.AreEqual(expected, actual);
        }
コード例 #5
0
 public void LoadFromFile(string aSymbolFileName, TSynchronicity aSynchronicity)
 {
     iSymbolFileName = aSymbolFileName;
     //
     iParser                      = new SymbolFileParser(this, this, aSymbolFileName, this);
     iParser.Tag                  = this;
     iParser.iObserver           += new SymbianUtils.AsyncReaderBase.Observer(ParserEventHandler);
     iParser.CollectionCompleted += new SymbolLib.Sources.Symbol.Parser.SymbolFileParser.CollectionCompletedHandler(Parser_CollectionCompleted);
     iParser.SymbolCreated       += new SymbolLib.Sources.Symbol.Parser.SymbolFileParser.SymbolCreatedHandler(Parser_SymbolCreated);
     iParser.Read(aSynchronicity);
 }
コード例 #6
0
        public void ParseFileTest10()
        {
            var path = TestUtilities.GetTestDataPath("10.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(3, lines.Count);

            BaseLineTest(@"x", 40, 50, 83, 81, lines[0]);
            BaseLineTest(@"y", 120, 110, 75, 85, lines[1]);
            BaseLineTest(@"2", 205, 67, 50, 64, lines[2]);
        }
コード例 #7
0
        public void ParseFileTest9()
        {
            var path = TestUtilities.GetTestDataPath("9.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(3, lines.Count);

            BaseLineTest(@"u", 20, 85, 90, 85, lines[0]);
            BaseLineTest(@"2", 120, 30, 55, 80, lines[1]);
            BaseLineTest(@"x", 185, 10, 60, 55, lines[2]);
        }
コード例 #8
0
        public void ParseFileTest5()
        {
            var path = TestUtilities.GetTestDataPath("5.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(6, lines.Count);

            BaseLineTest(@"e", 35, 60, 45, 55, lines[0]);
            BaseLineTest(@"-", 85, 50, 43, 10, lines[1]);
            BaseLineTest(@"\int", 145, 15, 35, 80, lines[2]);
            BaseLineTest(@"x", 195, 35, 43, 44, lines[3]);
            BaseLineTest(@"d", 239, 25, 42, 54, lines[4]);
            BaseLineTest(@"x", 280, 38, 43, 40, lines[5]);
        }
コード例 #9
0
        public void ParseFileTest()
        {
            var path = TestUtilities.GetTestDataPath("1.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(6, lines.Count);

            BaseLineTest(@"\sqrt", 10, 340, 401, 291, lines[0]);
            BaseLineTest(@"t", 200, 379, 130, 242, lines[1]);
            BaseLineTest(@"=", 410, 450, 221, 111, lines[2]);
            BaseLineTest(@"S", 739, 99, 213, 283, lines[3]);
            BaseLineTest(@"-", 709, 490, 292, 42, lines[4]);
            BaseLineTest(@"u", 750, 640, 211, 222, lines[5]);
        }
コード例 #10
0
        public void ParseFileTest6()
        {
            var path = TestUtilities.GetTestDataPath("6.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(7, lines.Count);

            BaseLineTest(@"a", 70, 150, 60, 60, lines[0]);
            BaseLineTest(@"+", 160, 140, 70, 70, lines[1]);
            BaseLineTest(@"b", 265, 35, 56, 80, lines[2]);
            BaseLineTest(@"-", 255, 125, 70, 10, lines[3]);
            BaseLineTest(@"c", 260, 150, 47, 60, lines[4]);
            BaseLineTest(@"-", 255, 225, 70, 8, lines[5]);
            BaseLineTest(@"d", 260, 245, 60, 79, lines[6]);
        }
コード例 #11
0
        public void ParseFileTest7()
        {
            var path = TestUtilities.GetTestDataPath("7.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(8, lines.Count);

            BaseLineTest(@"a", 30, 240, 90, 100, lines[0]);
            BaseLineTest(@"p", 135, 325, 63, 83, lines[1]);
            BaseLineTest(@"=", 285, 245, 115, 65, lines[2]);
            BaseLineTest(@"u", 430, 125, 105, 93, lines[3]);
            BaseLineTest(@"2", 545, 55, 52, 78, lines[4]);
            BaseLineTest(@"x", 600, 20, 61, 55, lines[5]);
            BaseLineTest(@"-", 410, 275, 230, 20, lines[6]);
            BaseLineTest(@"r", 490, 390, 71, 93, lines[7]);
        }
コード例 #12
0
        private void UpdateRectangles()
        {
            Canvas.Children.Clear();
            if (!File.Exists(ImagePath) || !File.Exists(TxtPath))
            {
                return;
            }

            var lines = SymbolFileParser.ParseFile(TxtPath);
            var size  = GetImageSize(ImagePath);
            var k     = 1.0 * ImageGrid.ActualWidth / size.Width;

            foreach (var line in lines)
            {
                AddSelectionRectangle(
                    new Point(k * line.X, k * line.Y),
                    new Point(k * line.X2, k * line.Y2));
            }
        }
コード例 #13
0
        public void ParseFileTest4()
        {
            var path = TestUtilities.GetTestDataPath("4.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(10, lines.Count);

            BaseLineTest(@"x", 25, 210, 75, 75, lines[0]);
            BaseLineTest(@"2", 100, 260, 40, 65, lines[1]);
            BaseLineTest(@"=", 205, 210, 102, 49, lines[2]);
            BaseLineTest(@"b", 320, 75, 75, 115, lines[3]);
            BaseLineTest(@"-", 425, 135, 47, 16, lines[4]);
            BaseLineTest(@"\sqrt", 530, 30, 235, 170, lines[5]);
            BaseLineTest(@"D", 635, 80, 116, 110, lines[6]);
            BaseLineTest(@"-", 308, 235, 472, 16, lines[7]);
            BaseLineTest(@"2", 470, 295, 68, 109, lines[8]);
            BaseLineTest(@"a", 545, 325, 75, 80, lines[9]);
        }
コード例 #14
0
        public static void Show(string path)
        {
            var lines = SymbolFileParser.ParseFile(path);

            var text = string.Empty;

            foreach (var line in lines)
            {
                text += $"Symbol: {line.Symbol}, X: {line.X}, Y: {line.Y}, Width: {line.Width}, Height: {line.Height}{Environment.NewLine}";
            }

            var window = new TextWindow
            {
                TextBox =
                {
                    Text = text
                }
            };

            window.Show();
        }
コード例 #15
0
        public void ParseFileTest2()
        {
            var path = TestUtilities.GetTestDataPath("2.txt");

            var lines = SymbolFileParser.ParseFile(path);

            Assert.IsNotNull(lines);
            Assert.AreEqual(12, lines.Count);

            BaseLineTest(@"p", 25, 150, 86, 106, lines[0]);
            BaseLineTest(@"=", 160, 155, 91, 52, lines[1]);
            BaseLineTest(@"1", 285, 36, 61, 100, lines[2]);
            BaseLineTest(@"-", 265, 175, 95, 20, lines[3]);
            BaseLineTest(@"2", 280, 235, 66, 100, lines[4]);
            BaseLineTest(@"(", 375, 120, 45, 136, lines[5]);
            BaseLineTest(@"a", 425, 150, 66, 76, lines[6]);
            BaseLineTest(@"+", 530, 145, 71, 71, lines[7]);
            BaseLineTest(@"b", 625, 120, 71, 106, lines[8]);
            BaseLineTest(@"+", 730, 145, 71, 71, lines[9]);
            BaseLineTest(@"c", 830, 150, 63, 76, lines[10]);
            BaseLineTest(@")", 895, 120, 42, 136, lines[11]);
        }
コード例 #16
0
        public SymbolsForBinary ReadFirstCollection(string aFileName, out bool aIsSymbolFile)
        {
            iCurrentBinary  = null;
            iSymbolFileName = aFileName;
            //
            iParser = new SymbolFileParser(this, this, aFileName, this);
            iParser.CollectionCompleted += new SymbolLib.Sources.Symbol.Parser.SymbolFileParser.CollectionCompletedHandler(Parser_CollectionCompletedSingleOnly);
            iParser.SymbolCreated       += new SymbolLib.Sources.Symbol.Parser.SymbolFileParser.SymbolCreatedHandler(Parser_SymbolCreated);
            iParser.Read(TSynchronicity.ESynchronous);
            //
            SymbolsForBinary ret = null;

            if (iAllSymbols.Count > 0)
            {
                ret           = iAllSymbols[0];
                aIsSymbolFile = true;
            }

            // Did we see any collections whatsoever (all be they data or code?)
            aIsSymbolFile = iParser.ContainedAtLeastOneCollectionFileName;

            return(ret);
        }