コード例 #1
0
ファイル: ListWeaverTest.cs プロジェクト: Jiannan/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequence2()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list0 = new List<string> { "Beige" };
            var list1 = new List<string> { "Yellow", "Orange", "Gray"};
            var list2 = new List<string> { "Purple", "Yellow", "Green", "Red" };
            var list3 = new List<string> { "Orange", "Red", "Cyan" };
            var list4 = new List<string> { "Yellow", "Brown", "Cyan" };
            var list5 = new List<string> { "Gold", "Silver", "Bronze" };

            // Act
            lw.Yarns.Add(list0);
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            lw.Yarns.Add(list3);
            lw.Yarns.Add(list4);
            lw.Yarns.Add(list5);
            var result = lw.Weave();

            var correct = new List<string> { "Beige", "Purple", "Yellow", "Orange", "Gray", "Green", "Red", "Brown", "Cyan", "Gold", "Silver" , "Bronze"};

            // Assert
            Assert.AreEqual(correct, result);
        }
コード例 #2
0
        public static long TimeListWeave2(int finalSequenceLength, bool reverse)
        {
            var listWeaver = new ListWeaver <int>();

            var yarns = new List <List <int> >();

            for (int i = 1; i <= finalSequenceLength; i++)
            {
                yarns.Add(Enumerable.Range(1, i).ToList());
            }

            if (reverse)
            {
                yarns.Reverse();
            }

            yarns.ForEach(listWeaver.Yarns.Add);

            Stopwatch s      = Stopwatch.StartNew();
            var       result = listWeaver.Weave();

            s.Stop();

            // Check that the two sequences are correct.
            Debug.Assert(result.SequenceEqual(Enumerable.Range(1, finalSequenceLength)));

            return(s.ElapsedMilliseconds);
        }
コード例 #3
0
ファイル: ListWeaverBenchmark.cs プロジェクト: Jiannan/Orcomp
        public static long TimeListWeave(int finalSequenceLength, int yarnLength, bool reverse)
        {
            var yarns = GetYarns( finalSequenceLength, yarnLength, reverse );

            var listWeaver = new ListWeaver<int>();

            yarns.ForEach( listWeaver.Yarns.Add );

            Stopwatch s = Stopwatch.StartNew();
            var result = listWeaver.Weave();
            s.Stop();

            // Check that the two sequences are correct.
            Debug.Assert(result.SequenceEqual( Enumerable.Range( 1, finalSequenceLength )));

            return s.ElapsedMilliseconds;
        }
コード例 #4
0
ファイル: ListWeaverTest.cs プロジェクト: Jiannan/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequence()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list1 = new List<string> { "Green", "Blue", "Yellow" };
            var list2 = new List<string> { "Blue", "Orange", "Red" };

            // Act
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            var result = lw.Weave();

            var correct = new List<string> { "Green", "Blue", "Yellow", "Orange", "Red" };

            // Assert
            Assert.AreEqual(correct, result );
        }
コード例 #5
0
        public static long TimeListWeave(int finalSequenceLength, int yarnLength, bool reverse)
        {
            var yarns = GetYarns(finalSequenceLength, yarnLength, reverse);

            var listWeaver = new ListWeaver <int>();

            yarns.ForEach(listWeaver.Yarns.Add);

            Stopwatch s      = Stopwatch.StartNew();
            var       result = listWeaver.Weave();

            s.Stop();

            // Check that the two sequences are correct.
            Debug.Assert(result.SequenceEqual(Enumerable.Range(1, finalSequenceLength)));

            return(s.ElapsedMilliseconds);
        }
コード例 #6
0
ファイル: ListWeaverBenchmark.cs プロジェクト: Jiannan/Orcomp
        public static long TimeListWeave2(int finalSequenceLength, bool reverse)
        {
            var listWeaver = new ListWeaver<int>();

            var yarns = new List<List<int>>();

            for(int i=1; i<= finalSequenceLength; i++)
            {
                yarns.Add(Enumerable.Range( 1, i).ToList() );
            }

            if (reverse)
            {
                yarns.Reverse();
            }

            yarns.ForEach(listWeaver.Yarns.Add);

            Stopwatch s = Stopwatch.StartNew();
            var result = listWeaver.Weave();
            s.Stop();

            // Check that the two sequences are correct.
            Debug.Assert(result.SequenceEqual(Enumerable.Range(1, finalSequenceLength)));

            return s.ElapsedMilliseconds;
        }
