Пример #1
0
        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"));
        }
Пример #2
0
        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"));
        }
Пример #3
0
        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[]);
            }
        }
Пример #4
0
        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);
            }
        }