Example #1
0
        protected void EvalExpression(string expr, double?expected, bool hasEvaluationError = false,
                                      Dictionary <string, ushort> symbols = null)
        {
            var assembler = new Z80Assembler();

            assembler.Compile("");
            if (symbols != null)
            {
                foreach (var pair in symbols)
                {
                    assembler.SetSymbolValue(pair.Key, new ExpressionValue(pair.Value));
                }
            }
            var exprNode = ParseExpr(expr);
            var result   = assembler.Eval(null, exprNode);

            if (expected == null)
            {
                result.ShouldBeNull();
            }
            else
            {
                Math.Abs(Math.Round(result.AsReal(), 8) - Math.Round(expected.Value, 8)).ShouldBeLessThanOrEqualTo(10 * double.Epsilon);
            }
            if (hasEvaluationError)
            {
                exprNode.EvaluationError.ShouldNotBeNull();
            }
        }
Example #2
0
        protected void EvalExpression(string expr, ushort?expected, bool hasEvaluationError = false,
                                      Dictionary <string, ushort> symbols = null)
        {
            var assembler = new Z80Assembler();

            assembler.Compile("");
            if (symbols != null)
            {
                foreach (var pair in symbols)
                {
                    assembler.SetSymbolValue(pair.Key, new ExpressionValue(pair.Value));
                }
            }
            var exprNode = ParseExpr(expr);
            var result   = assembler.Eval(null, exprNode);

            if (expected == null)
            {
                result.ShouldBeNull();
            }
            else
            {
                result.Value.ShouldBe(expected.Value);
            }
            if (hasEvaluationError)
            {
                exprNode.EvaluationError.ShouldNotBeNull();
            }
        }
Example #3
0
        protected ExpressionValue EvalImmediate(string expr, bool hasEvaluationError = false,
                                                Dictionary <string, ushort> symbols  = null)
        {
            var assembler = new Z80Assembler();

            assembler.Compile("");
            if (symbols != null)
            {
                foreach (var pair in symbols)
                {
                    assembler.SetSymbolValue(pair.Key, new ExpressionValue(pair.Value));
                }
            }
            var exprNode = ParseExpr(expr);

            return(assembler.EvalImmediate(null, exprNode));
        }
Example #4
0
        protected void RemainsUnevaluated(string expr, bool hasEvaluationError = false,
                                          Dictionary <string, ushort> symbols  = null)
        {
            var assembler = new Z80Assembler();

            assembler.Compile("");
            if (symbols != null)
            {
                foreach (var pair in symbols)
                {
                    assembler.SetSymbolValue(pair.Key, new ExpressionValue(pair.Value));
                }
            }
            var exprNode = ParseExpr(expr);
            var result   = assembler.Eval(null, exprNode);

            result.ShouldBe(ExpressionValue.NonEvaluated);
        }