Пример #1
0
        public void AssignVariableToMultiDimensionalArray()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign myList to [ [0,1,2] , [3,4,5] ]");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignmentCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("myList", assignmentCommand.variableName);
            List <Variable> values = CastList(assignmentCommand.variable.GetValue()).GetTypedValue().GetValues();

            Assert.AreEqual(2, values.Count);

            List <Variable> myList0 = CastList(values[0].GetValue()).GetTypedValue().GetValues();

            Assert.AreEqual(0f, CastNumber(myList0[0].GetValue()).GetTypedValue());
            Assert.AreEqual(1f, CastNumber(myList0[1].GetValue()).GetTypedValue());
            Assert.AreEqual(2f, CastNumber(myList0[2].GetValue()).GetTypedValue());

            List <Variable> myList1 = CastList(values[1].GetValue()).GetTypedValue().GetValues();

            Assert.AreEqual(3f, CastNumber(myList1[0].GetValue()).GetTypedValue());
            Assert.AreEqual(4f, CastNumber(myList1[1].GetValue()).GetTypedValue());
            Assert.AreEqual(5f, CastNumber(myList1[2].GetValue()).GetTypedValue());
        }
Пример #2
0
        public void AssignVariableToMySelectorProperty()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("set \"myPosition\" to my position");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;
        }
Пример #3
0
        public void AssignVariableToSelectorString()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign \"mySelector\" to \"Main Cockpit\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignmentCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("Main Cockpit", assignmentCommand.variable.GetValue().GetValue());
        }
        public void AddStringToListInFront()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"zero \" + [0, 1, 2]");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.AreEqual("zero [0,1,2]", CastString(assignment.variable.GetValue()).GetTypedValue());
        }
Пример #5
0
        public void AssignVariableToMultiDimensionalArrayValue()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign myValue to [ [0,1,2] , [3,4,5] ][1][2]");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignmentCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("myValue", assignmentCommand.variableName);
            Assert.AreEqual(5f, CastNumber(assignmentCommand.variable.GetValue()).GetTypedValue());
        }
        public void AssignVariable()
        {
            var command = ParseCommand("assign \"a\" to 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("a", assignCommand.variableName);
            Assert.AreEqual(2, CastNumber(assignCommand.variable.GetValue()).GetNumericValue());
            Assert.IsFalse(assignCommand.useReference);
        }
        public void AssignNotColor()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to not \"red\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;
            Primitive primitive = assignment.variable.GetValue();

            Assert.AreEqual(Return.COLOR, primitive.GetPrimitiveType());
            Assert.AreEqual(Color.Cyan, primitive.GetValue());
        }
        public void AssignSubtractedColors()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"#ffff00\" - \"#00ff00\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;
            Primitive primitive = assignment.variable.GetValue();

            Assert.AreEqual(Return.COLOR, primitive.GetPrimitiveType());
            Assert.AreEqual(Color.Red, primitive.GetValue());
        }
        public void CastStringAsVector()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to (\"1\" + \":2:\" + \"3\") as \"vector\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;
            Primitive value = assignment.variable.GetValue();

            Assert.AreEqual(Return.VECTOR, value.GetPrimitiveType());
            Assert.AreEqual("1:2:3", CastString(value).GetTypedValue());
        }
Пример #10
0
        public void AssignVariableFromInMemoryVariableName()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign {a} to 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("a", assignCommand.variableName);
            Assert.AreEqual(2, CastNumber(assignCommand.variable.GetValue()).GetTypedValue());
            Assert.IsFalse(assignCommand.useReference);
        }
Пример #11
0
        public void AssignVariableToAmbiguousStringValue()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to b");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("a", assignCommand.variableName);
            Assert.AreEqual("b", assignCommand.variable.GetValue().GetValue());
            Assert.IsFalse(assignCommand.useReference);
        }
        public void AssignDividedColor()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"#224466\" / 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;
            Primitive primitive = assignment.variable.GetValue();

            Assert.AreEqual(Return.COLOR, primitive.GetPrimitiveType());
            Assert.AreEqual("#112233", CastString(primitive).GetTypedValue());
        }
        public void CastStringAsBoolean()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"true\" as \"bool\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;
            Primitive value = assignment.variable.GetValue();

            Assert.AreEqual(Return.BOOLEAN, value.GetPrimitiveType());
            Assert.AreEqual(true, value.GetValue());
        }
        public void AdditionBeforeBooleanLogic()
        {
            var command = ParseCommand("assign a to {b} + 1 and {c}");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is AndVariable);
            AndVariable variable = (AndVariable)assignment.variable;

            Assert.IsTrue(variable.a is OperandVariable);
            Assert.IsTrue(variable.b is InMemoryVariable);
        }
Пример #15
0
        public void AssignGlobalVariableWithActionKeyword()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("set global \"a\" to 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("a", assignCommand.variableName);
            Assert.AreEqual(2, CastNumber(assignCommand.variable.GetValue()).GetTypedValue());
            Assert.IsFalse(assignCommand.useReference);
            Assert.IsTrue(assignCommand.isGlobal);
        }
        public void AdditionBeforeVariableComparison()
        {
            var command = ParseCommand("assign a to {b} + 1 > 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is ComparisonVariable);
            ComparisonVariable variable = (ComparisonVariable)assignment.variable;

            Assert.IsTrue(variable.a is OperandVariable);
            Assert.IsTrue(variable.b is StaticVariable);
        }
Пример #17
0
        public void AssignAvgOfBlocksWithSelectorFirst()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign \"a\" to \"forward guns\" average range");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignCommand.variable is AggregatePropertyVariable);
            AggregatePropertyVariable aggregate = (AggregatePropertyVariable)assignCommand.variable;

            Assert.AreEqual(PropertyAggregate.AVG, aggregate.aggregationType);
        }
