Example #1
0
        public void Should_not_throw_exception_on_division_by_zero(double value, double expectedValue)
        {
            var instance = new Milligram(value);
            var actual   = instance / 0d;

            Assert.AreEqual(expectedValue, actual.Value);
        }
Example #2
0
        public void Should_compare_with_null_instance(double value)
        {
            var instance = new Milligram(value);

            Assert.IsFalse(instance.Equals(null), "Equals");
            Assert.AreEqual(1, instance.CompareTo(null), "CompareTo");
        }
Example #3
0
        public void Should_initialize_instance(double value)
        {
            var actual = new Milligram(value);

            Assert.IsAssignableFrom <Milligram>(actual);
            Assert.AreEqual(value, actual.Value, nameof(actual.Value));
        }
Example #4
0
        public void Should_compare_with_another_type_of_instance(double value)
        {
            var    instance1 = new Milligram(value);
            object instance2 = value;

            Assert.IsFalse(instance1.Equals(instance2), "Equals");
            Assert.Throws <ArgumentException>(() => instance1.CompareTo(instance2), "CompareTo");
        }
Example #5
0
        public void Should_cast_to_double(double value)
        {
            var instance = new Milligram(value);

            var actual = (double)instance;

            Assert.AreEqual(value, actual);
        }
Example #6
0
        public void Should_cast_from_double(double value)
        {
            var expected = new Milligram(value);

            var actual = (Milligram)value;

            Assert.AreEqual(expected, actual);
        }
Example #7
0
        public void Should_divide_instance_by_double(double leftValue, double rightValue, double expectedValue)
        {
            var expected = new Milligram(expectedValue);

            var instance = new Milligram(leftValue);
            var actual   = instance / rightValue;

            Assert.AreEqual(expected, actual);
        }
Example #8
0
        public void Should_floor_value(double value, double expectedValue)
        {
            var expected = new Milligram(expectedValue);

            var instance = new Milligram(value);
            var actual   = instance.Floor();

            Assert.AreEqual(expected, actual);
        }
Example #9
0
        public void Should_format_string(string format, string mask)
        {
            var expected = string.Format(Consts.CultureEnUS, mask, 1.757899e2);

            var instance = new Milligram(1.757899e2);
            var actual   = instance.ToString(format, Consts.CultureEnUS);

            Assert.AreEqual(expected, actual);
        }
Example #10
0
        public void Should_own_a_HashCode(double value)
        {
            var expected = value.GetHashCode();

            var instance = new Milligram(value);
            var actual   = instance.GetHashCode();

            Assert.AreEqual(expected, actual);
        }
Example #11
0
        public void Should_round_value_withDigit(double value, double expectedValue)
        {
            var expected = new Milligram(expectedValue);

            var instance = new Milligram(value);
            var actual   = instance.Round(1);

            Assert.AreEqual(expected, actual);
        }
Example #12
0
        public void Should_convert_to_string(double value)
        {
            var expected = $"{value:e} mg";

            var instance = new Milligram(value);
            var actual   = instance.ToString();

            Assert.AreEqual(expected, actual);
        }
Example #13
0
        public void Should_roundvalue_withMode(MidpointRounding mode, double value, double expectedValue)
        {
            var expected = new Milligram(expectedValue);

            var instance = new Milligram(value);
            var actual   = instance.Round(mode);

            Assert.AreEqual(expected, actual);
        }
Example #14
0
        public void Should_multiply_double_by_instance(double leftValue, double rightValue, double expectedValue)
        {
            var expected = new Milligram(expectedValue);

            var instance = new Milligram(rightValue);

            var actual = leftValue * instance;

            Assert.AreEqual(expected, actual);
        }
Example #15
0
        public void Should_subtract_two_instances(double leftValue, double rightValue, double expectedValue)
        {
            var expected = new Milligram(expectedValue);

            var leftInstance  = new Milligram(leftValue);
            var rightInstance = new Milligram(rightValue);
            var actual        = leftInstance - rightInstance;

            Assert.AreEqual(expected, actual);
        }
Example #16
0
        public void Should_cast_from_Decigram(double decigramValue, double expectedValue)
        {
            var decigramInstance = new SystemOfUnits.Mass.Gram.Decigram(decigramValue);

            Milligram actual = decigramInstance;

            Assert.IsAssignableFrom <Milligram>(actual);

            var actualValue = actual.Value;

            Assert.AreEqual(expectedValue.ToString("E"), actualValue.ToString("E"));
        }
Example #17
0
        public void Should_compare_with_same_value(double value)
        {
            var baseInstance  = new Milligram(value);
            var otherInstance = new Milligram(value);

            Assert.IsTrue(baseInstance.Equals(otherInstance), "Equals");
            Assert.IsTrue(baseInstance.Equals((object)otherInstance), "Equals object");

            Assert.IsTrue(baseInstance == otherInstance, "==");
            Assert.IsFalse(baseInstance != otherInstance, "!=");

            Assert.AreEqual(0, baseInstance.CompareTo(otherInstance), "CompareTo");
            Assert.AreEqual(0, baseInstance.CompareTo((object)otherInstance), "CompareTo object");

            Assert.IsFalse(baseInstance < otherInstance, "<");
            Assert.IsFalse(baseInstance > otherInstance, ">");

            Assert.IsTrue(baseInstance <= otherInstance, "<=");
            Assert.IsTrue(baseInstance >= otherInstance, ">=");
        }
