finished interpreter
Some checks failed
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.10) (push) Has been cancelled
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.6) (push) Has been cancelled
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, pre) (push) Has been cancelled
Some checks failed
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.10) (push) Has been cancelled
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.6) (push) Has been cancelled
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, pre) (push) Has been cancelled
This commit is contained in:
parent
c608abfb17
commit
44722bfc65
|
@ -23,8 +23,8 @@ function expr_to_postfix(expr::Expr)::PostfixType
|
||||||
|
|
||||||
for j in 2:length(expr.args)
|
for j in 2:length(expr.args)
|
||||||
arg = expr.args[j]
|
arg = expr.args[j]
|
||||||
|
|
||||||
if typeof(arg) === Expr
|
if typeof(arg) === Expr
|
||||||
# exprElement = convert_to_ExpressionElement()
|
|
||||||
append!(postfix, expr_to_postfix(arg))
|
append!(postfix, expr_to_postfix(arg))
|
||||||
elseif typeof(arg) === Symbol # variables/parameters
|
elseif typeof(arg) === Symbol # variables/parameters
|
||||||
exprElement = convert_to_ExpressionElement(convert_var_to_int(arg))
|
exprElement = convert_to_ExpressionElement(convert_var_to_int(arg))
|
||||||
|
@ -34,7 +34,8 @@ function expr_to_postfix(expr::Expr)::PostfixType
|
||||||
push!(postfix, exprElement)
|
push!(postfix, exprElement)
|
||||||
end
|
end
|
||||||
|
|
||||||
if length(postfix) >= 2
|
# only add operator if at least 2 values are added. For the case where another expression is added first, we check if we are at the first iteration or not ( j != 2)
|
||||||
|
if length(postfix) >= 2 && j != 2
|
||||||
exprElement = convert_to_ExpressionElement(operator)
|
exprElement = convert_to_ExpressionElement(operator)
|
||||||
push!(postfix, exprElement)
|
push!(postfix, exprElement)
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,10 +23,12 @@ end
|
||||||
|
|
||||||
@testset "Test conversion to postfix" begin
|
@testset "Test conversion to postfix" begin
|
||||||
reference = PostfixType()
|
reference = PostfixType()
|
||||||
|
|
||||||
append!(reference, [ExpressionProcessing.convert_to_ExpressionElement(1), ExpressionProcessing.convert_to_ExpressionElement(1.0), ExpressionProcessing.convert_to_ExpressionElement(2), ExpressionProcessing.convert_to_ExpressionElement(MULTIPLY),
|
append!(reference, [ExpressionProcessing.convert_to_ExpressionElement(1), ExpressionProcessing.convert_to_ExpressionElement(1.0), ExpressionProcessing.convert_to_ExpressionElement(2), ExpressionProcessing.convert_to_ExpressionElement(MULTIPLY),
|
||||||
ExpressionProcessing.convert_to_ExpressionElement(ADD), ExpressionProcessing.convert_to_ExpressionElement(-1), ExpressionProcessing.convert_to_ExpressionElement(ADD)])
|
ExpressionProcessing.convert_to_ExpressionElement(ADD), ExpressionProcessing.convert_to_ExpressionElement(-1), ExpressionProcessing.convert_to_ExpressionElement(ADD)])
|
||||||
postfix = expr_to_postfix(expressions[1])
|
postfix = expr_to_postfix(expressions[1])
|
||||||
|
|
||||||
@test isequal(reference, postfix)
|
@test isequal(reference, postfix)
|
||||||
|
|
||||||
|
# TODO: Do more complex expressions because these have led to errors in the past
|
||||||
end
|
end
|
|
@ -145,8 +145,8 @@ end
|
||||||
|
|
||||||
# var set 1
|
# var set 1
|
||||||
@test isapprox(result[1,1], 37.32, atol=0.01) # expr1
|
@test isapprox(result[1,1], 37.32, atol=0.01) # expr1
|
||||||
@test isequal(result[1,2], 64.74, atol=0.01) # expr2
|
@test isapprox(result[1,2], 64.74, atol=0.01) # expr2
|
||||||
# var set 2
|
# var set 2
|
||||||
@test isequal(result[2,1], 37.32, atol=0.01) # expr1
|
@test isapprox(result[2,1], 37.32, atol=0.01) # expr1
|
||||||
@test isequal(result[2,2], -83.65, atol=0.01) # expr2
|
@test isapprox(result[2,2], -83.65, atol=0.01) # expr2
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user