public void AddAndRemove_5Dimension(JaggedDictionary <int, string> sut, JaggedIndex5 <int> key, string value)
 {
     sut.Add(key, value);
     Assert.True(sut.Remove(key));
     Assert.False(sut.ContainsKey(key));
     Assert.Equal(0, sut.Count);
 }
        public void EnumerateBasic_2Dimension()
        {
            var indexes = new[] {
                new[] { 1, 1 },
                new[] { 1, 2 },
                new[] { 1, 3 },
                new[] { 2, 1 },
                new[] { 2, 2 },
                new[] { 2, 3 },
                new[] { 3, 1 },
                new[] { 3, 2 },
                new[] { 3, 3 }
            };

            var sut  = new JaggedDictionary <int, int>(indexes.First().Length, SortedDictionaryFactory <int> .Default);
            var keys = indexes.Select(a => JaggedIndex.Create(a)).ToList();

            foreach (var key in keys)
            {
                sut[key] = 0;
            }

            var keyValuePairs = sut.ToList();

            Assert.Equal(keys.Count, keyValuePairs.Count);
            foreach (var kvp in keyValuePairs)
            {
                Assert.True(keys.Cast <IJaggedIndex <int> >().Contains(kvp.Key));
                Assert.Equal(0, kvp.Value);
            }
        }
 public void AddAndTryGetValue_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut.Add(key, value);
     string val;
     Assert.True(sut.TryGetValue(key, out val));
     Assert.Equal(value, val);
 }
        public void AddAndTryGetValue_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
        {
            sut.Add(key, value);
            string val;

            Assert.True(sut.TryGetValue(key, out val));
            Assert.Equal(value, val);
        }
        public void ValueCollection(JaggedDictionary<int, string> sut, KeyValuePair<JaggedIndex4<int>, string>[] values)
        {
            foreach (var kvp in values) sut[kvp.Key] = kvp.Value;

            var debugView = new JaggedDictionaryValueCollectionDebugView<int, string>(sut.Values);
            var items = debugView.Items;
            Assert.Equal(values.Distinct().Count(), items.Length);
        }
        public void ValueCollection(JaggedDictionary <int, string> sut, KeyValuePair <JaggedIndex4 <int>, string>[] values)
        {
            foreach (var kvp in values)
            {
                sut[kvp.Key] = kvp.Value;
            }

            var debugView = new JaggedDictionaryValueCollectionDebugView <int, string>(sut.Values);
            var items     = debugView.Items;

            Assert.Equal(values.Distinct().Count(), items.Length);
        }
        public void Keys_5Dimension(JaggedDictionary <int, string> sut, JaggedIndex5 <int>[] keys, string value)
        {
            foreach (var key in keys)
            {
                sut[key] = value;
            }

            var list = sut.Keys.ToList();

            Assert.Equal(keys.Length, list.Count);
            foreach (var item in list)
            {
                Assert.True(keys.Cast <IJaggedIndex <int> >().Contains(item));
            }
        }
        public void Values_5Dimension(JaggedDictionary <int, string> sut, JaggedIndex5 <int>[] keys, string value)
        {
            foreach (var key in keys)
            {
                sut[key] = value;
            }

            var list = sut.Values.ToList();

            Assert.Equal(keys.Length, list.Count);
            foreach (var item in list)
            {
                Assert.Equal(value, item);
            }
        }
        public void Enumerate_5Dimension(JaggedDictionary <int, string> sut, JaggedIndex5 <int>[] keys, string value)
        {
            foreach (var key in keys)
            {
                sut[key] = value;
            }

            var keyValuePairs = sut.ToList();

            Assert.Equal(keys.Length, keyValuePairs.Count);
            foreach (var kvp in keyValuePairs)
            {
                Assert.True(keys.Cast <IJaggedIndex <int> >().Contains(kvp.Key));
                Assert.Equal(value, kvp.Value);
            }
        }
        public void EnumerateBasic_5Dimension()
        {
            var indexes = new[] {
                new[] { 1, 1, 1, 1, 1 },
                new[] { 1, 1, 1, 1, 2 },
                new[] { 1, 1, 1, 1, 3 },
                new[] { 1, 1, 1, 2, 1 },
                new[] { 1, 1, 1, 2, 2 },
                new[] { 1, 1, 1, 2, 3 },
                new[] { 1, 1, 1, 3, 1 },
                new[] { 1, 1, 1, 3, 2 },
                new[] { 1, 1, 1, 3, 3 },
                new[] { 1, 1, 2, 1, 1 },
                new[] { 1, 1, 2, 1, 2 },
                new[] { 1, 1, 2, 1, 3 },
                new[] { 1, 1, 2, 2, 1 },
                new[] { 1, 1, 2, 2, 2 },
                new[] { 1, 1, 2, 2, 3 },
                new[] { 1, 2, 1, 1, 1 },
                new[] { 2, 1, 1, 1, 1 },
                new[] { 2, 2, 2, 2, 2 }
            };

            var sut = new JaggedDictionary<int, int>(indexes.First().Length, SortedDictionaryFactory<int>.Default);
            var keys = indexes.Select(a => JaggedIndex.Create(a)).ToList();
            foreach (var key in keys) sut[key] = 0;

            var keyValuePairs = sut.ToList();
            Assert.Equal(keys.Count, keyValuePairs.Count);
            foreach (var kvp in keyValuePairs)
            {
                Assert.True(keys.Cast<IJaggedIndex<int>>().Contains(kvp.Key));
                Assert.Equal(0, kvp.Value);
            }
        }
 public void AddAndClear_5Dimension(JaggedDictionary<int, string> sut, JaggedIndex5<int> key, string value)
 {
     sut.Add(key, value);
     sut.Clear();
     Assert.Equal(0, sut.Count);
 }
 public void SetAndGetIndexedIListKey_5Dimension(JaggedDictionary <int, string> sut, JaggedIndex5 <int> key, string value)
 {
     sut[(IList <int>)key.GetValues()] = value;
     Assert.Equal(value, sut[(IList <int>)key.GetValues()]);
 }
 public void AddAndContainsKey_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut.Add(key, value);
     Assert.True(sut.ContainsKey(key));
 }
 public void Add_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut.Add(key, value);
     Assert.Equal(value, sut[key]);
     Assert.Equal(1, sut.Count);
 }
        public void Values_5Dimension(JaggedDictionary<int, string> sut, JaggedIndex5<int>[] keys, string value)
        {
            foreach (var key in keys) sut[key] = value;

            var list = sut.Values.ToList();
            Assert.Equal(keys.Length, list.Count);
            foreach (var item in list)
            {
                Assert.Equal(value, item);
            }
        }
 public void AddAndClear_5Dimension(JaggedDictionary <int, string> sut, JaggedIndex5 <int> key, string value)
 {
     sut.Add(key, value);
     sut.Clear();
     Assert.Equal(0, sut.Count);
 }
        public void NotTryGetValue_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
        {
            string val;

            Assert.False(sut.TryGetValue(key, out val));
        }
 public void AddAndContainsKey_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     sut.Add(key, value);
     Assert.True(sut.ContainsKey(key));
 }
 public void NotContainsKey_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     Assert.False(sut.ContainsKey(key));
 }
 public void Add_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     sut.Add(key, value);
     Assert.Equal(value, sut[key]);
     Assert.Equal(1, sut.Count);
 }
 public void SetAndGetIndexedCoordinates_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     sut[key] = value;
     Assert.Equal(value, sut[key]);
 }
        public void Enumerate_5Dimension(JaggedDictionary<int, string> sut, JaggedIndex5<int>[] keys, string value)
        {
            foreach (var key in keys) sut[key] = value;

            var keyValuePairs = sut.ToList();
            Assert.Equal(keys.Length, keyValuePairs.Count);
            foreach (var kvp in keyValuePairs)
            {
                Assert.True(keys.Cast<IJaggedIndex<int>>().Contains(kvp.Key));
                Assert.Equal(value, kvp.Value);
            }
        }
        public void Keys_5Dimension(JaggedDictionary<int, string> sut, JaggedIndex5<int>[] keys, string value)
        {
            foreach (var key in keys) sut[key] = value;

            var list = sut.Keys.ToList();
            Assert.Equal(keys.Length, list.Count);
            foreach (var item in list)
            {
                Assert.True(keys.Cast<IJaggedIndex<int>>().Contains(item));
            }
        }
 public void NotRemove_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     Assert.False(sut.Remove(key));
 }
 public void SetAndGetIndexedCoordinates_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut[key] = value;
     Assert.Equal(value, sut[key]);
 }
 public void AddAndRemove_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut.Add(key, value);
     Assert.True(sut.Remove(key));
     Assert.False(sut.ContainsKey(key));
     Assert.Equal(0, sut.Count);
 }
 public void NotContainsKey_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     Assert.False(sut.ContainsKey(key));
 }
 public void SetAndGetIndexedArrayKey_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     sut[key.GetValues()] = value;
     Assert.Equal(value, sut[key.GetValues()]);
 }
 public void NotTryGetValue_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     string val;
     Assert.False(sut.TryGetValue(key, out val));
 }
 public void SetAndGetIndexedArrayKey_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut[key.GetValues()] = value;
     Assert.Equal(value, sut[key.GetValues()]);
 }
 public void NotRemove_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     Assert.False(sut.Remove(key));
 }
 public void SetAndGetIndexedIListKey_5Dimension(JaggedDictionary<int, string> sut, JaggedIndex5<int> key, string value)
 {
     sut[(IList<int>)key.GetValues()] = value;
     Assert.Equal(value, sut[(IList<int>)key.GetValues()]);
 }
 public void Clear_1Dimension(JaggedDictionary<int, string> sut, JaggedIndex1<int> key, string value)
 {
     sut.Clear();
     Assert.Equal(0, sut.Count);
 }
 public void Clear_1Dimension(JaggedDictionary <int, string> sut, JaggedIndex1 <int> key, string value)
 {
     sut.Clear();
     Assert.Equal(0, sut.Count);
 }