public void Test_GenerateValueLessThan_WhenDoubleAndNoRule_ShouldRetValidValue()
        {
            IPropDef def = new PropDefFake {
                PropertyType = typeof(double)
            };
            var generator = new ValidValueGeneratorDouble(def);

            Assert.AreSame(typeof(double), def.PropertyType);
            Assert.IsEmpty(def.PropRules.OfType <PropRuleDouble>().ToList <PropRuleDouble>());
            var value = (double)generator.GenerateValidValueLessThan(-1.7976931348623157E+308);

            Assert.IsNotNull(value);
            Assert.GreaterOrEqual(value, double.MinValue);
            Assert.LessOrEqual(value, double.MinValue);
        }
        public void Test_GenerateValueLessThan_WhenDoubleAndRule_ShouldRetValidValue()
        {
            IPropDef def = new PropDefFake {
                PropertyType = typeof(double)
            };

            def.AddPropRule(CreatePropRuleDouble(3.0, double.MaxValue));
            var generator = new ValidValueGeneratorDouble(def);

            Assert.AreSame(typeof(double), def.PropertyType);
            Assert.IsNotEmpty(def.PropRules.OfType <PropRuleDouble>().ToList <PropRuleDouble>());
            var propRule = def.PropRules.OfType <PropRuleDouble>().First <PropRuleDouble>();

            Assert.AreEqual(3.0, propRule.MinValue);
            Assert.AreEqual(1.7976931348623157E+308, propRule.MaxValue);
            var value = (double)generator.GenerateValidValueLessThan(5.0);

            Assert.IsNotNull(value);
            Assert.GreaterOrEqual(value, 3.0);
            Assert.LessOrEqual(value, 5.0);
        }