Example #1
0
        public void ColumnsReadOnly()
        {
            var ints = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5, 6 } };
            var view = new Lists2DTransposedView(ints);

            Assert.AreEqual(false, view[0].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[2].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[2].IsReadOnly);

            ints = new[] { new[] { 1 }, new[] { 3, 4 }, new[] { 5, 6 } };
            view = new Lists2DTransposedView(ints);
            Assert.AreEqual(true, view[0].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[2].IsReadOnly);
            Assert.AreEqual(true, view[1].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[2].IsReadOnly);

            ints = new[] { new[] { 1 }, new[] { 3 }, new[] { 5, 6 } };
            view = new Lists2DTransposedView(ints);
            Assert.AreEqual(true, view[0].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(true, view[0].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[2].IsReadOnly);
            Assert.AreEqual(true, view[1].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(true, view[1].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[2].IsReadOnly);
        }
        public void ColumnsReadOnly()
        {
            var ints = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5, 6 } };
            var view = new Lists2DTransposedView(ints);
            Assert.AreEqual(false, view[0].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[2].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[2].IsReadOnly);

            ints = new[] { new[] { 1 }, new[] { 3, 4 }, new[] { 5, 6 } };
            view = new Lists2DTransposedView(ints);
            Assert.AreEqual(true, view[0].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[2].IsReadOnly);
            Assert.AreEqual(true, view[1].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[2].IsReadOnly);

            ints = new[] { new[] { 1 }, new[] { 3 }, new[] { 5, 6 } };
            view = new Lists2DTransposedView(ints);
            Assert.AreEqual(true, view[0].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(true, view[0].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[0].GetProperties()[2].IsReadOnly);
            Assert.AreEqual(true, view[1].GetProperties()[0].IsReadOnly);
            Assert.AreEqual(true, view[1].GetProperties()[1].IsReadOnly);
            Assert.AreEqual(false, view[1].GetProperties()[2].IsReadOnly);
        }
        public void CreateFromObservableCollections()
        {
            var ints = new ObservableCollection <ObservableCollection <int> >
            {
                new ObservableCollection <int>(new[] { 1, 2 }),
                new ObservableCollection <int>(new[] { 3, 4 }),
                new ObservableCollection <int>(new[] { 5, 6 }),
            };

            using (var view = new Lists2DTransposedView(ints))
            {
                Assert.AreEqual(2, view.Count);

                Assert.AreEqual(0, view[0].Index);
                Assert.AreEqual(3, view[0].Count);
                Assert.AreEqual(1, view[0].GetProperties()[0].GetValue(view[0]));
                Assert.AreEqual(3, view[0].GetProperties()[1].GetValue(view[0]));
                Assert.AreEqual(5, view[0].GetProperties()[2].GetValue(view[0]));

                Assert.AreEqual(1, view[1].Index);
                Assert.AreEqual(3, view[1].Count);
                Assert.AreEqual(2, view[1].GetProperties()[0].GetValue(view[1]));
                Assert.AreEqual(4, view[1].GetProperties()[1].GetValue(view[1]));
                Assert.AreEqual(6, view[1].GetProperties()[2].GetValue(view[1]));
            }
        }
 public void EditTransposed(int r, int c, int value)
 {
     var ints = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5, 6 } };
     var view = new Lists2DTransposedView(ints);
     var row = view[r];
     var property = row.GetProperties()[c];
     property.SetValue(row, value);
     Assert.AreEqual(value, ints[c][r]);
     Assert.AreEqual(value, property.GetValue(row));
 }
