view.Clear ();
+ Assert.AreEqual (0, view.Count);
Assert.IsTrue (set.SequenceEqual (new [] { 1, 9 }));
}
Assert.IsTrue (view.SequenceEqual (new [] { 5 }));
}
+ void EmptySubView (SortedSet<int> set)
+ {
+ var view = set.GetViewBetween (-20, -15);
+ Assert.AreEqual (0, view.Count);
+ Assert.AreEqual (0, view.Min);
+ Assert.AreEqual (0, view.Max);
+
+ view = set.GetViewBetween (15, 20);
+ Assert.AreEqual (0, view.Count);
+ Assert.AreEqual (0, view.Min);
+ Assert.AreEqual (0, view.Max);
+ }
+
+ [Test]
+ public void EmptySubView ()
+ {
+ EmptySubView (new SortedSet<int> ());
+ EmptySubView (new SortedSet<int> { 1, 3, 5, 7, 9 });
+ EmptySubView (new SortedSet<int> { -40, 40 });
+ EmptySubView (new SortedSet<int> { -40, -10, 10, 40 });
+ }
+
[Test]
public void ViewMin ()
{
var set = new SortedSet<int> { 1, 3, 5, 7, 9 };
- var view = set.GetViewBetween (4, 8);
+ var view = set.GetViewBetween (4, 8);
Assert.AreEqual (5, view.Min);
+
+ view = set.GetViewBetween (-2, 4);
+ Assert.AreEqual (1, view.Min);
+
+ view = set.GetViewBetween (1, 9);
+ Assert.AreEqual (1, view.Min);
}
[Test]
public void ViewMax ()
{
var set = new SortedSet<int> { 1, 3, 5, 7, 9 };
- var view = set.GetViewBetween (4, 8);
+ var view = set.GetViewBetween (4, 8);
Assert.AreEqual (7, view.Max);
+
+ view = set.GetViewBetween (4, 55);
+ Assert.AreEqual (9, view.Max);
+
+ view = set.GetViewBetween (1, 9);
+ Assert.AreEqual (9, view.Max);
}
[Test]
var view = set.GetViewBetween (4, 8);
Assert.AreEqual (5, view.Count);
+ set.Remove (5);
+ Assert.AreEqual (4, view.Count);
+ set.Add (10);
+ Assert.AreEqual (4, view.Count);
+ set.Add (6);
+ Assert.AreEqual (4, view.Count);
+ set.Add (5);
+ Assert.AreEqual (5, view.Count);
}
[Test, ExpectedException (typeof (ArgumentNullException))]
Assert.IsTrue (set.SequenceEqual (new [] { 1, 9 }));
}
+ [Test]
+ public void ExceptWithItself ()
+ {
+ var set = new SortedSet<int> (new [] { 1, 5 });
+ set.ExceptWith (set);
+ Assert.AreEqual (0, set.Count);
+ }
+
[Test]
public void ViewExceptWith ()
{
Assert.IsTrue (set.SequenceEqual (new [] { 1, 2, 9, 11 }));
}
+ [Test]
+ public void SymetricExceptWithItself ()
+ {
+ var set = new SortedSet<int> (new [] { 1, 5 });
+ set.SymmetricExceptWith (set);
+ Assert.AreEqual (0, set.Count);
+ }
+
[Test]
public void ViewSymmetricExceptWith ()
{
var digits = new SortedSet<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var squares = new SortedSet<int> { 0, 1, 4, 9 };
+ var non_prime_odd_digit = odds.GetViewBetween (8, 42);
+ var non_trit = digits.GetViewBetween (3, 42);
+
do_test (empty, empty, se: true);
do_test (empty, zero, psb: true);
do_test (empty, digits, psb: true);
do_test (squares, digits, psb: true);
do_test (digits, digits, se: true);
do_test_e (digits, squares.Concat (evens.Concat (odds)), o: true, se: true);
+ do_test (non_prime_odd_digit, digits, psb: true);
+ do_test_e (non_prime_odd_digit, new [] { 9 }, o: true, se: true);
+ do_test (non_trit, digits, psb: true);
+ do_test (trit, non_trit);
+ do_test_e (digits, trit.Concat (non_trit), o: true, se: true);
+ do_test_e (non_trit, new [] { 3, 4, 5, 6, 7, 8, 9 }, o: true, se: true);
+ do_test (digits.GetViewBetween (0, 2), trit, se: true);
}
}
}