Example #18
0
        public void Should_compare_with_smaller_value(double baseValue, double smallerValue)
        {
            var baseInstance    = new Milligram(baseValue);
            var smallerInstance = new Milligram(smallerValue);

            Assert.IsFalse(baseInstance.Equals(smallerInstance), "Equals");
            Assert.IsFalse(baseInstance.Equals((object)smallerInstance), "Equals object");

            Assert.IsFalse(baseInstance == smallerInstance, "==");
            Assert.IsTrue(baseInstance != smallerInstance, "!=");

            Assert.AreEqual(+1, baseInstance.CompareTo(smallerInstance), "CompareTo");
            Assert.AreEqual(+1, baseInstance.CompareTo((object)smallerInstance), "CompareTo object");

            Assert.IsFalse(baseInstance < smallerInstance, "<");
            Assert.IsTrue(baseInstance > smallerInstance, ">");

            Assert.IsFalse(baseInstance <= smallerInstance, "<=");
            Assert.IsTrue(baseInstance >= smallerInstance, ">=");
        }
Example #19
0
        public void Should_compare_with_bigger_value(double baseValue, double biggerValue)
        {
            var baseInstance   = new Milligram(baseValue);
            var biggerInstance = new Milligram(biggerValue);

            Assert.IsFalse(baseInstance.Equals(biggerInstance), "Equals");
            Assert.IsFalse(baseInstance.Equals((object)biggerInstance), "Equals object");

            Assert.IsFalse(baseInstance == biggerInstance, "==");
            Assert.IsTrue(baseInstance != biggerInstance, "!=");

            Assert.AreEqual(-1, baseInstance.CompareTo(biggerInstance), "CompareTo");
            Assert.AreEqual(-1, baseInstance.CompareTo((object)biggerInstance), "CompareTo object");

            Assert.IsTrue(baseInstance < biggerInstance, "<");
            Assert.IsFalse(baseInstance > biggerInstance, ">");

            Assert.IsTrue(baseInstance <= biggerInstance, "<=");
            Assert.IsFalse(baseInstance >= biggerInstance, ">=");
        }
Example #20
0
        private static void MassConverter()
        {
            ICalculator calculator = new MassCalculator();

            Console.WriteLine("What mass unit do you want to convert from?");
            Console.WriteLine("Options: 1 for Milligrams, 2 for Grams, 3 for Kilograms, 4 for Ounces, 5 for Pounds, 6 for Stones");
            Console.WriteLine("Type 'exit' to stop the program.");
            var convertFrom = Console.ReadLine();

            while (!int.TryParse(convertFrom, out int number) || (Convert.ToInt32(convertFrom) < 1 || Convert.ToInt32(convertFrom) > 6))
            {
                Console.WriteLine("Error write only numbers and it must be between 1 and 6");
                Console.WriteLine("Type 'exit' to stop the program.");
                convertFrom = Console.ReadLine();

                if (convertFrom.ToLower() == "exit")
                {
                    break;
                }
            }

            Console.WriteLine("What mass unit do you want to convert to?");
            Console.WriteLine("Options: 1 for Milligrams, 2 for Grams, 3 for Kilograms, 4 for Ounces, 5 for Pounds, 6 for Stones");
            Console.WriteLine("Type 'exit' to stop the program.");
            var convertTo = Console.ReadLine();

            while (!int.TryParse(convertTo, out int number) || (Convert.ToInt32(convertTo) < 1 || Convert.ToInt32(convertTo) > 6))
            {
                Console.WriteLine("Error write only numbers and it must be between 1 and 6");
                Console.WriteLine("Type 'exit' to stop the program.");
                convertTo = Console.ReadLine();

                if (convertTo.ToLower() == "exit")
                {
                    break;
                }
            }

            Console.WriteLine("What is the value you want to convert?");
            var valueToConvert = Console.ReadLine();

            while (!double.TryParse(valueToConvert, out double number))
            {
                Console.WriteLine("Error write only numbers.");
                Console.WriteLine("Type 'exit' to stop the program.");
                valueToConvert = Console.ReadLine();

                if (valueToConvert.ToLower() == "exit")
                {
                    break;
                }
            }

            IUnit from = null;
            IUnit to   = null;

            double valueInDoubleToConvert = double.Parse(valueToConvert);

            switch (convertFrom)
            {
            case "1":
                from = new Milligram {
                    Value = valueInDoubleToConvert
                };
                break;

            case "2":
                from = new Gram {
                    Value = valueInDoubleToConvert
                };
                break;

            case "3":
                from = new Kilogram {
                    Value = valueInDoubleToConvert
                };
                break;

            case "4":
                from = new Ounce {
                    Value = valueInDoubleToConvert
                };
                break;

            case "5":
                from = new Pound {
                    Value = valueInDoubleToConvert
                };
                break;

            case "6":
                from = new Stone {
                    Value = valueInDoubleToConvert
                };
                break;
            }

            switch (convertTo)
            {
            case "1":
                to = new Milligram();
                break;

            case "2":
                to = new Gram();
                break;

            case "3":
                to = new Kilogram();
                break;

            case "4":
                to = new Ounce();
                break;

            case "5":
                to = new Pound();
                break;

            case "6":
                to = new Stone();
                break;
            }

            var result = calculator.Calculate(from, to);

            Console.WriteLine($"Well, {from.Value} {from.Name}(s) is equal to {result} {to.Name}(s).");
        }
Example #21
0
        public void Should_have_a_symbol(double value)
        {
            IUnit actual = new Milligram(value);

            Assert.AreEqual(Milligram.Symbol, actual.Symbol);
        }