Пример #18
0
        public void AssignVariableToListIndexValue()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign myValue to [1, 2, 3][0]");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignmentCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("myValue", assignmentCommand.variableName);
            Primitive value = assignmentCommand.variable.GetValue();

            Assert.AreEqual(1f, CastNumber(value).GetTypedValue());
        }
Пример #19
0
        public void AssignSumOfBlocksWithProperty()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign \"a\" to sum of the \"forward guns\" range");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignCommand.variable is AggregatePropertyVariable);
            AggregatePropertyVariable aggregate = (AggregatePropertyVariable)assignCommand.variable;

            Assert.AreEqual(PropertyAggregate.SUM, aggregate.aggregationType);
        }
        public void AssignSimpleAddition()
        {
            var command = ParseCommand("assign a to 3 + 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is OperandVariable);
            OperandVariable variable = (OperandVariable)assignment.variable;

            Assert.AreEqual(OperandType.ADD, variable.operand);
            Assert.AreEqual(5f, CastNumber(variable.GetValue()).GetValue());
        }
        public void AssignVariableCaseIsPreserved()
        {
            var command = ParseCommand("assign \"a\" to {variableName}");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignCommand = (VariableAssignmentCommand)command;

            Assert.AreEqual("a", assignCommand.variableName);
            Assert.IsTrue(assignCommand.variable is InMemoryVariable);
            InMemoryVariable memoryVariable = (InMemoryVariable)assignCommand.variable;

            Assert.AreEqual("variableName", memoryVariable.variableName);
        }
        public void AssignACos()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to acos 1.5708");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is UniOperandVariable);
            UniOperandVariable variable = (UniOperandVariable)assignment.variable;

            Assert.AreEqual(UniOperand.ACOS, variable.operand);
            Assert.AreEqual((float)Math.Acos(1.5708f), CastNumber(variable.GetValue()).GetValue());
        }
        public void AssignVectorMod()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"1:1:0\" % \"0:1:0\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is BiOperandVariable);
            BiOperandVariable variable = (BiOperandVariable)assignment.variable;

            Assert.AreEqual(BiOperand.MOD, variable.operand);
            Assert.AreEqual(new Vector3D(1, 0, 0), CastVector(variable.GetValue()).GetValue());
        }
        public void AssignSimpleExponent()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to 2 ^ 4");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is BiOperandVariable);
            BiOperandVariable variable = (BiOperandVariable)assignment.variable;

            Assert.AreEqual(BiOperand.EXPONENT, variable.operand);
            Assert.AreEqual(16, CastNumber(variable.GetValue()).GetTypedValue());
        }
        public void AssignVectorDotProduct()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"0:1:0\" . \"1:0:0\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is BiOperandVariable);
            BiOperandVariable variable = (BiOperandVariable)assignment.variable;

            Assert.AreEqual(BiOperand.DOT, variable.operand);
            Assert.AreEqual(0f, CastNumber(variable.GetValue()).GetValue());
        }
        public void AssignSimpleDivision()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to 6 / 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is BiOperandVariable);
            BiOperandVariable variable = (BiOperandVariable)assignment.variable;

            Assert.AreEqual(BiOperand.DIVIDE, variable.operand);
            Assert.AreEqual(3f, CastNumber(variable.GetValue()).GetValue());
        }
        public void AssignVectorExponentAsAngleBetween()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to \"0:0:1\" ^ \"1:0:0\"");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is BiOperandVariable);
            BiOperandVariable variable = (BiOperandVariable)assignment.variable;

            Assert.AreEqual(BiOperand.EXPONENT, variable.operand);
            Assert.AreEqual(90, CastNumber(variable.GetValue()).GetTypedValue());
        }
        public void AdditionBeforeVariableComparison()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to {b} + 1 > 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is ComparisonVariable);
            ComparisonVariable variable = (ComparisonVariable)assignment.variable;

            Assert.IsTrue(variable.a is BiOperandVariable);
            Assert.IsTrue(variable.b is StaticVariable);
        }
        public void AssignSimpleSubtractionVariable()
        {
            var command = ParseCommand("assign a to {b} - 2");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is OperandVariable);
            OperandVariable variable = (OperandVariable)assignment.variable;

            Assert.AreEqual(OperandType.SUBTACT, variable.operand);
            Assert.IsTrue(variable.a is InMemoryVariable);
            Assert.IsTrue(variable.b is StaticVariable);
        }
        public void AssignSin()
        {
            var program = MDKFactory.CreateProgram <Program>();
            var command = program.ParseCommand("assign a to sin 1.5708");

            Assert.IsTrue(command is VariableAssignmentCommand);
            VariableAssignmentCommand assignment = (VariableAssignmentCommand)command;

            Assert.IsTrue(assignment.variable is UniOperandVariable);
            UniOperandVariable variable = (UniOperandVariable)assignment.variable;

            Assert.AreEqual(UniOperand.SIN, variable.operand);
            Assert.AreEqual(1f, CastNumber(variable.GetValue()).GetValue());
        }