public void Identities()
 {
     var a = new InversionListCodePointSet('a');
     var b = new InversionListCodePointSet('b');
     var x = new InversionListCodePointSet('x');
     Assert.AreEqual(a.Union(b).Complement(), a.Complement().Intersect(b.Complement()), "!(a|b) == !a & !b");
     Assert.AreEqual(a.Union(x).Complement(), a.Complement().Intersect(x.Complement()), "!(a|x) == !a & !x");
 }
 public void Union()
 {
     var eg = new InversionListCodePointSet('e','g');
     var xz = new InversionListCodePointSet('x','z');
     var fhxz = new InversionListCodePointSet('f','h').Union(xz);
     var ehxz = new InversionListCodePointSet('e','h').Union(xz);
     Assert.AreEqual(ehxz, eg.Union(fhxz));
 }