Ejemplo n.º 1
0
 public void FailWithEmptySingularName()
 {
     Assert.Throws <ArgumentException>(() =>
     {
         var unit = new XCalculateLib.Unit(string.Empty);
     });
 }
Ejemplo n.º 2
0
 public void FailWithNullSingularName()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var unit = new XCalculateLib.Unit(null);
     });
 }
Ejemplo n.º 3
0
        public void ReturnFalseWhenComparingAgainstNull()
        {
            var nameSingular1        = "foobar1";
            var namePlural1          = "foobar1s";
            var abreviationSingular1 = "fb1";
            var abreviationPlural1   = "fb1s";

            var unit1 = new XCalculateLib.Unit(nameSingular1, namePlural1, abreviationSingular1, abreviationPlural1);

            Assert.False(unit1.Equals(null));
        }
Ejemplo n.º 4
0
        public void SuccessfullyCreateObjectWithMinimalArguments()
        {
            var nameSingular = "Foobar";

            var unit = new XCalculateLib.Unit(nameSingular);

            Assert.NotNull(unit);
            Assert.Equal(nameSingular, unit.NameSingular);
            Assert.Null(unit.NamePlural);
            Assert.Null(unit.AbreviationPlural);
            Assert.Null(unit.AbreviationSingular);
        }
Ejemplo n.º 5
0
        public void SuccessfullyFormatValueOfMoreThanOneWithMinimalArgumentsWhenConstructed()
        {
            var value        = 2.0;
            var nameSingular = "Foobar";

            var unit = new XCalculateLib.Unit(nameSingular);

            var nameFormat        = unit.Format(value);
            var abreviationFormat = unit.Format(value, true);

            Assert.Equal($"{value}", nameFormat);
            Assert.Equal($"{value}", abreviationFormat);
        }
        public void FailToCreateObjectWithInvalidValue()
        {
            var defaultValue = new int[] { 1, 2, 3 };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(object i) => ((int[])i).Length >= 0 && ((int[])i).Length < 3;

            Assert.Throws <ArgumentException>(() =>
            {
                var value = new AgnosticArrayValue(defaultValue, new ValueInfo(name, description, unit), validator);
            });
        }
        public void FailWhenValueIsInvalid()
        {
            var defaultValue = new int[] { 1, 2, 30 };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(int[] i) => i.Length >= 0 && i.Length < 10 && i.All(j => j > 0 && j < 10);

            Assert.Throws <ArgumentException>(() =>
            {
                var value = new ArrayValue <int[]>(defaultValue, new ValueInfo(name, description, unit), validator);
            });
        }
Ejemplo n.º 8
0
        public void FailWhenValueIsInvalid()
        {
            var defaultValue = 123;
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(int i) => i >= 0 && i < 100;

            Assert.Throws <ArgumentException>(() =>
            {
                var value = new Value <int>(defaultValue, new ValueInfo(name, description, unit), validator);
            });
        }
Ejemplo n.º 9
0
        public void FailToCreateObjectWithInvalidValue()
        {
            var defaultValue = 123;
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(object i) => (int)i >= 0 && (int)i < 100;

            Assert.Throws <ArgumentException>(() =>
            {
                var value = new AgnosticValue(defaultValue, new ValueInfo(name, description, unit), validator);
            });
        }
Ejemplo n.º 10
0
        public void SuccessfullyFormatValueOfOne()
        {
            var value               = 1.0;
            var nameSingular        = "foobar";
            var namePlural          = "foobars";
            var abreviationSingular = "fb";
            var abreviationPlural   = "fbs";

            var unit = new XCalculateLib.Unit(nameSingular, namePlural, abreviationSingular, abreviationPlural);

            var nameFormat        = unit.Format(value);
            var abreviationFormat = unit.Format(value, true);

            Assert.Equal($"{value} {nameSingular}", nameFormat);
            Assert.Equal($"{value} {abreviationSingular}", abreviationFormat);
        }
Ejemplo n.º 11
0
        public void ReturnFalseWhenComparingTwoUnequalUnits()
        {
            var nameSingular1        = "foobar1";
            var namePlural1          = "foobar1s";
            var abreviationSingular1 = "fb1";
            var abreviationPlural1   = "fb1s";

            var nameSingular2        = "foobar2";
            var namePlural2          = "foobar2s";
            var abreviationSingular2 = "fb2";
            var abreviationPlural2   = "fb2s";

            var unit1 = new XCalculateLib.Unit(nameSingular1, namePlural1, abreviationSingular1, abreviationPlural1);
            var unit2 = new XCalculateLib.Unit(nameSingular2, namePlural2, abreviationSingular2, abreviationPlural2);

            Assert.False(unit1.Equals(unit2));
        }
