public void PairwiseComparison_Constructor_ValidAlternatives_InitsImportancesPrioritiesAndLMax()
        {
            //Arrange
            var alternative1 = new AlternativeNode(new Alternative());
            var alternative2 = new AlternativeNode(new Alternative());
            var alternative3 = new AlternativeNode(new Alternative());
            var alternatives = new List <AlternativeNode>()
            {
                alternative1, alternative2, alternative3
            };

            //Act
            var comparison = new PairwiseComparison(alternatives);

            //Assert
            foreach (var node1 in alternatives)
            {
                foreach (var node2 in alternatives)
                {
                    Assert.AreEqual(1M, comparison[node1, node2]);
                }
            }

            foreach (var node in alternatives)
            {
                Assert.AreEqual(1M / 3, comparison[node]);
            }

            Assert.AreEqual(3, comparison.LMax);
        }
        public void PairwiseComparison_Constructor_NotUniqueAlternatives_ThrowsInvalidOperationException()
        {
            //Arrange
            var alternative  = new AlternativeNode(new Alternative());
            var alternatives = new List <AlternativeNode>()
            {
                alternative, alternative
            };
            Exception exception = null;

            //Act
            try
            {
                var comparison = new PairwiseComparison(alternatives);
            }
            catch (Exception e)
            {
                exception = e;
            }

            //Assert
            Assert.IsNotNull(exception);
            Assert.IsInstanceOfType(exception, typeof(InvalidOperationException));
            Assert.AreEqual("Minimum 2 unique nodes are expected for pairwise comparison.", exception.Message);
        }
Esempio n. 3
0
        public void AlternativeNode_Name_ReturnsAlternativeName()
        {
            //Arange => Act
            var alternativeNode = new AlternativeNode(new Alternative("Alternative"));

            //Assert
            Assert.AreEqual("Alternative", alternativeNode.Name);
        }
Esempio n. 4
0
        public void CriterionNode_CriterionNode_SetsCriterionNode()
        {
            //Arrange
            var alternativeNode = new AlternativeNode(new Alternative());
            var criterion       = new CriterionNode();

            //Act
            alternativeNode.CriterionNode = criterion;

            //Assert
            Assert.AreEqual(criterion, alternativeNode.CriterionNode);
            Assert.IsTrue(criterion.AlternativeNodes.Contains(alternativeNode));
        }
Esempio n. 5
0
        public void CriterionNode_CriterionNode_ExistingCriterion_SetsCriterionNodeToNull()
        {
            //Arrange
            var alternativeNode = new AlternativeNode(new Alternative());
            var criterion       = new CriterionNode();

            //Act
            alternativeNode.CriterionNode = criterion;
            alternativeNode.CriterionNode = null;

            //Arrange
            Assert.IsNull(alternativeNode.CriterionNode);
            Assert.IsFalse(criterion.AlternativeNodes.Contains(alternativeNode));
        }
Esempio n. 6
0
        public void CriterionNode_CriterionNode_ExistingCriterion_ChangesCriterionNode()
        {
            //Arrange
            var alternativeNode = new AlternativeNode(new Alternative());
            var criterion       = new CriterionNode();
            var criterionNew    = new CriterionNode();

            //Act
            alternativeNode.CriterionNode = criterion;
            alternativeNode.CriterionNode = criterionNew;

            //Arrange
            Assert.IsFalse(criterion.AlternativeNodes.Contains(alternativeNode));
            Assert.AreEqual(criterionNew, alternativeNode.CriterionNode);
            Assert.IsTrue(criterionNew.AlternativeNodes.Contains(alternativeNode));
        }
Esempio n. 7
0
        public void AlternativeNode_Constructor_NullAlternative_ThrowsException()
        {
            //Arrange
            Exception exception = null;

            //Act
            try
            {
                var alternative = new AlternativeNode(null);
            }
            catch (Exception e)
            {
                exception = e;
            }

            //Assert
            Assert.IsNotNull(exception);
            Assert.IsInstanceOfType(exception, typeof(ArgumentException));
        }
Esempio n. 8
0
        public void AlternativeNode_Name_Setter_ThrowsException()
        {
            //Arrange
            var       alternativeNode = new AlternativeNode(new Alternative("Alternative"));
            Exception exception       = null;

            //Act
            try
            {
                alternativeNode.Name = "New alternative";
            }
            catch (Exception e)
            {
                exception = e;
            }

            //Assert
            Assert.IsNotNull(exception);
            Assert.IsInstanceOfType(exception, typeof(InvalidOperationException));
            Assert.AreEqual(exception.Message, "Changing Name property of AlternativeNode object directly is not allowed. Change Name property of correspondent Alternative object instead.");
        }