private void TestThatConcatenationYields(string left, string right, string expectedResult)
        {
            var leftExpr   = new StringLiteral(left);
            var rightExpr  = new StringLiteral(right);
            var concatExpr = new ConcatenationExpression(leftExpr, rightExpr);

            concatExpr.TryEvaluate(EmptyEnvironment, out string actualResult).Should().BeTrue();
            actualResult.Should().Be(expectedResult);
        }
        public void TestThatEvalFailsIfEitherExpressionCannotBeEvaluated()
        {
            var concat = new ConcatenationExpression(AnyUnevaluatableExpr, AnyEvaluatableExpr);

            concat.TryEvaluate(EmptyEnvironment, out string value).Should().BeFalse();

            concat = new ConcatenationExpression(AnyEvaluatableExpr, AnyUnevaluatableExpr);
            concat.TryEvaluate(EmptyEnvironment, out value).Should().BeFalse();
        }