示例#1
0
        public void measure_dimension_should_measure_formulated_units_to_basic_unit_properly(
            double fromValue, double expected)
        {
            var celcius = new BasicMeasureUnitTestBuilder()
                          .WithSymbol(new Symbol(MeasureUnitSymbolTestData.CelciusUnitSymbol))
                          .WithTitle("سلسیوس")
                          .BuildArg();

            var formulatedUnitBuilder = new FormulatedMeasureUnitTestBuilder();
            var farenheit             = formulatedUnitBuilder
                                        .WithSymbol(new Symbol(MeasureUnitSymbolTestData.FarenheitUnitSymbol))
                                        .WithTitle("فارنهایت")
                                        .WithConvertFormulaToBasicUnit("5 / 9 * (a - 32)")
                                        .WitCconvertFormulaFromBasicUnit("32 + (9 / 5 * a)")
                                        .BuildArg();

            var dimension = new MeasureDimensionTestBuilder()
                            .WithBasicMeasureUnitArg(celcius)
                            .WithFormulatedMeasureUnitArg(farenheit)
                            .Build();

            var arg = new MeasurementArg
            {
                FromValue      = fromValue,
                FromUnitSymbol = new Symbol(MeasureUnitSymbolTestData.FarenheitUnitSymbol),
                ToUnitSymbol   = new Symbol(MeasureUnitSymbolTestData.CelciusUnitSymbol)
            };

            var measuredValue = dimension.MeasureUnitsFor(arg, new FormulaExpressionEvaluator());

            Check.That(measuredValue).IsEqualTo(expected);
        }
示例#2
0
        for_measure_dimension_defining_new_coeffiecient_unit_should_throw_exception_when_formula_has_invliad_parenthesis_formart()
        {
            var basicUnit = new BasicMeasureUnitTestBuilder().BuildArg();

            var formulatedUnitBuilder = new FormulatedMeasureUnitTestBuilder();
            var farenheit             = formulatedUnitBuilder
                                        .WithConvertFormulaToBasicUnit("23 + ( (a+3)")
                                        .BuildArg();

            var dimension = new MeasureDimensionTestBuilder()
                            .WithBasicMeasureUnitArg(basicUnit)
                            .Build();

            Action action = () => dimension.DefineFormulatedUnit(farenheit);

            Check.ThatCode(action).Throws <ParenthesisAreNotBalanced>();
        }
示例#3
0
        public void measure_dimension_should_modify_formulated_units_properly()
        {
            var basicUnit = new BasicMeasureUnitTestBuilder().BuildArg();

            var formulatedUnitBuilder = new FormulatedMeasureUnitTestBuilder();
            var formulatedUnit        = formulatedUnitBuilder.BuildArg();

            var dimension = new MeasureDimensionTestBuilder()
                            .WithBasicMeasureUnitArg(basicUnit)
                            .WithFormulatedMeasureUnitArg(formulatedUnit)
                            .Build();

            var arg = formulatedUnitBuilder
                      .WithTitle("new title")
                      .WithTitleSlug("new slug")
                      .WitCconvertFormulaFromBasicUnit("changed formula")
                      .BuildArg();

            dimension.ModifyFormulatedUnit(arg);

            Check.That(dimension.MeasureUnits.First(c => c.Id == arg.Id))
            .Considering().All.Properties.IsEqualTo(arg);
        }
示例#4
0
        public void for_measure_dimension_new_formulated_units_should_be_defined_properly()
        {
            var celcius = new BasicMeasureUnitTestBuilder()
                          .WithSymbol(new Symbol(MeasureUnitSymbolTestData.CelciusUnitSymbol))
                          .WithTitle("سلسیوس")
                          .BuildArg();

            var formulatedUnitBuilder = new FormulatedMeasureUnitTestBuilder();
            var farenheit             = formulatedUnitBuilder
                                        .WithSymbol(new Symbol(MeasureUnitSymbolTestData.FarenheitUnitSymbol))
                                        .WithTitle("فارنهایت")
                                        .WithConvertFormulaToBasicUnit("my formula")
                                        .WitCconvertFormulaFromBasicUnit("my formula")
                                        .BuildArg();

            var dimension = new MeasureDimensionTestBuilder()
                            .WithBasicMeasureUnitArg(celcius)
                            .Build();

            dimension.DefineFormulatedUnit(farenheit);

            Check.That(dimension.MeasureUnits.First(c => c.Id == farenheit.Id))
            .Considering().All.Properties.IsEqualTo(farenheit);
        }