Exemple #1
0
        public static void UniqueInListWithPoints()
        {
            var pt1 = new Point();
            var pt2 = new Point(1, 0);
            var pt3 = new Point(1, 0);

            Assert.AreEqual(
                new ArrayList {
                pt1, pt2
            },
                List.UniqueItems(new ArrayList {
                pt1, pt2, pt1, pt3
            }));
        }
Exemple #2
0
 public static void JoinLists()
 {
     Assert.AreEqual(
         new ArrayList {
         0, 1, 2, 3, 4
     },
         List.Join(new ArrayList {
         0, 1
     }, new ArrayList {
         2
     }, new ArrayList(), new ArrayList {
         3, 4
     }));
 }
Exemple #3
0
        public static void TakeListSlice()
        {
            var list = new ArrayList(Enumerable.Range(0, 10).ToList());

            Assert.AreEqual(list, List.Slice(list));
            Assert.AreEqual(new ArrayList {
                0, 1, 2, 3, 4
            }, List.Slice(list, count: 5));
            Assert.AreEqual(new ArrayList {
                1, 2, 3, 4, 5
            }, List.Slice(list, 1, 5));
            Assert.AreEqual(new ArrayList {
                0, 2, 4, 6, 8
            }, List.Slice(list, step: 2));
        }
Exemple #4
0
        public static void ListPermutations()
        {
            var check = List.Permutations(new ArrayList {
                "A", "B", "C", "D"
            }, 2);

            Assert.AreEqual(
                new ArrayList
            {
                new ArrayList {
                    "A", "B"
                },
                new ArrayList {
                    "A", "C"
                },
                new ArrayList {
                    "A", "D"
                },
                new ArrayList {
                    "B", "A"
                },
                new ArrayList {
                    "B", "C"
                },
                new ArrayList {
                    "B", "D"
                },
                new ArrayList {
                    "C", "A"
                },
                new ArrayList {
                    "C", "B"
                },
                new ArrayList {
                    "C", "D"
                },
                new ArrayList {
                    "D", "A"
                },
                new ArrayList {
                    "D", "B"
                },
                new ArrayList {
                    "D", "C"
                }
            },
                check);
        }
Exemple #5
0
 public static void PartitionList()
 {
     Assert.AreEqual(
         new ArrayList {
         new ArrayList {
             0, 1
         }, new ArrayList {
             2, 3
         }
     },
         List.Chop(new ArrayList {
         0, 1, 2, 3
     }, new ArrayList {
         2
     }));
 }
Exemple #6
0
        public static void RemoveMultipleValuesFromNestedList()
        {
            var strings = new List <string> {
                "one", "two"
            };

            Assert.AreEqual(
                new List <object> {
                0, 4
            },
                List.RemoveItemAtIndex(new List <object> {
                0, 1, strings, new List <object> {
                    1, strings
                }, 4
            }, new[] { 1, 2, 3 }));
        }
Exemple #7
0
        public static void DropEveryNthValueFromList()
        {
            var       list = Enumerable.Range(1, 12).ToList();
            const int n    = 3;

            Assert.AreEqual(new List <int> {
                1, 2, 4, 5, 7, 8, 10, 11
            }, List.DropEveryNthItem(list, n));
            Assert.AreEqual(new List <int> {
                2, 3, 5, 6, 8, 9, 11, 12
            }, List.DropEveryNthItem(list, n, 1));
            Assert.AreEqual(new List <int> {
                1, 3, 4, 6, 7, 9, 10, 12
            }, List.DropEveryNthItem(list, n, 2));
            Assert.AreEqual(List.DropEveryNthItem(list, n), List.DropEveryNthItem(list, n, 3));
        }
Exemple #8
0
        public static void TakeEveryNthValueFromList()
        {
            var       list = Enumerable.Range(1, 12).ToList();
            const int n    = 3;

            Assert.AreEqual(new List <int> {
                3, 6, 9, 12
            }, List.TakeEveryNthItem(list, n));
            Assert.AreEqual(new List <int> {
                1, 4, 7, 10
            }, List.TakeEveryNthItem(list, n, 1));
            Assert.AreEqual(new List <int> {
                2, 5, 8, 11
            }, List.TakeEveryNthItem(list, n, 2));
            Assert.AreEqual(List.TakeEveryNthItem(list, n), List.TakeEveryNthItem(list, n, 3));
        }
