public void Can_Apply_In_SubFormulas()
        {
            var Original = ExcelFormulaParser.Parse("SUM(A1+A2)");

            FSharpTransformationRule T = new FSharpTransformationRule();

            T.from = (ExcelFormulaParser.Parse("SUM(A1+A2)"));
            T.to   = (ExcelFormulaParser.Parse("A1+A2"));

            Assert.IsTrue(T.CanBeAppliedonBool(Original));

            var map = (T.CanBeAppliedonMap(Original));
        }
        public void Can_Apply_Dynamic_Cell_Reference()
        {
            var Original = ExcelFormulaParser.Parse("A1");

            FSharpTransformationRule T = new FSharpTransformationRule();

            T.from = T.ParseToTree("{i,j}");

            var Result = T.CanBeAppliedonBool(Original);

            Assert.IsTrue(Result);

            var Map = T.CanBeAppliedonMap(Original);

            Assert.IsTrue(Map.ContainsKey('i'));
            Assert.IsTrue(Map.ContainsKey('j'));

            Assert.AreEqual(2, Map.Count);
        }
        public void Can_Apply_Dynamic_Range_On_Cell_Reference()
        {
            var Original = ExcelFormulaParser.Parse("SUM(A1)");

            FSharpTransformationRule T = new FSharpTransformationRule();

            T.from = T.ParseToTree("SUM({r})");
            T.to   = null;

            Assert.IsTrue(T.CanBeAppliedonBool(Original));
            var Map = T.CanBeAppliedonMap(Original);

            Assert.IsTrue(Map.ContainsKey('r'));

            var ValueList = Map.TryFind('r').Value;
            var IntList   = (FSharpTransform.mapElement.Ints)ValueList;

            Assert.IsTrue(IntList.Item.Contains(0));
            Assert.AreEqual(2, IntList.Item.Count());
        }
        public void Can_Apply_Double_Dynamic_Reference()
        {
            var Original = ExcelFormulaParser.Parse("SUM(A2:B5)+C5");

            FSharpTransformationRule T = new FSharpTransformationRule();

            T.from = T.ParseToTree("SUM({r})+{i,j}");
            T.to   = null;

            Assert.IsTrue(T.CanBeAppliedonBool(Original));

            var Map = T.CanBeAppliedonMap(Original);

            Assert.IsTrue(Map.ContainsKey('r'));

            var ValueList = Map.TryFind('r').Value;
            var IntList   = (FSharpTransform.mapElement.Ints)ValueList;


            Assert.IsTrue(IntList.Item.Contains(0));
            Assert.IsTrue(IntList.Item.Contains(1));
            Assert.IsTrue(IntList.Item.Contains(4));

            Assert.IsTrue(Map.ContainsKey('i'));

            var ValueListi = Map.TryFind('i').Value;
            var IntListi   = (FSharpTransform.mapElement.Ints)ValueListi;

            Assert.IsTrue(IntListi.Item.Contains(2));

            Assert.IsTrue(Map.ContainsKey('j'));
            var ValueListj = Map.TryFind('j').Value;
            var IntListj   = (FSharpTransform.mapElement.Ints)ValueListj;

            Assert.IsTrue(IntListj.Item.Contains(4));
        }