Skip to content

Commit daca9fa

Browse files
committed
test: copyable buffer and eval options
1 parent 6f72270 commit daca9fa

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

test/test_evaluation.jl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,36 @@ end
288288
@test_throws ArgumentError ex(randn(1, 5), OperatorEnum(); bad_arg=1)
289289
end
290290

291+
@testitem "Test EvalOptions copy" begin
292+
using DynamicExpressions
293+
using DynamicExpressions: ArrayBuffer
294+
295+
# Test copying with various configurations
296+
buffer = zeros(5, 10)
297+
buffer_ref = Ref(0)
298+
original = EvalOptions(;
299+
turbo=true, bumper=false, early_exit=true, buffer=ArrayBuffer(buffer, buffer_ref)
300+
)
301+
copied = copy(original)
302+
303+
# Test that all fields are equal
304+
@test copied.turbo == original.turbo
305+
@test copied.bumper == original.bumper
306+
@test copied.early_exit == original.early_exit
307+
@test copied.buffer.array == original.buffer.array
308+
@test copied.buffer.index[] == original.buffer.index[]
309+
310+
# Test that buffer is copied, not referenced
311+
@test copied.buffer !== original.buffer
312+
@test copied.buffer.array !== original.buffer.array
313+
@test copied.buffer.index !== original.buffer.index
314+
315+
# Test without buffer
316+
original_no_buffer = EvalOptions(; turbo=true, bumper=false, early_exit=true)
317+
copied_no_buffer = copy(original_no_buffer)
318+
@test copied_no_buffer.buffer === nothing
319+
end
320+
291321
@testitem "Test Inf val" begin
292322
using DynamicExpressions
293323

0 commit comments

Comments
 (0)