Exemple #9
0
        public static void Chop3()
        {
            var list = new ArrayList {
                1, 2, 3, 4, 5
            };
            var lengths = new ArrayList {
                -1, -1
            };

            var output   = List.Chop(list, lengths);
            var expected = new ArrayList {
                1, 2, 3, 4, 5
            };

            Assert.AreEqual(expected, output);
        }
Exemple #10
0
        public static void ReplaceItemAtIndex()
        {
            Assert.AreEqual(List.ReplaceItemAtIndex(new ArrayList {
                5, 4, 3, 2, 1
            }, 0, 20), new ArrayList {
                20, 4, 3, 2, 1
            });
            Assert.AreEqual(List.ReplaceItemAtIndex(new ArrayList {
                5, 4, 3, 2, 1
            }, -1, 20), new ArrayList {
                5, 4, 3, 2, 20
            });

            Assert.Throws <IndexOutOfRangeException>(() => List.ReplaceItemAtIndex(new ArrayList {
                5, 4, 3, 2, 1
            }, 12, 20));
        }
Exemple #11
0
        public static void SortByKey6()
        {
            var list = new ArrayList {
                1, 2, 3
            };
            var keys = new ArrayList {
                1.21, 1.20, 1.2001
            };

            var result   = List.SortByKey(list, keys);
            var expected = new Dictionary <string, object>
            {
                { "sorted list", new object[] { 2, 3, 1 } },
                { "sorted keys", new object[] { 1.20, 1.2001, 1.21 } }
            };

            Assert.AreEqual(expected, result);
        }
Exemple #12
0
        public static void GroupByKey1()
        {
            var list = new ArrayList {
                "a", "b", "c"
            };
            var keys = new ArrayList {
                "key1", "key2", "key1"
            };

            var result   = List.GroupByKey(list, keys);
            var expected = new Dictionary <string, object>
            {
                { "groups", new object[] { new object[] { "a", "c" }, new object[] { "b" } } },
                { "unique keys", new object[] { "key1", "key2" } }
            };

            Assert.AreEqual(expected, result);
        }
Exemple #13
0
        public static void SortByKey1()
        {
            var list = new ArrayList {
                "item1", "item2"
            };
            var keys = new ArrayList {
                "key2", "key1"
            };

            var result   = List.SortByKey(list, keys);
            var expected = new Dictionary <string, object>
            {
                { "sorted list", new object[] { "item2", "item1" } },
                { "sorted keys", new object[] { "key1", "key2" } }
            };

            Assert.AreEqual(expected, result);
        }
Exemple #14
0
        public static void CleanNullsPreserveIndicesEdgeCases()
        {
            // 1D array of nulls
            var input = new ArrayList {
                null
            };
            var output = List.Clean(input);

            Assert.AreEqual(null, output);

            // list is null itself
            input  = null;
            output = List.Clean(input);
            Assert.AreEqual(null, output);

            // nested array of nulls
            input = new ArrayList {
                new ArrayList {
                    null
                }
            };
            output = List.Clean(input);
            var expected = new ArrayList {
                null
            };

            Assert.AreEqual(expected, output);

            // empty list
            input    = new ArrayList();
            output   = List.Clean(input);
            expected = new ArrayList();
            Assert.AreEqual(expected, output);

            // nested empty list
            input = new ArrayList {
                new ArrayList()
            };
            output   = List.Clean(input);
            expected = new ArrayList {
                new ArrayList()
            };
            Assert.AreEqual(expected, output);
        }
