Skip to content

Commit 8eb438a

Browse files
committed
Fix ordering of error tests of implicit syntax
1 parent 1d3ed78 commit 8eb438a

File tree

3 files changed

+43
-24
lines changed

3 files changed

+43
-24
lines changed

src/EvaluationHelpers.jl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ end
5757
function (tree::Node)(X; kws...)
5858
## This will be overwritten by OperatorEnumConstructionModule, and turned
5959
## into a depwarn.
60-
error("The `tree(X; kws...)` syntax is deprecated. Use `tree(X, operators; kws...)` instead.")
60+
return error(
61+
"The `tree(X; kws...)` syntax is deprecated. Use `tree(X, operators; kws...)` instead.",
62+
)
6163
end
6264

6365
# Gradients:
@@ -69,12 +71,14 @@ function _grad_evaluator(tree::Node, X, operators::OperatorEnum; variable=true,
6971
return grad
7072
end
7173
function _grad_evaluator(tree::Node, X, operators::GenericOperatorEnum; kws...)
72-
error("Gradients are not implemented for `GenericOperatorEnum`.")
74+
return error("Gradients are not implemented for `GenericOperatorEnum`.")
7375
end
7476
function _grad_evaluator(tree::Node, X; kws...)
7577
## This will be overwritten by OperatorEnumConstructionModule, and turned
7678
## into a depwarn
77-
error("The `tree'(X; kws...)` syntax is deprecated. Use `tree'(X, operators; kws...)` instead.")
79+
return error(
80+
"The `tree'(X; kws...)` syntax is deprecated. Use `tree'(X, operators; kws...)` instead.",
81+
)
7882
end
7983

8084
"""

test/test_error_handling.jl

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,6 @@
11
using DynamicExpressions
22
using Test
33

4-
# Before defining OperatorEnum, calling the implicit (deprecated)
5-
# syntax should fail:
6-
tree = Node(; feature=1)
7-
try
8-
tree([1.0 2.0]')
9-
@test false
10-
catch e
11-
@test isa(e, ErrorException)
12-
expected_error_msg = "The `tree(X; kws...)` syntax is deprecated"
13-
@test occursin(expected_error_msg, e.msg)
14-
end
15-
16-
try
17-
tree'([1.0 2.0]')
18-
@test false
19-
catch e
20-
@test isa(e, ErrorException)
21-
expected_error_msg = "The `tree'(X; kws...)` syntax is deprecated"
22-
@test occursin(expected_error_msg, e.msg)
23-
end
24-
254
# Test that we generate errors:
265
baseT = Float64
276
T = Union{baseT,Vector{baseT},Matrix{baseT}}
@@ -62,3 +41,13 @@ end
6241

6342
# But can be overrided:
6443
output = tree([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], operators; throw_errors=false)
44+
45+
# Gradients are undefined for GenericOperatorEnum:
46+
try
47+
tree'([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], operators)
48+
@test false
49+
catch e
50+
@test isa(e, ErrorException)
51+
expected_error_msg = "The `tree'(X; kws...)` syntax is deprecated"
52+
@test occursin(expected_error_msg, e.msg)
53+
end

test/unittest.jl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
using SafeTestsets
22

3+
@safetestset "Initial error handling test" begin
4+
using DynamicExpressions
5+
using Test
6+
7+
# Before defining OperatorEnum, calling the implicit (deprecated)
8+
# syntax should fail:
9+
tree = Node(; feature=1)
10+
try
11+
tree([1.0 2.0]')
12+
@test false
13+
catch e
14+
@test isa(e, ErrorException)
15+
expected_error_msg = "The `tree(X; kws...)` syntax is deprecated"
16+
@test occursin(expected_error_msg, e.msg)
17+
end
18+
19+
try
20+
tree'([1.0 2.0]')
21+
@test false
22+
catch e
23+
@test isa(e, ErrorException)
24+
expected_error_msg = ""
25+
@test occursin(expected_error_msg, e.msg)
26+
end
27+
end
28+
329
@safetestset "Test tree construction and scoring" begin
430
include("test_tree_construction.jl")
531
end

0 commit comments

Comments
 (0)