Skip to content

Commit

Permalink
Added tests for time solver interface
Browse files Browse the repository at this point in the history
  • Loading branch information
kaipartmann committed Oct 16, 2024
1 parent e7b6c96 commit 3c02e73
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions test/core/test_time_solvers.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
@testitem "time solver interface" begin
struct MyCustomDataHandler <: Peridynamics.AbstractDataHandler end
struct MyCustomTimeSolver <: Peridynamics.AbstractTimeSolver end
struct MyCustomSystem <: Peridynamics.AbstractSystem end
dh = MyCustomDataHandler()
solver = MyCustomTimeSolver()
system = MyCustomSystem()

@test_throws MethodError Peridynamics.init_time_solver!(solver, dh)

@test_throws ErrorException Peridynamics.solve!(dh, solver, Dict())

@test_throws Peridynamics.InterfaceError begin
Peridynamics.req_point_data_fields_timesolver(Peridynamics.AbstractTimeSolver)
end

@test_throws Peridynamics.InterfaceError begin
Peridynamics.req_bond_data_fields_timesolver(Peridynamics.AbstractTimeSolver)
end

@test_throws Peridynamics.InterfaceError begin
Peridynamics.req_data_fields_timesolver(Peridynamics.AbstractTimeSolver)
end

@test isnothing(Peridynamics.init_field_solver(solver, system, Val(:myrandomfield)))
end

@testitem "required fields all timesolvers" begin
req_fields_solvers = (:position, :displacement, :velocity, :velocity_half,
:acceleration, :b_int, :b_ext, :velocity_half_old, :b_int_old,
:density_matrix)
@test Peridynamics.required_fields_timesolvers() === req_fields_solvers
end

0 comments on commit 3c02e73

Please sign in to comment.