protected string stSolution(string data)
        {
            Log.Trace("stSolution: started with '{0}'", data);
            IPM pm = new PM(data);

            if(!pm.Is(0, LevelType.Property, "solution")) {
                throw new SyntaxIncorrectException("Failed stSolution - '{0}'", data);
            }

            // solution.current.
            if(pm.Is(1, LevelType.Property, "current"))
            {
                if(!env.IsOpenedSolution) {
                    throw new NotSupportedOperationException("Property 'current' is not available. Open the Solution or use 'path()' method instead.");
                }
                return stSlnPMap(env.SolutionFile, pm.pinTo(2));
            }

            // solution.path("file").
            if(pm.Is(1, LevelType.Method, "path"))
            {
                Argument[] args = pm.Levels[1].Args;
                if(args.Length != 1 || args[0].type != ArgumentType.StringDouble) {
                    throw new InvalidArgumentException("stSolution: incorrect arguments to `solution.path(string sln)`");
                }
                return stSlnPMap((string)args[0].data, pm.pinTo(2));
            }

            throw new OperationNotFoundException("stSolution: not found - '{0}' /'{1}'", pm.Levels[1].Data, pm.Levels[1].Type);
        }
Beispiel #2
0
        public void pinToTest2()
        {
            try {
                IPM pm = new PM("left.solution.right");
                pm.pinTo(100);
                Assert.Fail("1");
            }
            catch(Exception ex) { Assert.IsTrue(ex.GetType() == typeof(InvalidArgumentException), ex.GetType().ToString()); }

            try {
                IPM pm = new PM("left.solution.right");
                pm.pinTo(-1);
                Assert.Fail("2");
            }
            catch(Exception ex) { Assert.IsTrue(ex.GetType() == typeof(InvalidArgumentException), ex.GetType().ToString()); }

            try {
                IPM pm = new PM("left.solution.right"); //4
                pm.pinTo(4);
                Assert.Fail("4");
            }
            catch(Exception ex) { Assert.IsTrue(ex.GetType() == typeof(InvalidArgumentException), ex.GetType().ToString()); }

            try {
                IPM pm = new PM("left.solution.right"); //4
                pm.pinTo(1);
                pm.pinTo(2);
                pm.pinTo(1);
                Assert.Fail("5");
            }
            catch(Exception ex) { Assert.IsTrue(ex.GetType() == typeof(InvalidArgumentException), ex.GetType().ToString()); }
        }
Beispiel #3
0
        public void pinToTest1()
        {
            IPM pm = new PM("left.solution.right");

            Assert.AreEqual(4, pm.Levels.Count);

            pm.pinTo(1);
            Assert.AreEqual(3, pm.Levels.Count);

            Assert.AreEqual(pm.Is(0, LevelType.Property, "solution"), true);
            Assert.AreEqual(pm.Is(1, LevelType.Property, "right"), true);
            Assert.AreEqual(pm.Is(2, LevelType.RightOperandEmpty, null), true);

            pm.pinTo(2);
            Assert.AreEqual(pm.Is(0, LevelType.RightOperandEmpty, null), true);
        }
Beispiel #4
0
        public void IsDataTest1()
        {
            IPM pm = new PM("pname . m1(true, 123).right = true");

            Assert.AreEqual(true, pm.IsData("pname"));
            Assert.AreEqual(false, pm.IsData("pname "));
            pm.pinTo(1);

            Assert.AreEqual(true, pm.IsData("m1"));
            pm.pinTo(1);

            Assert.AreEqual(true, pm.IsData("right"));
            pm.pinTo(1);

            Assert.AreEqual(true, pm.IsData(" true"));
        }
Beispiel #5
0
        public void FirstLevelTest1()
        {
            IPM pm = new PM("left.solution.right");

            Assert.AreEqual(pm.FirstLevel.Data, pm.Levels[0].Data);
            Assert.AreEqual(pm.FirstLevel.Type, pm.Levels[0].Type);

            pm.pinTo(2);
            Assert.AreEqual(pm.FirstLevel.Data, pm.Levels[0].Data);
            Assert.AreEqual(pm.FirstLevel.Type, pm.Levels[0].Type);
        }
Beispiel #6
0
        public void pinToTest2()
        {
            try {
                IPM pm = new PM("left.solution.right");
                pm.pinTo(100);
                Assert.Fail("1");
            }
            catch(InvalidArgumentException) {
                Assert.IsTrue(true);
            }

            try {
                IPM pm = new PM("left.solution.right");
                pm.pinTo(-1);
                Assert.Fail("2");
            }
            catch(InvalidArgumentException) {
                Assert.IsTrue(true);
            }

            try {
                IPM pm = new PM("left.solution.right"); //4
                pm.pinTo(4);
                Assert.Fail("4");
            }
            catch(InvalidArgumentException) {
                Assert.IsTrue(true);
            }

            try {
                IPM pm = new PM("left.solution.right"); //4
                pm.pinTo(1);
                pm.pinTo(2);
                pm.pinTo(1);
                Assert.Fail("5");
            }
            catch(InvalidArgumentException) {
                Assert.IsTrue(true);
            }
        }