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]); }
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); }
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]); }
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]); }
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]); }
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); }
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); }