Example #5
0
        public void EditTransposed(int r, int c, int value)
        {
            var ints     = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5, 6 } };
            var view     = new Lists2DTransposedView(ints);
            var row      = view[r];
            var property = row.GetProperties()[c];

            property.SetValue(row, value);
            Assert.AreEqual(value, ints[c][r]);
            Assert.AreEqual(value, property.GetValue(row));
        }
            public void SignalsWhenColumnIsAdded()
            {
                var ints = new ObservableCollection<ObservableCollection<int>>
                           {
                               new ObservableCollection<int>(new[] { 1, 2 }),
                               new ObservableCollection<int>(new[] { 3, 4 })
                           };

                var view = new Lists2DTransposedView(ints);
                int count = 0;
                view.ColumnsChanged += (_, __) => count++;
                ints.Add(new ObservableCollection<int>(new[] { 5, 6 }));
                Assert.AreEqual(1, count);
            }
            public static void NoChangeWhenAlreadyReadOnly()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 1, 2 }),
                    new ObservableCollection <int>(new[] { 3, 4, 5 }),
                };

                using var view = new Lists2DTransposedView(ints);
                var count = 0;

                view.ColumnsChanged += (_, __) => count++;
                ints[0].RemoveAt(0);
                Assert.AreEqual(0, count);
            }
            public static void SignalsWhenColumnIsAdded()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 1, 2 }),
                    new ObservableCollection <int>(new[] { 3, 4 }),
                };

                using var view = new Lists2DTransposedView(ints);
                var count = 0;

                view.ColumnsChanged += (_, __) => count++;
                ints.Add(new ObservableCollection <int>(new[] { 5, 6 }));
                Assert.AreEqual(1, count);
            }
            public void SignalsWhenColumnBecomesReadOnly2()
            {
                var ints = new ObservableCollection<ObservableCollection<int>>
                           {
                               new ObservableCollection<int>(new[] { 2, 3 }),
                               new ObservableCollection<int>(new[] { 3, 4 }),
                               new ObservableCollection<int>(new[] { 5, 6 })
                           };

                var view = new Lists2DTransposedView(ints);
                int count = 0;
                view.ColumnsChanged += (_, __) => count++;
                ints[0].Add(1);
                Assert.AreEqual(1, count);
            }
            public void SignalsWhenColumnIsRemoved()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 2 }),
                    new ObservableCollection <int>(new[] { 3 }),
                    new ObservableCollection <int>(new[] { 5, 6 })
                };

                var view  = new Lists2DTransposedView(ints);
                int count = 0;

                view.ColumnsChanged += (_, __) => count++;
                ints.RemoveAt(0);
                Assert.AreEqual(1, count);
            }
            public void SignalsWhenColumnBecomesEditable()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 2 }),
                    new ObservableCollection <int>(new[] { 3, 4 }),
                    new ObservableCollection <int>(new[] { 5, 6 })
                };

                var view  = new Lists2DTransposedView(ints);
                int count = 0;

                view.ColumnsChanged += (_, __) => count++;
                ints[0].Add(9);
                Assert.AreEqual(1, count);
            }
            public static void SignalsWhenColumnsBecomesEditable()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 2 }),
                    new ObservableCollection <int>(new[] { 3 }),
                    new ObservableCollection <int>(new[] { 5, 6 }),
                };

                using var view = new Lists2DTransposedView(ints);
                var count = 0;

                view.ColumnsChanged += (_, __) => count++;
                ints.RemoveAt(2);
                Assert.AreEqual(1, count);
            }
            public static void SignalsWhenColumnBecomesReadOnly2()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 2, 3 }),
                    new ObservableCollection <int>(new[] { 3, 4 }),
                    new ObservableCollection <int>(new[] { 5, 6 }),
                };

                using (var view = new Lists2DTransposedView(ints))
                {
                    var count = 0;
                    view.ColumnsChanged += (_, __) => count++;
                    ints[0].Add(1);
                    Assert.AreEqual(1, count);
                }
            }
        public void CreateFromArrays()
        {
            var ints = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5, 6 } };
            var view = new Lists2DTransposedView(ints);

            Assert.AreEqual(2, view.Count);

            Assert.AreEqual(0, view[0].Index);
            Assert.AreEqual(3, view[0].Count);
            Assert.AreEqual(1, view[0].GetProperties()[0].GetValue(view[0]));
            Assert.AreEqual(3, view[0].GetProperties()[1].GetValue(view[0]));
            Assert.AreEqual(5, view[0].GetProperties()[2].GetValue(view[0]));

            Assert.AreEqual(1, view[1].Index);
            Assert.AreEqual(3, view[1].Count);
            Assert.AreEqual(2, view[1].GetProperties()[0].GetValue(view[1]));
            Assert.AreEqual(4, view[1].GetProperties()[1].GetValue(view[1]));
            Assert.AreEqual(6, view[1].GetProperties()[2].GetValue(view[1]));
        }
        public static void CreateFromArrays()
        {
            var ints = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5, 6 } };

            using var view = new Lists2DTransposedView(ints);
            Assert.AreEqual(2, view.Count);

            Assert.AreEqual(0, view[0].Index);
            Assert.AreEqual(3, view[0].Count);
            Assert.AreEqual(1, view[0].GetProperties()[0].GetValue(view[0]));
            Assert.AreEqual(3, view[0].GetProperties()[1].GetValue(view[0]));
            Assert.AreEqual(5, view[0].GetProperties()[2].GetValue(view[0]));

            Assert.AreEqual(1, view[1].Index);
            Assert.AreEqual(3, view[1].Count);
            Assert.AreEqual(2, view[1].GetProperties()[0].GetValue(view[1]));
            Assert.AreEqual(4, view[1].GetProperties()[1].GetValue(view[1]));
            Assert.AreEqual(6, view[1].GetProperties()[2].GetValue(view[1]));
        }
            public static void NoChangeWhenUpdateCell()
            {
                var ints = new ObservableCollection <ObservableCollection <int> >
                {
                    new ObservableCollection <int>(new[] { 1 }),
                    new ObservableCollection <int>(new[] { 3, 4 }),
                    new ObservableCollection <int>(new[] { 5, 6 }),
                };

                using var view = new Lists2DTransposedView(ints);
                var count = 0;

                view.ColumnsChanged += (_, __) => count++;
                ints[0][0]++;
                Assert.AreEqual(0, count);

                ints[1][0]++;
                Assert.AreEqual(0, count);

                ints[2][1]++;
                Assert.AreEqual(0, count);
            }
        public void CreateFromObservableCollections()
        {
            var ints = new ObservableCollection<ObservableCollection<int>>
                           {
                               new ObservableCollection<int>(new[] { 1, 2 }),
                               new ObservableCollection<int>(new[] { 3, 4 }),
                               new ObservableCollection<int>(new[] { 5, 6 })
                           };
            var view = new Lists2DTransposedView(ints);

            Assert.AreEqual(2, view.Count);

            Assert.AreEqual(0, view[0].Index);
            Assert.AreEqual(3, view[0].Count);
            Assert.AreEqual(1, view[0].GetProperties()[0].GetValue(view[0]));
            Assert.AreEqual(3, view[0].GetProperties()[1].GetValue(view[0]));
            Assert.AreEqual(5, view[0].GetProperties()[2].GetValue(view[0]));

            Assert.AreEqual(1, view[1].Index);
            Assert.AreEqual(3, view[1].Count);
            Assert.AreEqual(2, view[1].GetProperties()[0].GetValue(view[1]));
            Assert.AreEqual(4, view[1].GetProperties()[1].GetValue(view[1]));
            Assert.AreEqual(6, view[1].GetProperties()[2].GetValue(view[1]));
        }
            public void SignalsWhenColumnsBecomesEditable()
            {
                var ints = new ObservableCollection<ObservableCollection<int>>
                           {
                               new ObservableCollection<int>(new[] { 2 }),
                               new ObservableCollection<int>(new[] { 3 }),
                               new ObservableCollection<int>(new[] { 5, 6 })
                           };

                var view = new Lists2DTransposedView(ints);
                int count = 0;
                view.ColumnsChanged += (_, __) => count++;
                ints.RemoveAt(2);
                Assert.AreEqual(1, count);
            }
            public void NoChangeWhenUpdateCell()
            {
                var ints = new ObservableCollection<ObservableCollection<int>>
                           {
                               new ObservableCollection<int>(new[] { 1 }),
                               new ObservableCollection<int>(new[] { 3, 4 }),
                               new ObservableCollection<int>(new[] { 5, 6 })
                           };

                var view = new Lists2DTransposedView(ints);
                int count = 0;
                view.ColumnsChanged += (_, __) => count++;
                ints[0][0]++;
                Assert.AreEqual(0, count);

                ints[1][0]++;
                Assert.AreEqual(0, count);

                ints[2][1]++;
                Assert.AreEqual(0, count);
            }
            public void NoChangeWhenAlreadyReadOnly()
            {
                var ints = new ObservableCollection<ObservableCollection<int>>
                           {
                               new ObservableCollection<int>(new[] { 1, 2 }),
                               new ObservableCollection<int>(new[] { 3, 4, 5 }),
                           };

                var view = new Lists2DTransposedView(ints);
                int count = 0;
                view.ColumnsChanged += (_, __) => count++;
                ints[0].RemoveAt(0);
                Assert.AreEqual(0, count);
            }