Exemple #1
0
        public void WhenSortResultConstructedWithCommaSeparatedNumberStringThenItIsValid()
        {
            SortResult result = new SortResult("2,1,0");

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(2, result.GetIndex(0));
            Assert.AreEqual(1, result.GetIndex(1));
            Assert.AreEqual(0, result.GetIndex(2));
        }
Exemple #2
0
        public void WhenSortResultConstructedWithNonZeroSizeThenItIsValid()
        {
            SortResult result = new SortResult(4);

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(0, result.GetIndex(0));
            Assert.AreEqual(1, result.GetIndex(1));
            Assert.AreEqual(2, result.GetIndex(2));
            Assert.AreEqual(3, result.GetIndex(3));
        }
Exemple #3
0
        public void WhenSwapWithOutOfBoundArgumentThenExceptionIsThrown()
        {
            SortResult result = new SortResult("2,1,0");

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(2, result.GetIndex(0));
            Assert.AreEqual(1, result.GetIndex(1));
            Assert.AreEqual(0, result.GetIndex(2));

            result.Swap(0, 3);
        }
Exemple #4
0
        public void WhenGetIndexWithOutOfBoundArgumentThenExceptionIsThrown()
        {
            SortResult result = new SortResult("2,1,0");

            Assert.IsTrue(result.IsValid);
            result.GetIndex(3);
        }
Exemple #5
0
        public void WhenSortResultConstructedWithSingleNumberStringThenItIsValid()
        {
            string     input  = "0";
            SortResult result = new SortResult(input);

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(0, result.GetIndex(0));
        }
Exemple #6
0
        public void GivenNonSortedElementLIstWhenSortedAlpabeticallyThemElementsAreInAlphabeticalOrder()
        {
            Mock <IDsmModel> model = new Mock <IDsmModel>();

            Mock <IDsmElement> a = new Mock <IDsmElement>();

            a.Setup(x => x.Id).Returns(34);
            a.Setup(x => x.Name).Returns(NameA);
            Mock <IDsmElement> b = new Mock <IDsmElement>();

            b.Setup(x => x.Id).Returns(45);
            b.Setup(x => x.Name).Returns(NameB);
            Mock <IDsmElement> c = new Mock <IDsmElement>();

            c.Setup(x => x.Id).Returns(12);
            c.Setup(x => x.Name).Returns(NameC);
            Mock <IDsmElement> d = new Mock <IDsmElement>();

            d.Setup(x => x.Id).Returns(23);
            d.Setup(x => x.Name).Returns(NameD);
            List <IDsmElement> children = new List <IDsmElement> {
                c.Object, d.Object, a.Object, b.Object
            };

            Mock <IDsmElement> parent = new Mock <IDsmElement>();

            parent.Setup(x => x.Children).Returns(children);

            object[] args = { model.Object, parent.Object };
            AlphabeticalSortAlgorithm algortim = new AlphabeticalSortAlgorithm(args);
            SortResult result = algortim.Sort();

            Assert.AreEqual("2,3,0,1", result.Data);

            Assert.AreEqual(a.Object, children[result.GetIndex(0)]);
            Assert.AreEqual(b.Object, children[result.GetIndex(1)]);
            Assert.AreEqual(c.Object, children[result.GetIndex(2)]);
            Assert.AreEqual(d.Object, children[result.GetIndex(3)]);
        }
Exemple #7
0
        public void WhenSwapWithValidArgumentThenTheOrderIsChanged()
        {
            SortResult result = new SortResult("2,1,0");

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(2, result.GetIndex(0));
            Assert.AreEqual(1, result.GetIndex(1));
            Assert.AreEqual(0, result.GetIndex(2));

            result.Swap(0, 1);

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(1, result.GetIndex(0));
            Assert.AreEqual(2, result.GetIndex(1));
            Assert.AreEqual(0, result.GetIndex(2));
        }
Exemple #8
0
        public void WhenInvertOrderThenTheOrderIsChanged()
        {
            SortResult result = new SortResult("2,0,1");

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(2, result.GetIndex(0));
            Assert.AreEqual(0, result.GetIndex(1));
            Assert.AreEqual(1, result.GetIndex(2));

            result.InvertOrder();

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(1, result.GetIndex(0));
            Assert.AreEqual(2, result.GetIndex(1));
            Assert.AreEqual(0, result.GetIndex(2));
        }