Example #1
0
        public void MultipleFormulaCommandsEvaluatesOnPreviousResult()
        {
            FormulaCommand cmd = new FormulaCommand()
            {
                Formula = @"[column 4] - [column 1]"
            };
            DataElement data = Helpers.CreateTestDataElementWithTwoNumericColumns();

            cmd.UsedIndexes.Add(new Index("column 4"));
            cmd.UsedIndexes.Add(new Index("column 1"));
            cmd.ApplyToData(data);
            FormulaCommand cmd1 = new FormulaCommand()
            {
                Formula = @"[calc1] * -2"
            };

            cmd1.UsedIndexes.Add(new Index("calc1"));
            cmd1.ApplyToData(data);
            Assert.AreEqual("Calc1", data.Columns[4].Header);
            Assert.AreEqual(1.5, data.Columns[4].Data[0]);
            Assert.AreEqual(-1.0, data.Columns[4].Data[1]);
            Assert.AreEqual("Calc2", data.Columns[5].Header);
            Assert.AreEqual(-3.0, data.Columns[5].Data[0]);
            Assert.AreEqual(2.0, data.Columns[5].Data[1]);
        }
Example #2
0
        public void CheckCommandsForIndexesAddsIndexesToTheListButUsesRowsIfTransposed()
        {
            var sc = new FormulaCommand();

            sc.UsedIndexes.Add(new Index("Totals"));
            var tc = new TransposeCommand();
            ShapeElementBase element = (ShapeElementBase)(ShapeElementBaseTest.Create("TEST"));

            element.ColumnIndexes.Add(new Index("#Cl1N#"));
            element.ColumnIndexes.Add(new Index("#Cl2N#"));
            element.RowIndexes.Add(new Index("AD"));
            element.RowIndexes.Add(new Index("AM"));
            element.Commands.Add(tc);
            element.Commands.Add(sc);
            element.CheckCommandsForIndexes();
            Assert.AreEqual(2, element.ColumnIndexes.Count);
            Assert.AreEqual(3, element.RowIndexes.Count);
            Assert.AreEqual("#Cl1N#", element.ColumnIndexes[0].Name);
            Assert.AreEqual("#Cl2N#", element.ColumnIndexes[1].Name);
            Assert.AreEqual("AD", element.RowIndexes[0].Name);
            Assert.AreEqual("AM", element.RowIndexes[1].Name);
            Assert.AreEqual("Totals", element.RowIndexes[2].Name);
            Assert.IsFalse(element.ColumnIndexes[0].IsHidden);
            Assert.IsFalse(element.ColumnIndexes[1].IsHidden);
            Assert.IsFalse(element.RowIndexes[0].IsHidden);
            Assert.IsFalse(element.RowIndexes[1].IsHidden);
            Assert.IsTrue(element.RowIndexes[2].IsHidden);
        }
Example #3
0
        public void FormulaCommandEvaluatesTheExpressionWithValue()
        {
            FormulaCommand cmd = new FormulaCommand()
            {
                Formula = @"[value] * 1000"
            };
            DataElement data = Helpers.CreateSingleValueElement("test", 5);

            cmd.IsInPlaceFormula = true;
            cmd.ApplyToData(data);
            Assert.AreEqual(5000, data.Columns[0].Data[0]);
        }
Example #4
0
        public void FormulaCommandEvaluatesTheExpressionWithString()
        {
            FormulaCommand cmd = new FormulaCommand()
            {
                Formula = @"[Column 2] == 'client 1'"
            };
            DataElement data = Helpers.CreateTestDataElementWithTwoNumericColumns();

            cmd.UsedIndexes.Add(new Index("column 2"));
            cmd.ApplyToData(data);
            Assert.AreEqual("Calc1", data.Columns[4].Header);
            Assert.AreEqual(true, data.Columns[4].Data[0]);
            Assert.AreEqual(false, data.Columns[4].Data[1]);
        }
Example #5
0
        public void FormulaCommandEvaluatesTheExpression()
        {
            FormulaCommand cmd = new FormulaCommand()
            {
                Formula = @"[column 4] - [column 1]"
            };
            DataElement data = Helpers.CreateTestDataElementWithTwoNumericColumns();

            cmd.UsedIndexes.Add(new Index("column 4"));
            cmd.UsedIndexes.Add(new Index("column 1"));
            cmd.ApplyToData(data);
            Assert.AreEqual("Calc1", data.Columns[4].Header);
            Assert.AreEqual(1.5, data.Columns[4].Data[0]);
            Assert.AreEqual(-1.0, data.Columns[4].Data[1]);
        }
Example #6
0
        public void ParseArgumentsSetsFormulaWithStringValues()
        {
            FormulaCommand cmd = new FormulaCommand();

            cmd.ArgumentsString = @"""[column 2] = 'test'""";
            Document         doc     = new Document();
            var              slide   = new SlideElement(doc);
            ShapeElementBase element = (ShapeElementBase)(ShapeElementBaseTest.Create());

            cmd.TargetElement = element;
            cmd.ParseArguments();
            Assert.AreEqual("[column 2] = 'test'", cmd.Formula);
            Assert.AreEqual("column 2", cmd.UsedIndexes[0].Name);
            Assert.AreEqual(1, cmd.UsedIndexes.Count);
            Assert.IsFalse(cmd.IsInPlaceFormula);
        }
Example #7
0
        public void CheckCommandsForIndexesAddsIndexesToTheList()
        {
            var cmd1 = new FormulaCommand();

            cmd1.UsedIndexes.Add(new Index("#Cl1N#"));
            cmd1.UsedIndexes.Add(new Index("#Cl2N#"));
            var cmd2 = new FormulaCommand();

            cmd2.UsedIndexes.Add(new Index("#P1N#"));
            ShapeElementBase element = (ShapeElementBase)(ShapeElementBaseTest.Create("TEST"));

            element.Commands.Add(cmd1);
            element.Commands.Add(cmd2);
            element.CheckCommandsForIndexes();
            Assert.AreEqual("#Cl1N#", element.ColumnIndexes[0].Name);
            Assert.AreEqual("#Cl2N#", element.ColumnIndexes[1].Name);
            Assert.AreEqual("#P1N#", element.ColumnIndexes[2].Name);
            Assert.IsTrue(element.ColumnIndexes[0].IsHidden);
            Assert.IsTrue(element.ColumnIndexes[1].IsHidden);
            Assert.IsTrue(element.ColumnIndexes[2].IsHidden);
        }