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));
        }