Example #1
0
        public void TestPv2BoolParamType(string paramName, string description, string @group, bool defaultValue, string trueString, string falseString, Pv2ParamFlags flags)
        {
            SpanTestHelper.SerializeDeserializeTestBegin(_output.WriteLine);
            var type = new Pv2BoolParamType(paramName, description, @group, defaultValue, trueString, falseString, flags);

            ValidateParamType <bool, Pv2BoolParamType, Pv2BoolParamValue>(type, _output.WriteLine);
            ValidateParamValue <bool, Pv2BoolParamType, Pv2BoolParamValue>(type, true, _output.WriteLine);
            ValidateParamValue <bool, Pv2BoolParamType, Pv2BoolParamValue>(type, false, _output.WriteLine);
        }
Example #2
0
        public void TestPv2EnumParamValue(string paramName, string description, string @group, string defaultValue, Pv2ParamFlags flags, string[] items)
        {
            SpanTestHelper.SerializeDeserializeTestBegin(_output.WriteLine);
            var type = new Pv2EnumParamType(paramName, description, @group, defaultValue, flags, items);

            ValidateParamType <string, Pv2EnumParamType, Pv2EnumParamValue>(type, _output.WriteLine);
            ValidateParamValue <string, Pv2EnumParamType, Pv2EnumParamValue>(type, type.DefaultValue, _output.WriteLine);
            ValidateParamValue <string, Pv2EnumParamType, Pv2EnumParamValue>(type, "item1", _output.WriteLine);
        }
Example #3
0
        public void TestPv2DoubleParamType(string paramName, string description, string Gr1, string formatString, string units, double min, double max, double defaultValue, Pv2ParamFlags flags = Pv2ParamFlags.NoFlags)
        {
            SpanTestHelper.SerializeDeserializeTestBegin(_output.WriteLine);
            var random = new Random();
            var type   = new Pv2DoubleParamType(paramName, description, Gr1, formatString, units, min, max, defaultValue, flags);

            ValidateParamType <double, Pv2DoubleParamType, Pv2DoubleParamValue>(type, _output.WriteLine);

            ValidateParamValue <double, Pv2DoubleParamType, Pv2DoubleParamValue>(type, type.Max, _output.WriteLine);
            ValidateParamValue <double, Pv2DoubleParamType, Pv2DoubleParamValue>(type, type.Min, _output.WriteLine);
            ValidateParamValue <double, Pv2DoubleParamType, Pv2DoubleParamValue>(type, type.DefaultValue, _output.WriteLine);

            for (var i = 0; i < 10; i++)
            {
                var realValue = type.Min + Math.Abs(type.Max - type.Min) * random.NextDouble();
                ValidateParamValue <double, Pv2DoubleParamType, Pv2DoubleParamValue>(type, realValue, _output.WriteLine);
            }
        }
Example #4
0
        public void TestPv2IntParamType(string paramName, string description, string Gr1, string formatString, string units, int min = int.MinValue, int max = int.MaxValue, int defaultValue = 0, Pv2ParamFlags flags = Pv2ParamFlags.NoFlags)
        {
            SpanTestHelper.SerializeDeserializeTestBegin(_output.WriteLine);
            var random = new Random();
            var type   = new Pv2IntParamType(paramName, description, Gr1, formatString, units, min, max, defaultValue, flags);

            ValidateParamType <int, Pv2IntParamType, Pv2IntParamValue>(type, _output.WriteLine);

            ValidateParamValue <int, Pv2IntParamType, Pv2IntParamValue>(type, type.Max, _output.WriteLine);
            ValidateParamValue <int, Pv2IntParamType, Pv2IntParamValue>(type, type.Min, _output.WriteLine);
            ValidateParamValue <int, Pv2IntParamType, Pv2IntParamValue>(type, type.DefaultValue, _output.WriteLine);

            for (var i = 0; i < 10; i++)
            {
                var realValue = random.Next(type.Min, type.Max);
                ValidateParamValue <int, Pv2IntParamType, Pv2IntParamValue>(type, realValue, _output.WriteLine);
            }
        }
Example #5
0
        public void TestPv2StringParamType(string paramName, string description, string @group, string defaultValue, uint maxLength, Pv2ParamFlags flags = Pv2ParamFlags.NoFlags)
        {
            SpanTestHelper.SerializeDeserializeTestBegin(_output.WriteLine);
            var random = new Random();
            var type   = new Pv2StringParamType(paramName, description, @group, defaultValue, maxLength, flags);

            ValidateParamType <string, Pv2StringParamType, Pv2StringParamValue>(type, _output.WriteLine);

            ValidateParamValue <string, Pv2StringParamType, Pv2StringParamValue>(type, string.Empty.LeftMargin((int)type.MaxLength), _output.WriteLine);
            ValidateParamValue <string, Pv2StringParamType, Pv2StringParamValue>(type, string.Empty, _output.WriteLine);
            ValidateParamValue <string, Pv2StringParamType, Pv2StringParamValue>(type, type.DefaultValue, _output.WriteLine);

            for (var i = 0; i < 10; i++)
            {
                var realValue = random.Next().ToString();
                ValidateParamValue <string, Pv2StringParamType, Pv2StringParamValue>(type, realValue, _output.WriteLine);
            }
        }
Example #6
0
        private static void ValidateParamValue <TValue, TType, TParamValue>(TType type, TValue value, Action <string> output = null)
            where TType : Pv2ParamType <TValue, TParamValue>, new()
            where TParamValue : Pv2ParamValue, new()
        {
            var config = new InMemoryConfiguration();
            var val    = type.CreateValue();

            val.Index = (uint)new Random().Next(0, 999);
            var realValue = value;

            type.SetValue(val, realValue);
            type.ValidateValue(val);
            var toString = $"{value, 5} => {type.ConvertToString(val)}";

            type.WriteToConfig(config, "TEST", val);
            Assert.Equal(realValue, type.GetValue(type.ReadFromConfig(config, "TEST")));
            Assert.Equal(realValue, type.GetValue(val));
            SpanTestHelper.TestType((TParamValue)val, output, toString);
        }
Example #7
0
 private static void ValidateParamType <TValue, TType, TParamValue>(TType type, Action <string> output = null)
     where TType : Pv2ParamType <TValue, TParamValue>, new() where TParamValue : Pv2ParamValue
 {
     type.ValidateSize();
     SpanTestHelper.TestType(type, output);
 }
Example #8
0
 public void TestPv2FlagsParamType(string paramName, string description, string groupName, string trueTitle, string falseTitle, Pv2ParamFlags flags)
 {
     SpanTestHelper.SerializeDeserializeTestBegin(_output.WriteLine);
     var size  = new Random().Next(5, 10);
     var items = new (string, bool)[size];