public void TestString_01() { var notaset = ForString.Related(Equal, "a").Complement(); var bset = ForString.Related(Equal, "b"); var intersect = bset.Intersect(notaset); Assert.False(intersect.Any(Equal, "c")); }
public void TestString_Cov_01() { var s1 = ForString.Related(Equal, "a"); var s2 = ForString.Related(Equal, "b"); Assert.True(s1.Intersect(s2).IsEmpty); Assert.True(s1.Complement().Union(s2.Complement()).Complement().IsEmpty); Assert.Equal(s1.Union(s2).Complement(), s1.Complement().Intersect(s2.Complement())); IValueSet b = s1; Assert.Same(b.Intersect(b), b); Assert.Same(b.Union(b), b); Assert.False(s1.Union(s2).All(Equal, "a")); }
public static IEnumerable <SqlOperator> GetAllowedForSqlType(string type) { type = type.ToLower(); switch (type) { case "int": return(ForNumber.Clone() as SqlOperator[]); case "nvarchar": return(ForString.Clone() as SqlOperator[]); case "date": case "datetime": return(ForDate.Clone() as SqlOperator[]); default: return(ForObject.Clone() as SqlOperator[]); } }
public void TestString_Fuzz_02() { for (int i = 0; i < 100; i++) { var s1 = ForString.Random(9, Random); var s2 = ForString.Random(11, Random); Assert.Equal(s1.Complement().Complement(), s1); var u1 = s1.Union(s2); var u2 = s1.Complement().Intersect(s2.Complement()).Complement(); var u3 = s2.Union(s1); var u4 = s2.Complement().Intersect(s1.Complement()).Complement(); Assert.Equal(u1, u2); Assert.Equal(u1, u3); Assert.Equal(u1, u4); var i1 = s1.Intersect(s2); var i2 = s1.Complement().Union(s2.Complement()).Complement(); var i3 = s2.Intersect(s1); var i4 = s2.Complement().Union(s1.Complement()).Complement(); Assert.Equal(i1, i2); Assert.Equal(i1, i3); Assert.Equal(i1, i4); s1 = s1.Complement(); u1 = s1.Union(s2); u2 = s1.Complement().Intersect(s2.Complement()).Complement(); u3 = s2.Union(s1); u4 = s2.Complement().Intersect(s1.Complement()).Complement(); Assert.Equal(u1, u2); Assert.Equal(u1, u3); Assert.Equal(u1, u4); i1 = s1.Intersect(s2); i2 = s1.Complement().Union(s2.Complement()).Complement(); i3 = s2.Intersect(s1); i4 = s2.Complement().Union(s1.Complement()).Complement(); Assert.Equal(i1, i2); Assert.Equal(i1, i3); Assert.Equal(i1, i4); s2 = s2.Complement(); u1 = s1.Union(s2); u2 = s1.Complement().Intersect(s2.Complement()).Complement(); u3 = s2.Union(s1); u4 = s2.Complement().Intersect(s1.Complement()).Complement(); Assert.Equal(u1, u2); Assert.Equal(u1, u3); Assert.Equal(u1, u4); i1 = s1.Intersect(s2); i2 = s1.Complement().Union(s2.Complement()).Complement(); i3 = s2.Intersect(s1); i4 = s2.Complement().Union(s1.Complement()).Complement(); Assert.Equal(i1, i2); Assert.Equal(i1, i3); Assert.Equal(i1, i4); } }