Пример #1
0
        public void InBetweenScalingIsMultiplicative()
        {
            var leftOperand    = new Kilo();
            var rightOperand   = new Hecto();
            var multiplication = leftOperand.Exponent + rightOperand.Exponent;
            var operation      = Normalisers.Get(multiplication);

            IsMultiply(operation);
        }
Пример #2
0
        public void InBetweenScalingIsBasedOnLargerOfBothOperands()
        {
            var largerOperand   = new Mega();
            var inBetweenPrefix = new Hecto();
            var expectedPrefix  = new Mega();
            var multiplication  = largerOperand.Exponent + inBetweenPrefix.Exponent;
            var operation       = Normalisers.Get(multiplication);

            Assert.Equal(expectedPrefix.Exponent, operation.Exponent);
        }
Пример #3
0
        public void VeryLargeResultantExponentsAreSupported()
        {
            var   leftOperand         = new Exa();
            var   rightOperand        = new Tera();
            Int32 multiplication      = leftOperand.Exponent + rightOperand.Exponent;
            var   expectedScaleFactor = Math.Pow(10, multiplication - Normalisers.Largest.Exponent);
            var   resultantOperator   = Normalisers.Get(multiplication);

            Assert.Equal(Normalisers.Largest.Exponent, resultantOperator.Exponent);
        }
Пример #4
0
        public void VerySmallResultantExponentsAreSupported()
        {
            // ToDo!
            var nominator           = new Femto();
            var denominator         = new Peta();
            var division            = nominator.Exponent - denominator.Exponent;
            var expectedScaleFactor = Math.Pow(10, division - Normalisers.Smallest.Exponent);
            var resultantOperator   = Normalisers.Get(division);

            Assert.Equal(Normalisers.Smallest.Exponent, resultantOperator.Exponent);
        }
Пример #5
0
        public void AllPrefixExponentsHaveNoOpOperators()
        {
            var nonNoOps = new Dictionary <Prefix, Normaliser>();

            foreach (var prefix in Prefixes.Prefixes.All)
            {
                var operation = Normalisers.Get(prefix.Exponent);
                if (IsNoOp(operation))
                {
                    continue;
                }
                nonNoOps.Add(prefix, operation);
            }
            Assert.Equal(Array.Empty <Prefix>(), nonNoOps.Keys);
        }
Пример #6
0
        public void VerySmallResultantExponentsDivide()
        {
            var operation = Normalisers.Get(Normalisers.Smallest.Exponent - 3);

            IsDivide(operation);
        }
Пример #7
0
        public void VeryLargeResultantExponentsMultiply()
        {
            var operation = Normalisers.Get(Normalisers.Largest.Exponent + 3);

            IsMultiply(operation);
        }