Exemple #15
0
        public static void SplitList()
        {
            var results = List.Deconstruct(new List <int> {
                0, 1, 2, 3, 4, 5
            });

            // Explicitly test each aspect of the returned value.
            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Count);
            Assert.AreEqual("first", results.Keys.Cast <string>().First());
            Assert.AreEqual("rest", results.Keys.Cast <string>().ElementAt(1));
            Assert.AreEqual(0, results["first"]);

            var rest = results["rest"] as List <object>;

            Assert.IsNotNull(rest);
            Assert.AreEqual(new List <object> {
                1, 2, 3, 4, 5
            }, rest);
        }
Exemple #16
0
        public static void Chop4()
        {
            var list = new ArrayList {
                1, 2, 3
            };
            var lengths = new List <int> {
                2, 5
            };

            var output   = List.Chop(list, lengths);
            var expected = new ArrayList {
                new ArrayList {
                    1, 2
                }, new ArrayList {
                    3
                }
            };

            Assert.AreEqual(expected, output);
        }
Exemple #17
0
        public static void Chop5()
        {
            var list = new ArrayList {
                1, "a", 3
            };
            var lengths = new ArrayList {
                2, 1
            };

            var output   = List.Chop(list, lengths);
            var expected = new ArrayList {
                new ArrayList {
                    1, "a"
                }, new ArrayList {
                    3
                }
            };

            Assert.AreEqual(expected, output);
        }
Exemple #18
0
 public static void ListDiagonalLeft()
 {
     Assert.AreEqual(
         new List <List <int> >()
     {
         new List <int>()
         {
             0
         },
         new List <int>()
         {
             1, 5
         },
         new List <int>()
         {
             2, 6, 10,
         },
         new List <int>()
         {
             3, 7, 11, 15
         },
         new List <int>()
         {
             4, 8, 12, 16
         },
         new List <int>()
         {
             9, 13, 17
         },
         new List <int>()
         {
             14, 18
         },
         new List <int>()
         {
             19
         }
     },
         List.DiagonalLeft(Enumerable.Range(0, 20).ToList(), 5));
 }
Exemple #19
0
 public static void ListDiagonalRight()
 {
     Assert.AreEqual(
         new List <List <int> >()
     {
         new List <int>()
         {
             15
         },
         new List <int>()
         {
             10, 16
         },
         new List <int>()
         {
             5, 11, 17,
         },
         new List <int>()
         {
             0, 6, 12, 18
         },
         new List <int>()
         {
             1, 7, 13, 19
         },
         new List <int>()
         {
             2, 8, 14
         },
         new List <int>()
         {
             3, 9
         },
         new List <int>()
         {
             4
         }
     },
         List.DiagonalRight(Enumerable.Range(0, 20).ToList(), 5));
 }
Exemple #20
0
        public static void TakeListSlice()
        {
            var list     = new ArrayList(Enumerable.Range(0, 10).ToList());
            var reversed = list.Cast <object>().Reverse().ToList();

            Assert.AreEqual(list, List.Slice(list));

            Assert.AreEqual(new ArrayList {
                0, 1, 2, 3, 4
            }, List.Slice(list, end: 5));
            Assert.AreEqual(new ArrayList {
                1, 2, 3, 4
            }, List.Slice(list, 1, 5));
            Assert.AreEqual(new ArrayList {
                0, 2, 4, 6, 8
            }, List.Slice(list, step: 2));
            Assert.AreEqual(reversed, List.Slice(list, step: -1));
            Assert.AreEqual(new ArrayList {
                0, 1, 2, 3, 4
            }, List.Slice(list, -11, -5));
            Assert.AreEqual(reversed, List.Slice(list, -1, -11, -1));
        }
Exemple #21
0
        public static void Chop2()
        {
            var list = new ArrayList {
                1, 2, 3, 4, 5
            };
            var lengths = new ArrayList {
                0, 2
            };

            var output   = List.Chop(list, lengths);
            var expected = new ArrayList {
                new ArrayList {
                }, new ArrayList {
                    1, 2
                }, new ArrayList {
                    3, 4
                }, new ArrayList {
                    5
                }
            };

            Assert.AreEqual(expected, output);
        }
