public void Power_LengthRaisedWith3_ReturnsVolume()
        {
            var    expected = new Volume(amount: 1.0, unit: Volume.CubicDeciMeter);
            var    len      = new Measure <Length>(amount: 1.0, unit: Length.DeciMeter);
            Volume actual; ArithmeticOperations.Power(len, iExponent: 3, oResult: out actual);

            MeasureAssert.AmountsAreEqual(expected, actual);
        }
        public void Divide_DivideAreaAndAreaToLength_Throws()
        {
            var    numerator   = new Area(amount: 8.0);
            var    denominator = new Area(amount: 200.0, unit: Area.SquareDeciMeter);
            Length throws;

            Assert.That(() => ArithmeticOperations.Divide(numerator, denominator, out throws),
                        Throws.TypeOf <InvalidOperationException>());
        }
        public void Times_MultiplyAreaAndAreaToVolume_Throws()
        {
            var    lhs = new Area(amount: 2.0);
            var    rhs = new Area(amount: 3.0);
            Volume throws;

            Assert.That(() => ArithmeticOperations.Times(lhs, rhs, out throws),
                        Throws.TypeOf <InvalidOperationException>());
        }
        public void Divide_DivideVolumeAndLength_ReturnsArea()
        {
            var  expected    = new Area(amount: 4.0);
            var  numerator   = new Volume(amount: 8.0);
            var  denominator = new Length(amount: 200.0, unit: Length.CentiMeter);
            Area actual; ArithmeticOperations.Divide(numerator, denominator, out actual);

            MeasureAssert.MeasuresAreEqual(expected, actual);
        }
        public void Times_MultiplyAreaAndLength_ReturnsVolume()
        {
            var    expected = new Volume(amount: 6.0);
            var    lhs      = new Area(amount: 2.0);
            var    rhs      = new Length(amount: 3.0);
            Volume actual; ArithmeticOperations.Times(lhs, rhs, out actual);

            MeasureAssert.MeasuresAreEqual(expected, actual);
        }