Ejemplo n.º 12
0
        public void FailToSetNewValueThatIsInvalid()
        {
            var defaultValue = 123;
            var newValue     = 321.0;
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(object i) => TypeConverter.ToObject <int>(i) > 0 && TypeConverter.ToObject <int>(i) < 200;

            var value = new AgnosticValue(defaultValue, new ValueInfo(name, description, unit), validator);

            Assert.Throws <ArgumentException>(() =>
            {
                value.Value = newValue;
            });
        }
Ejemplo n.º 13
0
        public void ReturnTrueWhenComparingTwoEqualUnits()
        {
            var nameSingular1        = "foobar";
            var namePlural1          = "foobars";
            var abreviationSingular1 = "fb";
            var abreviationPlural1   = "fbs";

            var nameSingular2        = "foobar";
            var namePlural2          = "foobars";
            var abreviationSingular2 = "fb";
            var abreviationPlural2   = "fbs";

            var unit1 = new XCalculateLib.Unit(nameSingular1, namePlural1, abreviationSingular1, abreviationPlural1);
            var unit2 = new XCalculateLib.Unit(nameSingular2, namePlural2, abreviationSingular2, abreviationPlural2);

            Assert.True(unit1.Equals(unit2));
        }
        public void SuccessfullyCreateObjectWithNullValue()
        {
            Array defaultValue = null;
            var   name         = "foobar";
            var   description  = "foobar description";
            var   unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(object i) => true;

            var value = new AgnosticArrayValue(defaultValue, new ValueInfo(name, description, unit), validator);

            Assert.NotNull(value);
            Assert.Null(value.Value);
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
Ejemplo n.º 15
0
        public void SuccessfullyMapDateTimeWithArguments()
        {
            var type         = typeof(DateTime);
            var defaultValue = DateTime.Now;
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");
            var validator    = new ValueValidator <DateTime>(i => i > DateTime.MinValue && i <= DateTime.Now);

            var value = ValueTypeMapper.TypeToValue(type, () => new object[] { defaultValue, new ValueInfo(name, description, unit), validator });

            Assert.NotNull(value as DateTimeValue);
            Assert.Equal(defaultValue, value.Value);
            Assert.Equal(type, value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
Ejemplo n.º 16
0
        public void SuccesfullyCreateObjectWithAllArguments()
        {
            var defaultValue = 123;
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(object i) => (int)i >= 0 && (int)i < 200;

            var value = new AgnosticValue(defaultValue, new ValueInfo(name, description, unit), validator);

            Assert.NotNull(value);
            Assert.Equal(defaultValue, value.Value);
            Assert.Equal(defaultValue.GetType(), value.ValueType);
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
Ejemplo n.º 17
0
        public void SuccessfullyMapInt16WithArguments()
        {
            var type         = typeof(short);
            var defaultValue = (short)123;
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");
            var validator    = new ValueValidator <short>(i => i > 0 && i < 200);

            var value = ValueTypeMapper.TypeToValue(type, () => new object[] { defaultValue, new ValueInfo(name, description, unit), validator });

            Assert.NotNull(value as Int16Value);
            Assert.Equal(defaultValue, value.Value);
            Assert.Equal(type, value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
Ejemplo n.º 18
0
        public void SuccessfullyMapStringWithArguments()
        {
            var type         = typeof(string);
            var defaultValue = "hello world";
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");
            var validator    = new ValueValidator <string>(i => i.Length > 0 && i.Length < 64);

            var value = ValueTypeMapper.TypeToValue(type, () => new object[] { defaultValue, new ValueInfo(name, description, unit), validator });

            Assert.NotNull(value as StringValue);
            Assert.Equal(defaultValue, value.Value);
            Assert.Equal(type, value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
        public void FailToSetNewValueThatIsInvalid()
        {
            var defaultValue = new int[] { 1, 2, 3 };
            var newValue     = new int[] { 4, 5, 6, 7 };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(Array i)
            {
                return(i.Length > 0 && i.Length <= 3);
            }

            var value = new AgnosticArrayValue(defaultValue, new ValueInfo(name, description, unit), validator);

            Assert.Throws <ArgumentException>(() =>
            {
                value.Value = newValue;
            });
        }
        public void SuccesfullyCreateObjectWithAllArguments()
        {
            var defaultValue = new int[] { 1, 2, 3 };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(object i) => ((int[])i).Length >= 0 && ((int[])i).Length < 200;

            var value = new AgnosticArrayValue(defaultValue, new ValueInfo(name, description, unit), validator);

            Assert.NotNull(value);
            Assert.Collection((int[])value.Value,
                              i => Assert.Equal(defaultValue[0], i),
                              i => Assert.Equal(defaultValue[1], i),
                              i => Assert.Equal(defaultValue[2], i));
            Assert.Equal(defaultValue.GetType(), value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
Ejemplo n.º 21
0
        public void SuccessfullyMapStringArrayWithArguments()
        {
            var type         = typeof(string[]);
            var defaultValue = new string[] { "hello world1", "hello world2", "hello world3" };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");
            var range        = new Range(0, 127);
            var validator    = new ValueValidator <string[]>(i => i.Length > 0 && i.Length < 64);

            var value = ValueTypeMapper.TypeToArrayValue(type, () => new object[] { defaultValue, new ValueInfo(name, description, unit), validator });

            Assert.NotNull(value as StringArrayValue);
            Assert.Collection(defaultValue,
                              i => Assert.Equal(defaultValue[0], i),
                              i => Assert.Equal(defaultValue[1], i),
                              i => Assert.Equal(defaultValue[2], i));
            Assert.Equal(type, value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
        public void SuccessfullyCreateObjectWithAllArguments()
        {
            var defaultValue = new int[] { 1, 2, 3 };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");

            bool validator(int[] i) => i.Length >= 0 && i.Length < 10 && i.All(j => j > 0 && j < 10);

            var value = new ArrayValue <int[]>(defaultValue, new ValueInfo(name, description, unit), validator);

            Assert.NotNull(value);
            Assert.Collection(value.Value,
                              i => Assert.Equal(defaultValue[0], i),
                              i => Assert.Equal(defaultValue[1], i),
                              i => Assert.Equal(defaultValue[2], i));
            Assert.Equal(defaultValue.GetType(), value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
            Assert.True(value.IsArrayValue);
        }
Ejemplo n.º 23
0
        public void SuccessfullyMapUInt64ArrayWithArguments()
        {
            var type         = typeof(ulong[]);
            var defaultValue = new ulong[] { 0, 1, 3 };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");
            var range        = new Range(0, 127);
            var validator    = new ValueValidator <ulong[]>(i => i.Length < 64 && i.All(j => j >= 0 && j < 200));

            var value = ValueTypeMapper.TypeToArrayValue(type, () => new object[] { defaultValue, new ValueInfo(name, description, unit), validator });

            Assert.NotNull(value as UInt64ArrayValue);
            Assert.Collection(defaultValue,
                              i => Assert.Equal(defaultValue[0], i),
                              i => Assert.Equal(defaultValue[1], i),
                              i => Assert.Equal(defaultValue[2], i));
            Assert.Equal(type, value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }
Ejemplo n.º 24
0
        public void SuccessfullyMapDateTimeArrayWithArguments()
        {
            var type         = typeof(DateTime[]);
            var defaultValue = new DateTime[] { DateTime.Now, DateTime.Now.AddDays(-1), DateTime.Now.AddDays(-2) };
            var name         = "foobar";
            var description  = "foobar description";
            var unit         = new XCalculateLib.Unit("foobar", "foobars", "fb", "fbs");
            var range        = new Range(0, 127);
            var validator    = new ValueValidator <DateTime[]>(i => i.Length < 64 && i.All(j => j >= DateTime.MinValue && j <= DateTime.Now));

            var value = ValueTypeMapper.TypeToArrayValue(type, () => new object[] { defaultValue, new ValueInfo(name, description, unit), validator });

            Assert.NotNull(value as DateTimeArrayValue);
            Assert.Collection(defaultValue,
                              i => Assert.Equal(defaultValue[0], i),
                              i => Assert.Equal(defaultValue[1], i),
                              i => Assert.Equal(defaultValue[2], i));
            Assert.Equal(type, value.Value.GetType());
            Assert.NotNull(value.Info);
            Assert.Equal(name, value.Info.Name);
            Assert.Equal(description, value.Info.Description);
            Assert.Equal(unit, value.Info.Unit);
        }