Esempio n. 1
0
        public void InitializeCollection()
        {
            var list2 = new LocalList <int>(1, 2);

            list2.Contains(1).Should().BeTrue();
            list2.Contains(2).Should().BeTrue();
            list2.Length.Should().Be(2);

            var list3 = new LocalList <int>(1, 2, 3);

            list3.Contains(1).Should().BeTrue();
            list3.Contains(2).Should().BeTrue();
            list3.Contains(3).Should().BeTrue();
            list3.Length.Should().Be(3);

            var list4 = new LocalList <int>(1, 2, 3, 4);

            list4.Contains(1).Should().BeTrue();
            list4.Contains(2).Should().BeTrue();
            list4.Contains(3).Should().BeTrue();
            list4.Contains(4).Should().BeTrue();
            list4.Length.Should().Be(4);

            var list5 = new LocalList <int>(1, 2, 3, 4, 5);

            list5.Contains(1).Should().BeTrue();
            list5.Contains(2).Should().BeTrue();
            list5.Contains(3).Should().BeTrue();
            list5.Contains(4).Should().BeTrue();
            list5.Contains(5).Should().BeTrue();
            list5.Length.Should().Be(5);
        }
Esempio n. 2
0
 public void AddRange(LocalList <T> collection)
 {
     foreach (var element in collection)
     {
         Add(element);
     }
 }
Esempio n. 3
0
        public void Join_WithManyInner()
        {
            var outer = new[] { new Boo {
                                    Id = 1, Int = 1
                                } };
            var inner = new[] { new Foo {
                                    Int = 1
                                }, new Foo {
                                    Int = 1
                                }, new Foo {
                                    Int = 1
                                } };

            var joinSum = outer
                          .Join(inner, o => o.Int, i => i.Int, (o, i) => i.Int)
                          .Sum();

            var outerLocalList = new LocalList <Boo>(outer);
            var innerLocalList = new LocalList <Foo>(inner);

            var localListSum = outerLocalList
                               .Join(innerLocalList, o => o.Int, i => i.Int, (o, i) => i.Int)
                               .Sum(i => i);

            Assert.Equal(joinSum, localListSum);
        }
            public bool MoveNext()
            {
                if (_position >= _uniqueKeys.Length)
                {
                    return(false);
                }

                var currentKey = _uniqueKeys.Get(_position);

                var groupLocalList = new LocalList <T>();

                for (var i = 0; i < _values.Length; i++)
                {
                    var value = _values.Get(i);
                    if (_comparer.Equals(currentKey, value.Key))
                    {
                        groupLocalList.Add(value.Value);
                    }
                }

                _current = new LocalGroup(currentKey, groupLocalList);
                _position++;

                return(true);
            }
Esempio n. 5
0
        public void Remove_First(int[] items)
        {
            var localList = new LocalList <int>(items);
            var item      = items[0];

            Assert.True(localList.Remove(item));
            Assert.False(localList.Contains(item));
        }
Esempio n. 6
0
        public void Contains <T>(T item)
        {
            var localList = new LocalList <T>();

            localList.Add(item);

            Assert.True(localList.Contains(item));
        }
Esempio n. 7
0
        public void Contains_WithComparer <T>(T item)
        {
            var localList = new LocalList <T>();

            localList.Add(item);

            Assert.True(localList.Contains(item, EqualityComparer <T> .Default));
        }
Esempio n. 8
0
        public void AddRange(Boo[] items)
        {
            var localList = new LocalList <Boo>();

            localList.AddRange(new LocalList <Boo>(items));

            Assert.Equal(items.Length, localList.Length);
        }
Esempio n. 9
0
        public void First_AvoidClosure(int[] items)
        {
            var localList = new LocalList <int>();

            foreach (var item in items)
            {
                localList.Add(item);
                Assert.Equal(item, localList.First((e, i) => e == i, item));
            }
        }
Esempio n. 10
0
        public void IndexOf(Boo[] items)
        {
            var localList = new LocalList <Boo>(items);

            for (var index = 0; index < items.Length; index++)
            {
                var boo = items[index];
                Assert.Equal(index, localList.IndexOf(boo));
            }
        }
Esempio n. 11
0
        public void Remove_All(int[] items)
        {
            var localList = new LocalList <int>(items);

            foreach (var item in items)
            {
                Assert.True(localList.Remove(item));
                Assert.False(localList.Contains(item));
            }
        }
Esempio n. 12
0
        public void Any_AvoidClosure(int[] items)
        {
            var localList = new LocalList <int>();

            foreach (var item in items)
            {
                localList.Add(item);
                Assert.True(localList.Any((e, i) => e == i, item));
            }
        }
Esempio n. 13
0
        public void First(int[] items)
        {
            var localList = new LocalList <int>();

            foreach (var item in items)
            {
                localList.Add(item);
                // ReSharper disable once HeapView.CanAvoidClosure
                Assert.Equal(item, localList.First(e => e == item));
            }
        }
