Ejemplo n.º 1
0
        public PossibleValueSet OrElse(PossibleValueSet pvs)
        {
            /*
             * T || T == T
             * T || F == T
             * T || N == T
             * F || T == T
             * F || F == F
             * F || N == N
             * N || T == T
             * N || F == N
             * N || N == N
             */

            CheckType <bool>();
            pvs.CheckType <bool>();

            PossibleValueSet result = new PossibleValueSet(typeof(bool));

            if (Contains(true) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(true) && pvs.Contains(false) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(true) && pvs.Contains(null) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(false) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(false) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(false) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }
            if (Contains(null) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(null) && pvs.Contains(false))
            {
                result.ContainsNull = true;
            }
            if (Contains(null) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }

            return(result);
        }
Ejemplo n.º 2
0
        public PossibleValueSet AndAlso(PossibleValueSet pvs)
        {
            /*
             * T && T == T
             * T && F == F
             * T && N == N
             * F && T == F
             * F && F == F
             * F && N == F
             * N && T == N
             * N && F == F
             * N && N == N
             */

            CheckType <bool>();
            pvs.CheckType <bool>();
            PossibleValueSet result = new PossibleValueSet(typeof(bool));

            if (Contains(true) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(true) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(true) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }
            if (Contains(false) && pvs.Contains(true) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(false) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(false) && pvs.Contains(null) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(null) && pvs.Contains(true))
            {
                result.ContainsNull = true;
            }
            if (Contains(null) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(null) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }

            return(result);
        }
Ejemplo n.º 3
0
        public PossibleValueSet OrElse(PossibleValueSet pvs)
        {
            /*
             * T || T == T
             * T || F == T
             * T || N == T
             * F || T == T
             * F || F == F
             * F || N == N
             * N || T == T
             * N || F == N
             * N || N == N
             */

            var result = new PossibleValueSet(DetermineBoolType(pvs));

            if (Contains(true) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(true) && pvs.Contains(false) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(true) && pvs.Contains(null) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(false) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(false) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(false) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }
            if (Contains(null) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(null) && pvs.Contains(false))
            {
                result.ContainsNull = true;
            }
            if (Contains(null) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }

            return(result);
        }
Ejemplo n.º 4
0
        public PossibleValueSet AndAlso(PossibleValueSet pvs)
        {
            /*
             * T && T == T
             * T && F == F
             * T && N == N
             * F && T == F
             * F && F == F
             * F && N == F
             * N && T == N
             * N && F == F
             * N && N == N
             */

            var result = new PossibleValueSet(DetermineBoolType(pvs));

            if (Contains(true) && pvs.Contains(true) && !result.Contains(true))
            {
                result.DistinctValues.Add(true);
            }
            if (Contains(true) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(true) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }
            if (Contains(false) && pvs.Contains(true) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(false) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(false) && pvs.Contains(null) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(null) && pvs.Contains(true))
            {
                result.ContainsNull = true;
            }
            if (Contains(null) && pvs.Contains(false) && !result.Contains(false))
            {
                result.DistinctValues.Add(false);
            }
            if (Contains(null) && pvs.Contains(null))
            {
                result.ContainsNull = true;
            }

            return(result);
        }
Ejemplo n.º 5
0
        public PossibleValueSet OrElse(PossibleValueSet pvs)
        {
            /*
             * T || T == T
             * T || F == T
             * T || N == T
             * F || T == T
             * F || F == F
             * F || N == N
             * N || T == T
             * N || F == N
             * N || N == N
             */

            var result = new PossibleValueSet(DetermineBoolType(pvs));

            if (Contains(true) && pvs.Contains(true) && !result.Contains(true)) result.DistinctValues.Add(true);
            if (Contains(true) && pvs.Contains(false) && !result.Contains(true)) result.DistinctValues.Add(true);
            if (Contains(true) && pvs.Contains(null) && !result.Contains(true)) result.DistinctValues.Add(true);
            if (Contains(false) && pvs.Contains(true) && !result.Contains(true)) result.DistinctValues.Add(true);
            if (Contains(false) && pvs.Contains(false) && !result.Contains(false)) result.DistinctValues.Add(false);
            if (Contains(false) && pvs.Contains(null)) result.ContainsNull = true;
            if (Contains(null) && pvs.Contains(true) && !result.Contains(true)) result.DistinctValues.Add(true);
            if (Contains(null) && pvs.Contains(false)) result.ContainsNull = true;
            if (Contains(null) && pvs.Contains(null)) result.ContainsNull = true;

            return result;
        }
Ejemplo n.º 6
0
        public PossibleValueSet AndAlso(PossibleValueSet pvs)
        {
            /*
             * T && T == T
             * T && F == F
             * T && N == N
             * F && T == F
             * F && F == F
             * F && N == F
             * N && T == N
             * N && F == F
             * N && N == N
             */

            var result = new PossibleValueSet(DetermineBoolType(pvs));
            
            if (Contains(true) && pvs.Contains(true) && !result.Contains(true)) result.DistinctValues.Add(true);
            if (Contains(true) && pvs.Contains(false) && !result.Contains(false)) result.DistinctValues.Add(false);
            if (Contains(true) && pvs.Contains(null)) result.ContainsNull = true;
            if (Contains(false) && pvs.Contains(true) && !result.Contains(false)) result.DistinctValues.Add(false);
            if (Contains(false) && pvs.Contains(false) && !result.Contains(false)) result.DistinctValues.Add(false);
            if (Contains(false) && pvs.Contains(null) && !result.Contains(false)) result.DistinctValues.Add(false);
            if (Contains(null) && pvs.Contains(true)) result.ContainsNull = true;
            if (Contains(null) && pvs.Contains(false) && !result.Contains(false)) result.DistinctValues.Add(false);
            if (Contains(null) && pvs.Contains(null)) result.ContainsNull = true;

            return result;
        }