public RangeFieldTransformer(RangeField field) : base("range", field.Negate)
 {
     FieldType   = field.FieldType;
     Key         = field.Name;
     Left        = field.Left;
     Right       = field.Right;
     LeftClosed  = field.LeftClosed;
     RightClosed = field.RightClosed;
 }
Ejemplo n.º 2
0
        public void Verify_BaseOperatorShouldBeWork()
        {
            var myfield = new RangeField <int>(10, 20);

            myfield.Min.ShouldBe(10);
            myfield.Max.ShouldBe(20);

            myfield.MaxCompareMode.ShouldBe(CompareMode.LessThan);
            myfield.MinCompareMode.ShouldBe(CompareMode.GreaterThan);

            myfield.Min = 1000;
            myfield.Max = 2000;
            myfield.Min.ShouldBe(1000);
            myfield.Max.ShouldBe(2000);
        }
Ejemplo n.º 3
0
        public void Verify_RangedFieldLongIsStatisfy_ShouldBeWork()
        {
            var myfile = new RangeField <long>(10, 100);

            FieldCompareHelper.IsStatisfy(myfile, 9, 99).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, 9, 100).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, 10, 101).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, 10, -99).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, 10, 10).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, 10, 100).ShouldBe(false);

            FieldCompareHelper.IsStatisfy(myfile, 11, 50).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, 11, 99).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, 12, 45).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, 12, 98).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, 12, 97).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, 98, 99).ShouldBe(true);
        }
Ejemplo n.º 4
0
        public void Verify_RangedFieldDateTimeIsStatisfy_ShouldBeWork()
        {
            var dt1 = DateTime.Now;
            var dt2 = DateTime.Now.AddYears(1);

            var myfile = new RangeField <DateTime>(dt1, dt2);

            FieldCompareHelper.IsStatisfy(myfile, dt1, dt2).ShouldBe(false);

            FieldCompareHelper.IsStatisfy(myfile, dt1.AddDays(-1), dt2.AddDays(-1)).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, dt1.AddHours(-1), dt2.AddHours(-1)).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, dt1.AddMinutes(-1), dt2.AddMinutes(-1)).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, dt1.AddMinutes(-1), dt1.AddMinutes(-1)).ShouldBe(false);
            FieldCompareHelper.IsStatisfy(myfile, dt1.AddSeconds(-1), dt2.AddSeconds(-1)).ShouldBe(false);

            FieldCompareHelper.IsStatisfy(myfile, dt1.AddDays(1), dt2.AddSeconds(-1)).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, dt1.AddHours(1), dt2.AddHours(-1)).ShouldBe(true);
            FieldCompareHelper.IsStatisfy(myfile, dt1.AddMinutes(1), dt2.AddMinutes(-1)).ShouldBe(true);
        }
Ejemplo n.º 5
0
        public void Verify_SetPropertyShouldBeSecurity()
        {
            var myfield = new RangeField <int>(10, 20);

            // equal
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.Default; });
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.Equal; });
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.NotEqual; });

            // contains
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.Contains; });
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.NotContains; });

            // like
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.LeftLike; });
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.RightLike; });
            Assert.Throws <ArgumentException>(() => { myfield.MinCompareMode = CompareMode.FullSearchLike; });


            //------- MaxCompareMode ------//

            // equal
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.Default; });
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.Equal; });
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.NotEqual; });

            // contains
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.Contains; });
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.NotContains; });

            // like
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.LeftLike; });
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.RightLike; });
            Assert.Throws <ArgumentException>(() => { myfield.MaxCompareMode = CompareMode.FullSearchLike; });

            // should be work
            myfield.MaxCompareMode = CompareMode.LessThan;
            myfield.MinCompareMode = CompareMode.GreaterThan;
        }
Ejemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TPrimitive"></typeparam>
        /// <param name="field"></param>
        /// <param name="min"></param>
        /// <param name="max"></param>
        /// <returns></returns>
        public static bool IsStatisfy <TPrimitive>(RangeField <TPrimitive> field, TPrimitive min, TPrimitive max)
            where TPrimitive : struct, IConvertible, IComparable
        {
            var _min = field.Min.GetValueOrDefault();
            var _max = field.Max.GetValueOrDefault();

            var left  = false;
            var right = false;

            if (field.Min == null)
            {
                left = true;
            }
            else
            {
                if (field.MinCompareMode == CompareMode.GreaterThan)
                {
                    left = min.CompareTo(_min) > 0 && min.CompareTo(_max) < 0;
                }
            }
            if (field.Max == null)
            {
                right = true;
            }
            {
                if (field.MaxCompareMode == CompareMode.LessThan)
                {
                    right = max.CompareTo(_min) > 0 && max.CompareTo(_max) < 0;
                }
            }
            if (field.Min == null && field.Max == null)
            {
                return(false);
            }
            return(left && right);
        }
Ejemplo n.º 7
0
 private SearchNode(RangeField range)
 {
     Range = range;
     Type  = SearchNodeType.Range;
 }
Ejemplo n.º 8
0
 public static SearchNode RangeSearchNode(RangeField rangeField)
 {
     return(new SearchNode(rangeField));
 }