Esempio n. 14
0
        public void Any(int[] items)
        {
            var localList = new LocalList <int>();

            foreach (var item in items)
            {
                localList.Add(item);
                // ReSharper disable once HeapView.CanAvoidClosure
                Assert.True(localList.Any(e => e == item));
            }
        }
            public LocalList <TValue> Select <TValue>(Func <TResult, TValue> selector)
            {
                var localList = new LocalList <TValue>();

                while (MoveNext())
                {
                    localList.Add(selector(_current));
                }

                return(localList);
            }
            public TResult[] ToArray()
            {
                var localList = new LocalList <TResult>();

                while (MoveNext())
                {
                    localList.Add(_current);
                }

                return(localList.ToArray());
            }
Esempio n. 17
0
        public void Remove_At(int[] items)
        {
            var localList = new LocalList <int>(items);

            for (var i = 0; i < items.Length; i++)
            {
                var element = localList[0];
                localList.RemoveAt(0);
                Assert.False(localList.Contains(element));
            }
        }
Esempio n. 18
0
        public void Indexer(int count)
        {
            count = FixCount(count);

            var items     = Enumerable.Range(0, count).ToArray();
            var localList = new LocalList <int>(items);

            for (var i = 0; i < localList.Length; i++)
            {
                Assert.Equal(items[i], localList[i]);
            }
        }
            public LocalList <TResult> Select <TResult>(Selector <TResult> selector)
            {
                var result = new LocalList <TResult>(_uniqueKeys._length);

                while (MoveNext())
                {
                    var element = selector(_current);
                    result.Add(element);
                }

                return(result);
            }
            public LocalList <TResult> OrderBy <TProperty>(Func <TResult, TProperty> path,
                                                           Comparer <TProperty> comparer = null)
            {
                var localList = new LocalList <TResult>();

                while (MoveNext())
                {
                    localList.Add(_current);
                }

                localList.Sort(path, comparer);
                return(localList);
            }
Esempio n. 21
0
            public LocalList <TValue> OrderBy <TProperty>(Func <TValue, TProperty> path,
                                                          Comparer <TProperty> comparer = null)
            {
                var localList = new LocalList <TValue>();

                while (_enumerator.MoveNext())
                {
                    localList.Add(_selector(_enumerator.Current));
                }

                localList.Sort(path, comparer);
                return(localList);
            }
            public LocalList <TResult> Where <TArg>(Func <TResult, TArg, bool> predicate, TArg arg)
            {
                var localList = new LocalList <TResult>();

                while (MoveNext())
                {
                    if (predicate(_current, arg))
                    {
                        localList.Add(_current);
                    }
                }

                return(localList);
            }
            public LocalList <TResult> Where(Predicate <TResult> predicate)
            {
                var localList = new LocalList <TResult>();

                while (MoveNext())
                {
                    if (predicate(_current))
                    {
                        localList.Add(_current);
                    }
                }

                return(localList);
            }
Esempio n. 24
0
        public void GetEnumerator(int[] items)
        {
            var localList = new LocalList <int>();

            foreach (var item in items)
            {
                localList.Add(item);
            }

            foreach (var element in localList)
            {
                Assert.Contains(element, items);
            }
        }
Esempio n. 25
0
        public void Length(int[] items)
        {
            var localList = new LocalList <int>();

            Assert.Equal(0, localList.Length);

            for (var i = 0; i < items.Length; i++)
            {
                localList.Add(items[i]);
                Assert.Equal(i + 1, localList.Length);
            }

            Assert.Equal(items.Length, localList.Length);
        }
Esempio n. 26
0
        public void Clear(int[] items)
        {
            var localList = new LocalList <int>();

            foreach (var item in items)
            {
                localList.Add(item);
            }

            localList.Clear();

            Assert.True(localList.Length == 0);
            Assert.Equal(0, localList.Length);
        }
Esempio n. 27
0
            public LocalList <TValue> Where <TArg>(Func <TValue, TArg, bool> predicate, TArg arg)
            {
                var localList = new LocalList <TValue>();

                while (_enumerator.MoveNext())
                {
                    var current = _selector(_enumerator.Current);
                    if (predicate(current, arg))
                    {
                        localList.Add(current);
                    }
                }

                return(localList);
            }
            public                T[] ToArray()
            {
                var localList = new LocalList <T>(_enumerator.Length);

                while (_enumerator.MoveNext())
                {
                    var current = _enumerator.Current;
                    if (_predicate(current))
                    {
                        localList.Add(current);
                    }
                }

                return(localList.ToArray());
            }
Esempio n. 29
0
        public void Add_Many(int count)
        {
            count = FixCount(count);

            var localList = new LocalList <int>();
            var items     = Enumerable.Range(0, count).ToArray();

            foreach (var item in items)
            {
                localList.Add(item);
                Assert.True(localList.Contains(item));
            }

            Assert.Equal(items.Length, localList.Length);
        }
            public LocalList <TValue> Select <TValue>(Func <T, TValue> selector)
            {
                var localList = new LocalList <TValue>();

                while (_enumerator.MoveNext())
                {
                    var current = _enumerator.Current;
                    if (_predicate(current))
                    {
                        localList.Add(selector(current));
                    }
                }

                return(localList);
            }