Example #1
0
        public void ModuloWithNoArgumentThrows()
        {
            var input = NumberValue.Create(6);

            var arguments = FilterArguments.Empty;
            var context   = new TemplateContext();

            Assert.Throws <ParseException>(() => NumberFilters.Modulo(input, arguments, context));
        }
Example #2
0
        public void TimesWithDecimalPointFromObject(string input, string argument, decimal expectedResult)
        {
            var inputA  = NumberValue.Create(input);
            var inputB  = new FilterArguments(NumberValue.Create(argument));
            var context = new TemplateContext();

            var result = NumberFilters.Times(inputA, inputB, context);

            Assert.Equal(expectedResult, result.Result.ToNumberValue());
        }
Example #3
0
        public void AtLeast(int value1, object value2, int expectedResult)
        {
            var input = NumberValue.Create(value1);

            var arguments = new FilterArguments(NumberValue.Create(value2, TemplateOptions.Default));
            var context   = new TemplateContext();

            var result = NumberFilters.AtLeast(input, arguments, context);

            Assert.Equal(expectedResult, result.Result.ToNumberValue());
        }
Example #4
0
        public void Abs(double value, double expectedResult)
        {
            var input = NumberValue.Create(value);

            var arguments = new FilterArguments();
            var context   = new TemplateContext();

            var result = NumberFilters.Abs(input, arguments, context);

            Assert.Equal(expectedResult, result.ToNumberValue());
        }
Example #5
0
        public void PlusConvertsObjectToNumber()
        {
            var input = new ObjectValue("6");

            var arguments = new FilterArguments(3);
            var context   = new TemplateContext();

            var result = NumberFilters.Plus(input, arguments, context);

            Assert.Equal(9, result.ToNumberValue());
        }
Example #6
0
        public void Plus()
        {
            var input = NumberValue.Create(6);

            var arguments = new FilterArguments('3');
            var context   = new TemplateContext();

            var result = NumberFilters.Plus(input, arguments, context);

            Assert.Equal(9, result.ToNumberValue());
        }
Example #7
0
        public void Floor()
        {
            var input = NumberValue.Create(4.6);

            var arguments = new FilterArguments();
            var context   = new TemplateContext();

            var result = NumberFilters.Floor(input, arguments, context);

            Assert.Equal(4, result.ToNumberValue());
        }
Example #8
0
        public void Modulo()
        {
            var input = NumberValue.Create(6);

            var arguments = new FilterArguments(4);
            var context   = new TemplateContext();

            var result = NumberFilters.Modulo(input, arguments, context);

            Assert.Equal(2, result.ToNumberValue());
        }
Example #9
0
        public void AtMost(int value1, object value2, int expectedResult)
        {
            var input = NumberValue.Create(value1);

            var arguments = new FilterArguments(NumberValue.Create(Convert.ToDouble(value2), value2 is int));
            var context   = new TemplateContext();

            var result = NumberFilters.AtMost(input, arguments, context);

            Assert.Equal(expectedResult, result.ToNumberValue());
        }
Example #10
0
        public void DividedByReturnsSameTypeAsDivisor(double value, object divisor, double expected)
        {
            var input = NumberValue.Create(value);

            var arguments = new FilterArguments(NumberValue.Create(Convert.ToDouble(divisor), divisor is int));
            var context   = new TemplateContext();

            var result = NumberFilters.DividedBy(input, arguments, context);

            Assert.Equal(expected, result.ToNumberValue());
        }
Example #11
0
        public void Round()
        {
            var input = NumberValue.Create(4.1234);

            var arguments = new FilterArguments(2);
            var context   = new TemplateContext();

            var result = NumberFilters.Round(input, arguments, context);

            Assert.Equal(4.12, result.ToNumberValue());
        }
Example #12
0
        public void OperationMaintainsScale()
        {
            var input = NumberValue.Create(6);

            var arguments = new FilterArguments(NumberValue.Create(3));
            var context   = new TemplateContext();

            var result = NumberFilters.Times(input, arguments, context);

            Assert.Equal("18", result.Result.ToStringValue());
        }
Example #13
0
        public void Minus()
        {
            var input = new NumberValue(6);

            var arguments = new FilterArguments(3);
            var context   = new TemplateContext();

            var result = NumberFilters.Minus(input, arguments, context);

            Assert.Equal(3, result.ToNumberValue());
        }
Example #14
0
        public void Ceil()
        {
            var input = new NumberValue(4.6);

            var arguments = new FilterArguments();
            var context   = new TemplateContext();

            var result = NumberFilters.Ceil(input, arguments, context);

            Assert.Equal(5, result.ToNumberValue());
        }
Example #15
0
        public void TimesMaintainsScale()
        {
            var input = NumberValue.Create(6);

            var arguments = new FilterArguments(1.0M);
            var context   = new TemplateContext();

            var result = NumberFilters.Times(input, arguments, context);

            Assert.Equal(6, result.ToNumberValue());
            Assert.Equal("6.0", result.ToStringValue());
        }
Example #16
0
        public void TimesCanChangeToFloat()
        {
            var input = NumberValue.Create(6, true);

            var arguments = new FilterArguments(1.0);
            var context   = new TemplateContext();

            var result = NumberFilters.Times(input, arguments, context);

            Assert.Equal(6, result.ToNumberValue());
            Assert.False(((NumberValue)result).IsIntegral);
        }
Example #17
0
        public void Times()
        {
            var input = new NumberValue(6, true);

            var arguments = new FilterArguments(3);
            var context   = new TemplateContext();

            var result = NumberFilters.Times(input, arguments, context);

            Assert.Equal(18, result.ToNumberValue());
            Assert.True(((NumberValue)result).IsIntegral);
        }
Example #18
0
        public void DividedByReturnsSameTypeAsDivisor(decimal value, string divisor, decimal expected)
        {
            // https://shopify.github.io/liquid/filters/divided_by/

            var input = NumberValue.Create(value);

            var arguments = new FilterArguments(NumberValue.Create(divisor));
            var context   = new TemplateContext();

            var result = NumberFilters.DividedBy(input, arguments, context);

            Assert.Equal(expected, result.Result.ToNumberValue());
        }