Example #1
0
 public override LiquidExpressionResult ApplyTo(ITemplateContext ctx, LiquidRange liquidGeneratorExpression)
 {
     //return GetSize(liquidGeneratorExpression, () => LiquidNumeric.Create(liquidGeneratorExpression.Length));
     return(liquidGeneratorExpression == null
         ? SizeOfNil()
         : LiquidExpressionResult.Success(LiquidNumeric.Create(liquidGeneratorExpression.Length)));
 }
        public void It_Should_Determine_The_Length_Of_a_Descending_Generator()
        {
            // Arrange
            var generatorValue = new LiquidRange(LiquidNumeric.Create(5), LiquidNumeric.Create(2));

            // Assert
            Assert.Equal(4, generatorValue.Length);
        }
Example #3
0
        public void It_Should_Determine_The_Length_Of_a_Generator()
        {
            // Arrange
            var generatorValue = new LiquidRange(LiquidNumeric.Create(2), LiquidNumeric.Create(5));

            // Assert
            Assert.That(generatorValue.Length, Is.EqualTo(4));
        }
        public void It_Should_Generate_Some_Values(int start, int end, int[] expected)
        {
            // Arrange
            var generatorValue = new LiquidRange(LiquidNumeric.Create(start), LiquidNumeric.Create(end));

            // Act
            var result = generatorValue.AsEnumerable();

            // Assert
            Assert.Equal(expected.ToList(), result.Select(x => Convert.ToInt32(x.Value)));
        }
Example #5
0
        public void A_Generator_Value_Should_Return_The_Size()
        {
            // Arrange
            var strVal = new LiquidRange(LiquidNumeric.Create(3), LiquidNumeric.Create(10));
            var filter = new SizeFilter();

            // Act
            var result = filter.Apply(new TemplateContext(), strVal).SuccessValue <LiquidNumeric>();

            // Assert
            Assert.Equal(8, result.Value);
        }
        public void It_Should_Generate_Some_Values_Descending()
        {
            // Arrange
            var generatorValue = new LiquidRange(LiquidNumeric.Create(5), LiquidNumeric.Create(2));

            // Act
            var result = generatorValue.AsEnumerable();

            // Assert
            Assert.Equal(new List <int> {
                5, 4, 3, 2
            }, result.Select(x => Convert.ToInt32(x.Value)));
        }
Example #7
0
        public IEnumerable <ILiquidValue> Eval(ITemplateContext templateContext)
        {
            if (_startExpression == null)
            {
                // this shouldn't happen
                throw new Exception("The Generator start expression is null");
            }
            if (_endExpression == null)
            {
                // this shouldn't happen
                throw new Exception("The Generator end expression is null");
            }
            var startValue = ValueAsNumeric(_startExpression, templateContext);
            var endValue   = ValueAsNumeric(_endExpression, templateContext);
            //Console.WriteLine("*** Generating sequence from "+ startValue.IntValue+ " to " +endValue.IntValue);
            var generatorValue = new LiquidRange(startValue, endValue);

            return(generatorValue);
        }
Example #8
0
 public virtual LiquidExpressionResult ApplyTo(ITemplateContext ctx, LiquidRange val)
 {
     //throw new Exception("Need to figure out how to do this part");
     return(ApplyTo(ctx, (ILiquidValue)val));
 }