コード例 #7
0
ファイル: ListWeaverTest.cs プロジェクト: Jiannan/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequence4()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list0 = new List<string> { "Beige" };
            var list1 = new List<string> { "Yellow", "Orange", "Gray" };
            var list2 = new List<string> { "Yellow", "Brown", "Cyan" };
            var list3 = new List<string> { "Gold", "Silver", "Bronze" };
            var list4 = new List<string> { "Purple", "Yellow", "Green", "Red", "Black" };
            var list5 = new List<string> { "Orange", "Red", "Cyan", "Aqua" };

            // Beige
            //               Yellow, Orange, Gray
            //               Yellow,               Borwn,             Cyan
            //                                                              Gold, Silver, Bronze
            //       Purple, Yellow,                     Green, Red                               Black
            //                       Orange,                    Red,  Cyan                               Aqua

            // Act
            lw.Yarns.Add(list0);
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            lw.Yarns.Add(list3);
            lw.Yarns.Add(list4);
            lw.Yarns.Add(list5);
            var result = lw.Weave();

            var correct = new List<string> { "Beige", "Purple", "Yellow", "Orange", "Gray" ,"Brown", "Green", "Red", "Cyan", "Gold", "Silver", "Bronze", "Black", "Aqua" };

            // Assert
            Assert.AreEqual(correct, result);
        }
コード例 #8
0
ファイル: ListWeaverTest.cs プロジェクト: Jiannan/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequenceRdW2()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list1 = new List<string> { "Purple" };
            var list2 = new List<string> { "Green" };
            var list3 = new List<string> { "Orange", "Purple"};
            var list4 = new List<string> { "Green", "Purple" };

            // Act
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            lw.Yarns.Add(list3);
            lw.Yarns.Add(list4);
            var result = lw.Weave();

            var correct = new List<string> { "Green", "Orange", "Purple"};

            // Assert
            Assert.AreEqual(correct, result);
        }
コード例 #9
0
ファイル: ListWeaverTest.cs プロジェクト: Jiannan/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequence6()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list0 = new List<string> { "Beige", "Black" };
            var list1 = new List<string> { "Orange", "Gray" };
            var list2 = new List<string> { "Yellow", "Gold" };
            var list3 = new List<string> { "Gold", "Red" };
            var list4 = new List<string> { "Orange", "Black" };
            var list5= new List<string> { "Red", "Black" };

            // Beige,                           Black
            //       Orange,                          Gray
            //               Yellow, Gold
            //                       Gold, Red,
            //      Orange,                     Black
            //                             Red, Black

            // Act
            lw.Yarns.Add(list0);
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            lw.Yarns.Add(list3);
            lw.Yarns.Add(list4);
            lw.Yarns.Add(list5);
            var result = lw.Weave();

            var correct = new List<string> { "Beige", "Orange", "Yellow", "Gold", "Red", "Black", "Gray", };

            // Assert
            Assert.AreEqual(correct, result);
        }
コード例 #10
0
ファイル: ListWeaverTest.cs プロジェクト: sidlovskyy/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequence_M2()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list0 = new List<string> { "Beige" };
            var list1 = new List<string> { "Yellow", "Orange", "Gray" };
            var list2 = new List<string> { "Yellow", "Brown", "Cyan" };
            var list3 = new List<string> { "Gold", "Silver", "Bronze" };
            var list4 = new List<string> { "Purple", "Yellow", "Green", "Red", "Black" };
            var list5 = new List<string> { "Orange", "Red", "Cyan", "Aqua" };
            var list6 = new List<string> { "Additional", "Problem", "Green" };
            var list7 = new List<string> { "Problem2", "Problem" };
            var list8 = new List<string> { "Additional2", "Problem2" };

            lw.Yarns.Add(list0);
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            lw.Yarns.Add(list3);
            lw.Yarns.Add(list4);
            lw.Yarns.Add(list5);
            lw.Yarns.Add(list6);
            lw.Yarns.Add(list7);
            lw.Yarns.Add(list8);
            var result = lw.Weave();
            var correct = new List<string> { "Beige", "Purple", "Yellow", "Orange", "Gray", "Brown", "Additional", "Additional2", "Problem2", "Problem", "Green", "Red", "Cyan", "Gold", "Silver", "Bronze", "Black", "Aqua" };
            // Assert
            Assert.Equal(correct, result);
        }
コード例 #11
0
ファイル: ListWeaverTest.cs プロジェクト: sidlovskyy/Orcomp
        public void CanWeave_CollectionOfLists_ReturnsCorrectSequenceRdW()
        {
            // Arrange
            var lw = new ListWeaver<string>();
            var list1 = new List<string> { "Blue" };
            var list2 = new List<string> { "Bronze", "Yellow", "Purple" };
            var list3 = new List<string> { "Black", "Orange" };
            var list4 = new List<string> { "Red", "Blue", "Gold" };
            var list5 = new List<string> { "Silver", "Blue" };
            var list6 = new List<string> { "Bronze", "Blue" };

            // Act
            lw.Yarns.Add(list1);
            lw.Yarns.Add(list2);
            lw.Yarns.Add(list3);
            lw.Yarns.Add(list4);
            lw.Yarns.Add(list5);
            lw.Yarns.Add(list6);
            var result = lw.Weave();

            var correct = new List<string> { "Bronze", "Red", "Silver", "Blue", "Yellow", "Purple", "Black", "Orange", "Gold" };

            // Assert
            Assert.Equal(correct, result);
        }