示例#1
0
        public void MultipleVarsCountSymbolTable()
        {
            var validator    = new DuplicateVariableAnalyser();
            var hasSucceeded = validator.Analyse(MultipleVarForm);

            Assert.IsTrue(hasSucceeded);
            Assert.AreEqual(2, SymbolTable.Instance.TypeMap.Count);
        }
示例#2
0
        public void CheckNameOneVarInSymbolTable()
        {
            var validator    = new DuplicateVariableAnalyser();
            var hasSucceeded = validator.Analyse(OneVarForm);

            Assert.IsTrue(hasSucceeded);
            Assert.AreEqual("boughtAHouse", SymbolTable.Instance.TypeMap.Keys.ToArray()[0]);
        }
示例#3
0
        public void CheckTypeInSymbolTable()
        {
            var validator    = new DuplicateVariableAnalyser();
            var hasSucceeded = validator.Analyse(OneVarForm);

            Assert.IsTrue(hasSucceeded);
            Assert.AreEqual(QValueType.BOOLEAN, SymbolTable.Get("boughtAHouse"));
        }
示例#4
0
        public void OneVariableInSymbolTable()
        {
            var varAnalyser  = new DuplicateVariableAnalyser();
            var hasSucceeded = varAnalyser.Analyse(OneVarForm);

            Assert.IsTrue(hasSucceeded);
            Assert.AreEqual(1, SymbolTable.Instance.TypeMap.Count);
        }
示例#5
0
        public void DuplicateVariableInComputedTest()
        {
            var analyser    = new DuplicateVariableAnalyser();
            var hasSucceded = analyser.Analyse(_duplicateComputedForm);

            Assert.IsFalse(hasSucceded);
            Assert.AreEqual(1, Analyser.GetErrors().Count);
        }
示例#6
0
        public void NoDuplicateVariableTest()
        {
            var analyser    = new DuplicateVariableAnalyser();
            var hasSucceded = analyser.Analyse(_validForm);

            Assert.IsTrue(hasSucceded);
            Assert.AreEqual(0, Analyser.GetErrors().Count);
        }
示例#7
0
        public void MultipleVarsNameCheck()
        {
            var validator    = new DuplicateVariableAnalyser();
            var hasSucceeded = validator.Analyse(MultipleVarForm);

            Assert.IsTrue(hasSucceeded);
            Assert.AreEqual("boughtAHouse", SymbolTable.Instance.TypeMap.Keys.ToArray()[0]);
            Assert.AreEqual("priceHouse", SymbolTable.Instance.TypeMap.Keys.ToArray()[1]);
        }
示例#8
0
        public void MultipleVarsTypeCheck()
        {
            var validator    = new DuplicateVariableAnalyser();
            var hasSucceeded = validator.Analyse(MultipleVarForm);

            Assert.IsTrue(hasSucceeded);
            Assert.AreEqual(QValueType.BOOLEAN, SymbolTable.Get("boughtAHouse"));
            Assert.AreEqual(QValueType.MONEY, SymbolTable.Get("priceHouse"));
        }
示例#9
0
        public void DuplicateVariableTest()
        {
            var analyser    = new DuplicateVariableAnalyser();
            var hasSucceded = analyser.Analyse(_invalidForm);

            Assert.IsFalse(hasSucceded);
            Assert.AreEqual(1, Analyser.GetErrors().Count);
            Assert.AreEqual("[QL] ERROR Duplicate identifier boughtAHouse Boolean", Analyser.GetErrors()[0]);
        }
        public void AllVarsInitialised()
        {
            var variableAnalyser = new DuplicateVariableAnalyser();

            variableAnalyser.Analyse(_simpleFormWithConditional);

            var onlyIdentifiedVarsAnalyser = new OnlyInitialisedVarsAnalyser();
            var result = onlyIdentifiedVarsAnalyser.Analyse(_simpleFormWithConditional);

            Assert.IsTrue(result);
            Assert.AreEqual(0, Analyser.GetErrors().Count);
        }
        public void NotAllVarsInitialisedInComputed()
        {
            var variableAnalyser = new DuplicateVariableAnalyser();

            variableAnalyser.Analyse(_simpleFormWithComputedNode);

            var onlyIdentifiedVarsAnalyser = new OnlyInitialisedVarsAnalyser();
            var result = onlyIdentifiedVarsAnalyser.Analyse(_simpleFormWithComputedNode);

            Assert.IsFalse(result);
            Assert.AreEqual(1, Analyser.GetErrors().Count);
            Assert.AreEqual("[QL] ERROR [1,224] Unknown identifier 'notInitialisedVar' in statement", Analyser.GetErrors()[0]);
        }