Exemple #22
0
 public static void ShiftListIndices()
 {
     Assert.AreEqual(new List <int> {
         2, 0, 1
     }, List.ShiftIndices(new List <int> {
         0, 1, 2
     }, 1));
     Assert.AreEqual(new List <int> {
         1, 2, 0
     }, List.ShiftIndices(new List <int> {
         0, 1, 2
     }, -1));
     Assert.AreEqual(new List <int> {
         2, 0, 1
     }, List.ShiftIndices(new List <int> {
         0, 1, 2
     }, 4));
     Assert.AreEqual(new List <int> {
         1, 2, 0
     }, List.ShiftIndices(new List <int> {
         0, 1, 2
     }, -4));
 }
Exemple #23
0
        public static void SortByKey5()
        {
            var list = new ArrayList {
                "Zack",
                "Ian",
                "Neal",
                "Anna"
            };
            var keys = new ArrayList {
                -3,
                1.6,
                "abc",
                5
            };

            var result   = List.SortByKey(list, keys);
            var expected = new Dictionary <string, object>
            {
                { "sorted list", new object[] { "Zack", "Ian", "Anna", "Neal" } },
                { "sorted keys", new object[] { -3, 1.6, 5, "abc" } }
            };

            Assert.AreEqual(expected, result);
        }
Exemple #24
0
        public static void CleanNullsPreserveIndices()
        {
            var input = new ArrayList
            {
                new ArrayList {
                    1, null, 2, null, null
                },
                new ArrayList {
                    null, null, 3, 4, null
                },
                new ArrayList {
                    null, null
                },
                new ArrayList {
                    1, 2
                }
            };

            var output = List.Clean(input);

            var expected = new ArrayList
            {
                new ArrayList {
                    1, null, 2
                },
                new ArrayList {
                    null, null, 3, 4
                },
                null,
                new ArrayList {
                    1, 2
                }
            };

            Assert.AreEqual(expected, output);
        }
Exemple #25
0
        public static void ListCombinations()
        {
            var input = new ArrayList {
                "A", "B", "C", "D"
            };

            var check = List.Combinations(input, 2);

            Assert.AreEqual(
                new ArrayList
            {
                new ArrayList {
                    "A", "B"
                },
                new ArrayList {
                    "A", "C"
                },
                new ArrayList {
                    "A", "D"
                },
                new ArrayList {
                    "B", "C"
                },
                new ArrayList {
                    "B", "D"
                },
                new ArrayList {
                    "C", "D"
                }
            },
                check);

            check = List.Combinations(input, 2, true);

            Assert.AreEqual(
                new ArrayList
            {
                new ArrayList {
                    "A", "A"
                },
                new ArrayList {
                    "A", "B"
                },
                new ArrayList {
                    "A", "C"
                },
                new ArrayList {
                    "A", "D"
                },
                new ArrayList {
                    "B", "B"
                },
                new ArrayList {
                    "B", "C"
                },
                new ArrayList {
                    "B", "D"
                },
                new ArrayList {
                    "C", "C"
                },
                new ArrayList {
                    "C", "D"
                },
                new ArrayList {
                    "D", "D"
                }
            },
                check);
        }
Exemple #26
0
 public static void LastInList()
 {
     Assert.AreEqual(4, List.LastItem(Enumerable.Range(0, 5).ToList()));
 }
Exemple #27
0
        public static void SortList()
        {
            var sorted = Enumerable.Range(1, 5).ToList();

            Assert.AreEqual(sorted, List.Sort(List.Shuffle(sorted)));
        }
Exemple #28
0
 public static void RepeatObject()
 {
     Assert.AreEqual(new List <object> {
         1, 1, 1, 1
     }, List.OfRepeatedItem(1, 4));
 }
Exemple #29
0
 public static void FirstInList()
 {
     Assert.AreEqual(0, List.FirstItem(new ArrayList {
         0, 1, 2, 3
     }));
 }
Exemple #30
0
 public static void GetFromList()
 {
     Assert.AreEqual(2, List.GetItemAtIndex(new List <int> {
         0, 1, 2, 3
     }, 2));
 }