Granular.jl

Julia package for granular dynamics simulation
git clone git://src.adamsgaard.dk/Granular.jl
Log | Files | Refs | README | LICENSE

commit bb2275349eb9a3d5dfbcd74df58b4bcd95981e8c
parent 7d738fefaee58a786bcd8d336ea42e9601eab07c
Author: Anders Damsgaard <andersd@riseup.net>
Date:   Thu,  2 Nov 2017 09:31:37 -0400

change testing functionality for compatibility with next stable Julia

Diffstat:
Msrc/atmosphere.jl | 20++++++++++----------
Msrc/grain.jl | 102++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/ocean.jl | 26+++++++++++++-------------
Msrc/simulation.jl | 19+++++++++----------
Mtest/atmosphere.jl | 84++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtest/cohesion.jl | 14+++++++-------
Mtest/collision-2floes-normal.jl | 40++++++++++++++++++++--------------------
Mtest/collision-2floes-oblique.jl | 188++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtest/collision-5floes-normal.jl | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Mtest/contact-search-and-geometry.jl | 224++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtest/grain.jl | 16++++++++--------
Mtest/grid.jl | 226++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtest/memory-management.jl | 68++++++++++++++++++++++++++++++++++----------------------------------
Mtest/netcdf.jl | 52++++++++++++++++++++++++++--------------------------
Mtest/ocean.jl | 92++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtest/profiling.jl | 12++++++------
Mtest/runtests.jl | 1-
Mtest/temporal.jl | 14+++++++-------
Mtest/util.jl | 32++++++++++++++++----------------
Mtest/vtk.jl | 24++++++++++++------------
20 files changed, 661 insertions(+), 663 deletions(-)

diff --git a/src/atmosphere.jl b/src/atmosphere.jl @@ -228,22 +228,22 @@ Compare values of two `atmosphere` objects using the `Base.Test` framework. """ function compareAtmospheres(atmosphere1::Atmosphere, atmosphere2::Atmosphere) - Base.Test.@test atmosphere1.input_file == atmosphere2.input_file - Base.Test.@test atmosphere1.time ≈ atmosphere2.time + Test.@test atmosphere1.input_file == atmosphere2.input_file + Test.@test atmosphere1.time ≈ atmosphere2.time - Base.Test.@test atmosphere1.xq ≈ atmosphere2.xq - Base.Test.@test atmosphere1.yq ≈ atmosphere2.yq + Test.@test atmosphere1.xq ≈ atmosphere2.xq + Test.@test atmosphere1.yq ≈ atmosphere2.yq - Base.Test.@test atmosphere1.xh ≈ atmosphere2.xh - Base.Test.@test atmosphere1.yh ≈ atmosphere2.yh + Test.@test atmosphere1.xh ≈ atmosphere2.xh + Test.@test atmosphere1.yh ≈ atmosphere2.yh - Base.Test.@test atmosphere1.zl ≈ atmosphere2.zl + Test.@test atmosphere1.zl ≈ atmosphere2.zl - Base.Test.@test atmosphere1.u ≈ atmosphere2.u - Base.Test.@test atmosphere1.v ≈ atmosphere2.v + Test.@test atmosphere1.u ≈ atmosphere2.u + Test.@test atmosphere1.v ≈ atmosphere2.v if isassigned(atmosphere1.grain_list, 1) - Base.Test.@test atmosphere1.grain_list == atmosphere2.grain_list + Test.@test atmosphere1.grain_list == atmosphere2.grain_list end nothing end diff --git a/src/grain.jl b/src/grain.jl @@ -604,68 +604,68 @@ Compare values of two grain objects using the `Base.Test` framework. """ function compareGrains(if1::GrainCylindrical, if2::GrainCylindrical) - Base.Test.@test if1.density ≈ if2.density - Base.Test.@test if1.thickness ≈ if2.thickness - Base.Test.@test if1.contact_radius ≈ + Test.@test if1.density ≈ if2.density + Test.@test if1.thickness ≈ if2.thickness + Test.@test if1.contact_radius ≈ if2.contact_radius - Base.Test.@test if1.areal_radius ≈ if2.areal_radius - Base.Test.@test if1.circumreference ≈ + Test.@test if1.areal_radius ≈ if2.areal_radius + Test.@test if1.circumreference ≈ if2.circumreference - Base.Test.@test if1.horizontal_surface_area ≈ if2.horizontal_surface_area - Base.Test.@test if1.side_surface_area ≈ if2.side_surface_area - Base.Test.@test if1.volume ≈ if2.volume - Base.Test.@test if1.mass ≈ if2.mass - Base.Test.@test if1.moment_of_inertia ≈ if2.moment_of_inertia - - Base.Test.@test if1.lin_pos ≈ if2.lin_pos - Base.Test.@test if1.lin_vel ≈ if2.lin_vel - Base.Test.@test if1.lin_acc ≈ if2.lin_acc - Base.Test.@test if1.force ≈ if2.force - - Base.Test.@test if1.ang_pos ≈ if2.ang_pos - Base.Test.@test if1.ang_vel ≈ if2.ang_vel - Base.Test.@test if1.ang_acc ≈ if2.ang_acc - Base.Test.@test if1.torque ≈ if2.torque - - Base.Test.@test if1.fixed == if2.fixed - Base.Test.@test if1.rotating == if2.rotating - Base.Test.@test if1.enabled == if2.enabled - - Base.Test.@test if1.contact_stiffness_normal ≈ if2.contact_stiffness_normal - Base.Test.@test if1.contact_stiffness_tangential ≈ + Test.@test if1.horizontal_surface_area ≈ if2.horizontal_surface_area + Test.@test if1.side_surface_area ≈ if2.side_surface_area + Test.@test if1.volume ≈ if2.volume + Test.@test if1.mass ≈ if2.mass + Test.@test if1.moment_of_inertia ≈ if2.moment_of_inertia + + Test.@test if1.lin_pos ≈ if2.lin_pos + Test.@test if1.lin_vel ≈ if2.lin_vel + Test.@test if1.lin_acc ≈ if2.lin_acc + Test.@test if1.force ≈ if2.force + + Test.@test if1.ang_pos ≈ if2.ang_pos + Test.@test if1.ang_vel ≈ if2.ang_vel + Test.@test if1.ang_acc ≈ if2.ang_acc + Test.@test if1.torque ≈ if2.torque + + Test.@test if1.fixed == if2.fixed + Test.@test if1.rotating == if2.rotating + Test.@test if1.enabled == if2.enabled + + Test.@test if1.contact_stiffness_normal ≈ if2.contact_stiffness_normal + Test.@test if1.contact_stiffness_tangential ≈ if2.contact_stiffness_tangential - Base.Test.@test if1.contact_viscosity_normal ≈ if2.contact_viscosity_normal - Base.Test.@test if1.contact_viscosity_tangential ≈ + Test.@test if1.contact_viscosity_normal ≈ if2.contact_viscosity_normal + Test.@test if1.contact_viscosity_tangential ≈ if2.contact_viscosity_tangential - Base.Test.@test if1.contact_static_friction ≈ if2.contact_static_friction - Base.Test.@test if1.contact_dynamic_friction ≈ if2.contact_dynamic_friction - - Base.Test.@test if1.youngs_modulus ≈ if2.youngs_modulus - Base.Test.@test if1.poissons_ratio ≈ if2.poissons_ratio - Base.Test.@test if1.tensile_strength ≈ if2.tensile_strength - Base.Test.@test if1.tensile_heal_rate ≈ if2.tensile_heal_rate - Base.Test.@test if1.compressive_strength_prefactor ≈ + Test.@test if1.contact_static_friction ≈ if2.contact_static_friction + Test.@test if1.contact_dynamic_friction ≈ if2.contact_dynamic_friction + + Test.@test if1.youngs_modulus ≈ if2.youngs_modulus + Test.@test if1.poissons_ratio ≈ if2.poissons_ratio + Test.@test if1.tensile_strength ≈ if2.tensile_strength + Test.@test if1.tensile_heal_rate ≈ if2.tensile_heal_rate + Test.@test if1.compressive_strength_prefactor ≈ if2.compressive_strength_prefactor - Base.Test.@test if1.ocean_drag_coeff_vert ≈ if2.ocean_drag_coeff_vert - Base.Test.@test if1.ocean_drag_coeff_horiz ≈ if2.ocean_drag_coeff_horiz - Base.Test.@test if1.atmosphere_drag_coeff_vert ≈ + Test.@test if1.ocean_drag_coeff_vert ≈ if2.ocean_drag_coeff_vert + Test.@test if1.ocean_drag_coeff_horiz ≈ if2.ocean_drag_coeff_horiz + Test.@test if1.atmosphere_drag_coeff_vert ≈ if2.atmosphere_drag_coeff_vert - Base.Test.@test if1.atmosphere_drag_coeff_horiz ≈ + Test.@test if1.atmosphere_drag_coeff_horiz ≈ if2.atmosphere_drag_coeff_horiz - Base.Test.@test if1.pressure ≈ if2.pressure - Base.Test.@test if1.n_contacts == if2.n_contacts - Base.Test.@test if1.ocean_grid_pos == if2.ocean_grid_pos - Base.Test.@test if1.contacts == if2.contacts - Base.Test.@test if1.position_vector == if2.position_vector - Base.Test.@test if1.contact_parallel_displacement == + Test.@test if1.pressure ≈ if2.pressure + Test.@test if1.n_contacts == if2.n_contacts + Test.@test if1.ocean_grid_pos == if2.ocean_grid_pos + Test.@test if1.contacts == if2.contacts + Test.@test if1.position_vector == if2.position_vector + Test.@test if1.contact_parallel_displacement == if2.contact_parallel_displacement - Base.Test.@test if1.contact_age ≈ if2.contact_age + Test.@test if1.contact_age ≈ if2.contact_age - Base.Test.@test if1.granular_stress ≈ if2.granular_stress - Base.Test.@test if1.ocean_stress ≈ if2.ocean_stress - Base.Test.@test if1.atmosphere_stress ≈ if2.atmosphere_stress + Test.@test if1.granular_stress ≈ if2.granular_stress + Test.@test if1.ocean_stress ≈ if2.ocean_stress + Test.@test if1.atmosphere_stress ≈ if2.atmosphere_stress nothing end diff --git a/src/ocean.jl b/src/ocean.jl @@ -341,25 +341,25 @@ Compare values of two `Ocean` objects using the `Base.Test` framework. """ function compareOceans(ocean1::Ocean, ocean2::Ocean) - Base.Test.@test ocean1.input_file == ocean2.input_file - Base.Test.@test ocean1.time ≈ ocean2.time + Test.@test ocean1.input_file == ocean2.input_file + Test.@test ocean1.time ≈ ocean2.time - Base.Test.@test ocean1.xq ≈ ocean2.xq - Base.Test.@test ocean1.yq ≈ ocean2.yq + Test.@test ocean1.xq ≈ ocean2.xq + Test.@test ocean1.yq ≈ ocean2.yq - Base.Test.@test ocean1.xh ≈ ocean2.xh - Base.Test.@test ocean1.yh ≈ ocean2.yh + Test.@test ocean1.xh ≈ ocean2.xh + Test.@test ocean1.yh ≈ ocean2.yh - Base.Test.@test ocean1.zl ≈ ocean2.zl - Base.Test.@test ocean1.zi ≈ ocean2.zi + Test.@test ocean1.zl ≈ ocean2.zl + Test.@test ocean1.zi ≈ ocean2.zi - Base.Test.@test ocean1.u ≈ ocean2.u - Base.Test.@test ocean1.v ≈ ocean2.v - Base.Test.@test ocean1.h ≈ ocean2.h - Base.Test.@test ocean1.e ≈ ocean2.e + Test.@test ocean1.u ≈ ocean2.u + Test.@test ocean1.v ≈ ocean2.v + Test.@test ocean1.h ≈ ocean2.h + Test.@test ocean1.e ≈ ocean2.e if isassigned(ocean1.grain_list, 1) - Base.Test.@test ocean1.grain_list == ocean2.grain_list + Test.@test ocean1.grain_list == ocean2.grain_list end nothing end diff --git a/src/simulation.jl b/src/simulation.jl @@ -252,16 +252,15 @@ Compare values of two `Simulation` objects using the `Base.Test` framework. """ function compareSimulations(sim1::Simulation, sim2::Simulation) - Base.Test.@test sim1.id == sim2.id + Test.@test sim1.id == sim2.id - Base.Test.@test sim1.time_iteration == sim2.time_iteration - Base.Test.@test sim1.time ≈ sim2.time - Base.Test.@test sim1.time_total ≈ sim2.time_total - Base.Test.@test sim1.time_step ≈ sim2.time_step - Base.Test.@test sim1.file_time_step ≈ sim2.file_time_step - Base.Test.@test sim1.file_number == sim2.file_number - Base.Test.@test sim1.file_time_since_output_file ≈ - sim2.file_time_since_output_file + Test.@test sim1.time_iteration == sim2.time_iteration + Test.@test sim1.time ≈ sim2.time + Test.@test sim1.time_total ≈ sim2.time_total + Test.@test sim1.time_step ≈ sim2.time_step + Test.@test sim1.file_time_step ≈ sim2.file_time_step + Test.@test sim1.file_number == sim2.file_number + Test.@test sim1.file_time_since_output_file ≈ sim2.file_time_since_output_file for i=1:length(sim1.grains) compareGrains(sim1.grains[i], sim2.grains[i]) @@ -269,7 +268,7 @@ function compareSimulations(sim1::Simulation, sim2::Simulation) compareOceans(sim1.ocean, sim2.ocean) compareAtmospheres(sim1.atmosphere, sim2.atmosphere) - Base.Test.@test sim1.Nc_max == sim2.Nc_max + Test.@test sim1.Nc_max == sim2.Nc_max nothing end diff --git a/test/atmosphere.jl b/test/atmosphere.jl @@ -8,20 +8,20 @@ info("#### $(basename(@__FILE__)) ####") info("Testing regular grid generation") sim = Granular.createSimulation() sim.atmosphere = Granular.createRegularAtmosphereGrid([6, 6, 6], [1., 1., 1.]) -@test size(sim.atmosphere.xq) == (7, 7) -@test size(sim.atmosphere.yq) == (7, 7) -@test size(sim.atmosphere.xh) == (6, 6) -@test size(sim.atmosphere.yh) == (6, 6) -@test sim.atmosphere.xq[1, :, 1] ≈ zeros(7) -@test sim.atmosphere.xq[4, :, 1] ≈ .5*ones(7) -@test sim.atmosphere.xq[end, :, 1] ≈ 1.*ones(7) -@test sim.atmosphere.yq[:, 1, 1] ≈ zeros(7) -@test sim.atmosphere.yq[:, 4, 1] ≈ .5*ones(7) -@test sim.atmosphere.yq[:, end, 1] ≈ 1.*ones(7) -@test size(sim.atmosphere.u) == (7, 7, 6, 1) -@test size(sim.atmosphere.v) == (7, 7, 6, 1) -@test sim.atmosphere.u ≈ zeros(7, 7, 6, 1) -@test sim.atmosphere.v ≈ zeros(7, 7, 6, 1) +Test.@test size(sim.atmosphere.xq) == (7, 7) +Test.@test size(sim.atmosphere.yq) == (7, 7) +Test.@test size(sim.atmosphere.xh) == (6, 6) +Test.@test size(sim.atmosphere.yh) == (6, 6) +Test.@test sim.atmosphere.xq[1, :, 1] ≈ zeros(7) +Test.@test sim.atmosphere.xq[4, :, 1] ≈ .5*ones(7) +Test.@test sim.atmosphere.xq[end, :, 1] ≈ 1.*ones(7) +Test.@test sim.atmosphere.yq[:, 1, 1] ≈ zeros(7) +Test.@test sim.atmosphere.yq[:, 4, 1] ≈ .5*ones(7) +Test.@test sim.atmosphere.yq[:, end, 1] ≈ 1.*ones(7) +Test.@test size(sim.atmosphere.u) == (7, 7, 6, 1) +Test.@test size(sim.atmosphere.v) == (7, 7, 6, 1) +Test.@test sim.atmosphere.u ≈ zeros(7, 7, 6, 1) +Test.@test sim.atmosphere.v ≈ zeros(7, 7, 6, 1) info("Testing velocity drag interaction (static atmosphere)") Granular.addGrainCylindrical!(sim, [.5, .5], .25, .1) @@ -34,10 +34,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after -@test E_kin_lin_init > E_kin_lin_final # linear velocity lost due to atmos drag -@test sim.grains[1].atmosphere_stress[1] < 0. -@test sim.grains[1].atmosphere_stress[2] ≈ 0. +Test.@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after +Test.@test E_kin_lin_init > E_kin_lin_final # linear velocity lost due to atmos drag +Test.@test sim.grains[1].atmosphere_stress[1] < 0. +Test.@test sim.grains[1].atmosphere_stress[2] ≈ 0. info("Testing velocity drag interaction (static ice floe)") sim = deepcopy(sim_init) @@ -47,10 +47,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after -@test E_kin_lin_init < E_kin_lin_final # linear vel. gained due to atmos drag -@test sim.grains[1].atmosphere_stress[1] ≈ 0. -@test sim.grains[1].atmosphere_stress[2] > 0. +Test.@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after +Test.@test E_kin_lin_init < E_kin_lin_final # linear vel. gained due to atmos drag +Test.@test sim.grains[1].atmosphere_stress[1] ≈ 0. +Test.@test sim.grains[1].atmosphere_stress[2] > 0. info("Testing vortex interaction (static atmosphere)") sim = deepcopy(sim_init) @@ -60,10 +60,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_rot_init > E_kin_rot_final # energy lost to atmosphere -@test sim.grains[1].ang_vel > 0. # check angular velocity orientation -@test sim.grains[1].ang_pos > 0. # check angular position orientation -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test E_kin_rot_init > E_kin_rot_final # energy lost to atmosphere +Test.@test sim.grains[1].ang_vel > 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos > 0. # check angular position orientation +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained info("Testing vortex interaction (static ice floe)") sim = deepcopy(sim_init) @@ -77,10 +77,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel > 0. # check angular velocity orientation -@test sim.grains[1].ang_pos > 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel > 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos > 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = deepcopy(sim_init) sim.atmosphere = Granular.createRegularAtmosphereGrid([1, 1, 1], [1., 1., 1.]) @@ -93,10 +93,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel < 0. # check angular velocity orientation -@test sim.grains[1].ang_pos < 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel < 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos < 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = deepcopy(sim_init) sim.atmosphere = Granular.createRegularAtmosphereGrid([1, 1, 1], [1., 1., 1.]) @@ -109,10 +109,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel < 0. # check angular velocity orientation -@test sim.grains[1].ang_pos < 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel < 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos < 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = deepcopy(sim_init) sim.atmosphere = Granular.createRegularAtmosphereGrid([1, 1, 1], [1., 1., 1.]) @@ -125,10 +125,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel > 0. # check angular velocity orientation -@test sim.grains[1].ang_pos > 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel > 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos > 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to atm vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = Granular.createSimulation() sim.atmosphere = Granular.createRegularAtmosphereGrid([6, 6, 6], [1., 1., 1.]) diff --git a/test/cohesion.jl b/test/cohesion.jl @@ -19,7 +19,7 @@ sim = deepcopy(sim_init) Granular.setTotalTime!(sim, 10.) sim.time_step = 1. Granular.run!(sim, verbose=verbose) -@test sim.grains[1].contact_age[1] ≈ sim.time +Test.@test sim.grains[1].contact_age[1] ≈ sim.time info("# Check if bonds add tensile strength") sim = Granular.createSimulation(id="cohesion") @@ -29,9 +29,9 @@ sim.grains[1].lin_vel[1] = 0.1 Granular.setTimeStep!(sim) Granular.setTotalTime!(sim, 10.) Granular.run!(sim, verbose=verbose) -@test sim.grains[1].lin_vel[1] > 0. -@test sim.grains[1].lin_vel[2] ≈ 0. -@test sim.grains[2].lin_vel[1] > 0. -@test sim.grains[2].lin_vel[2] ≈ 0. -@test sim.grains[1].ang_vel ≈ 0. -@test sim.grains[2].ang_vel ≈ 0. +Test.@test sim.grains[1].lin_vel[1] > 0. +Test.@test sim.grains[1].lin_vel[2] ≈ 0. +Test.@test sim.grains[2].lin_vel[1] > 0. +Test.@test sim.grains[2].lin_vel[2] ≈ 0. +Test.@test sim.grains[1].ang_vel ≈ 0. +Test.@test sim.grains[2].ang_vel ≈ 0. diff --git a/test/collision-2floes-normal.jl b/test/collision-2floes-normal.jl @@ -31,8 +31,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Two-term Taylor scheme") @@ -44,8 +44,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -58,8 +58,8 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("# Ice floes free to move") @@ -86,8 +86,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Two-term Taylor scheme") @@ -99,8 +99,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -113,8 +113,8 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("# Adding contact-normal viscosity") @@ -146,8 +146,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -160,8 +160,8 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("# Ice floes free to move") @@ -191,8 +191,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -205,5 +205,5 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final diff --git a/test/collision-2floes-oblique.jl b/test/collision-2floes-oblique.jl @@ -35,8 +35,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Two-term Taylor scheme") @@ -48,8 +48,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -61,8 +61,8 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verb E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("# Ice floes free to move") @@ -90,8 +90,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Two-term Taylor scheme") @@ -103,8 +103,8 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -117,8 +117,8 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("## Contact-normal elasticity and tangential viscosity and friction") @@ -137,13 +137,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos ≈ 0. -@test sim.grains[2].ang_vel ≈ 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos ≈ 0. +Test.@test sim.grains[2].ang_vel ≈ 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("mu_d = 0.") sim = deepcopy(sim_init) @@ -156,13 +156,13 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos ≈ 0. -@test sim.grains[1].ang_vel ≈ 0. -@test sim.grains[2].ang_pos ≈ 0. +Test.@test sim.grains[1].ang_pos ≈ 0. +Test.@test sim.grains[1].ang_vel ≈ 0. +Test.@test sim.grains[2].ang_pos ≈ 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final info("Testing kinetic energy conservation with Two-term Taylor scheme") sim = deepcopy(sim_init) @@ -172,13 +172,13 @@ info("Relative tolerance: $(tol*100.)%") Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos ≈ 0. -@test sim.grains[2].ang_vel ≈ 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos ≈ 0. +Test.@test sim.grains[2].ang_vel ≈ 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -189,13 +189,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos ≈ 0. -@test sim.grains[2].ang_vel ≈ 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos ≈ 0. +Test.@test sim.grains[2].ang_vel ≈ 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("# Ice floes free to move") @@ -222,13 +222,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Two-term Taylor scheme") sim = deepcopy(sim_init) @@ -240,7 +240,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -251,13 +251,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("# Ice floes free to move, mirrored") @@ -285,13 +285,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos > 0. -@test sim.grains[1].ang_vel > 0. -@test sim.grains[2].ang_pos > 0. -@test sim.grains[2].ang_vel > 0. +Test.@test sim.grains[1].ang_pos > 0. +Test.@test sim.grains[1].ang_vel > 0. +Test.@test sim.grains[2].ang_pos > 0. +Test.@test sim.grains[2].ang_vel > 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Two-term Taylor scheme") sim = deepcopy(sim_init) @@ -303,7 +303,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -314,13 +314,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos > 0. -@test sim.grains[1].ang_vel > 0. -@test sim.grains[2].ang_pos > 0. -@test sim.grains[2].ang_vel > 0. +Test.@test sim.grains[1].ang_pos > 0. +Test.@test sim.grains[1].ang_vel > 0. +Test.@test sim.grains[2].ang_pos > 0. +Test.@test sim.grains[2].ang_vel > 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("# Ice floes free to move, mirrored #2") @@ -346,13 +346,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Two-term Taylor scheme") sim = deepcopy(sim_init) @@ -364,7 +364,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -375,13 +375,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("# Tangential elasticity, no tangential viscosity, no Coulomb slip") @@ -415,13 +415,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Two-term Taylor scheme") sim = deepcopy(sim_init) @@ -433,7 +433,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("Testing kinetic energy conservation with Three-term Taylor scheme") @@ -444,13 +444,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol +Test.@test E_kin_lin_init+E_kin_rot_init ≈ E_kin_lin_final+E_kin_rot_final atol=E_kin_lin_init*tol info("# Tangential elasticity, no tangential viscosity, Coulomb slip") @@ -487,7 +487,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final +Test.@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") sim = deepcopy(sim_init) @@ -497,13 +497,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final +Test.@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final info("# Tangential elasticity, tangential viscosity, no Coulomb slip") @@ -540,7 +540,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final +Test.@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") sim = deepcopy(sim_init) @@ -550,13 +550,13 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final +Test.@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final info("# Tangential elasticity, tangential viscosity, Coulomb slip") @@ -593,7 +593,7 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final +Test.@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final info("Testing kinetic energy conservation with Three-term Taylor scheme") sim = deepcopy(sim_init) @@ -603,10 +603,10 @@ info("Relative tolerance: $(tol*100.)% with time step: $(sim.time_step)") Granular.run!(sim, temporal_integration_method="Three-term Taylor", verbose=verbose) -@test sim.grains[1].ang_pos < 0. -@test sim.grains[1].ang_vel < 0. -@test sim.grains[2].ang_pos < 0. -@test sim.grains[2].ang_vel < 0. +Test.@test sim.grains[1].ang_pos < 0. +Test.@test sim.grains[1].ang_vel < 0. +Test.@test sim.grains[2].ang_pos < 0. +Test.@test sim.grains[2].ang_vel < 0. E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final +Test.@test E_kin_lin_init+E_kin_rot_init > E_kin_lin_final+E_kin_rot_final diff --git a/test/collision-5floes-normal.jl b/test/collision-5floes-normal.jl @@ -37,12 +37,12 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final -@test 0. < norm(sim.grains[1].lin_vel) +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test 0. < norm(sim.grains[1].lin_vel) for i=2:5 info("testing ice floe $i") - @test 0. ≈ norm(sim.grains[i].lin_vel) + Test.@test 0. ≈ norm(sim.grains[i].lin_vel) end @@ -55,12 +55,12 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final -@test 0. < norm(sim.grains[1].lin_vel) +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test 0. < norm(sim.grains[1].lin_vel) for i=2:5 info("testing ice floe $i") - @test 0. ≈ norm(sim.grains[i].lin_vel) + Test.@test 0. ≈ norm(sim.grains[i].lin_vel) end @@ -74,12 +74,12 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final -@test 0. < norm(sim.grains[1].lin_vel) +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test 0. < norm(sim.grains[1].lin_vel) for i=2:5 info("testing ice floe $i") - @test 0. ≈ norm(sim.grains[i].lin_vel) + Test.@test 0. ≈ norm(sim.grains[i].lin_vel) end @@ -110,11 +110,11 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final for i=1:5 info("testing ice floe $i") - @test 0. < norm(sim.grains[i].lin_vel) + Test.@test 0. < norm(sim.grains[i].lin_vel) end @@ -127,11 +127,11 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final for i=1:5 info("testing ice floe $i") - @test 0. < norm(sim.grains[i].lin_vel) + Test.@test 0. < norm(sim.grains[i].lin_vel) end @@ -145,11 +145,11 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init ≈ E_kin_lin_final atol=E_kin_lin_init*tol +Test.@test E_kin_rot_init ≈ E_kin_rot_final for i=1:5 info("testing ice floe $i") - @test 0. < norm(sim.grains[i].lin_vel) + Test.@test 0. < norm(sim.grains[i].lin_vel) end @@ -191,12 +191,12 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final -@test 0. < norm(sim.grains[1].lin_vel) +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test 0. < norm(sim.grains[1].lin_vel) for i=2:5 info("testing ice floe $i") - @test 0. ≈ norm(sim.grains[i].lin_vel) + Test.@test 0. ≈ norm(sim.grains[i].lin_vel) end @@ -210,12 +210,12 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final -@test 0. < norm(sim.grains[1].lin_vel) +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test 0. < norm(sim.grains[1].lin_vel) for i=2:5 info("testing ice floe $i") - @test 0. ≈ norm(sim.grains[i].lin_vel) + Test.@test 0. ≈ norm(sim.grains[i].lin_vel) end @@ -252,11 +252,11 @@ Granular.run!(sim, temporal_integration_method="Two-term Taylor", verbose=verbos E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final for i=1:5 info("testing ice floe $i") - @test 0. < norm(sim.grains[i].lin_vel) + Test.@test 0. < norm(sim.grains[i].lin_vel) end @@ -270,9 +270,9 @@ Granular.run!(sim, temporal_integration_method="Three-term Taylor", E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_lin_init > E_kin_lin_final -@test E_kin_rot_init ≈ E_kin_rot_final +Test.@test E_kin_lin_init > E_kin_lin_final +Test.@test E_kin_rot_init ≈ E_kin_rot_final for i=1:5 info("testing ice floe $i") - @test 0. < norm(sim.grains[i].lin_vel) + Test.@test 0. < norm(sim.grains[i].lin_vel) end diff --git a/test/contact-search-and-geometry.jl b/test/contact-search-and-geometry.jl @@ -12,8 +12,8 @@ Granular.addGrainCylindrical!(sim, [18., 0.], 10., 1., verbose=false) position_ij = Granular.interGrainPositionVector(sim, 1, 2) overlap_ij = Granular.findOverlap(sim, 1, 2, position_ij) -@test [-18., 0.] ≈ position_ij -@test -2. ≈ overlap_ij +Test.@test [-18., 0.] ≈ position_ij +Test.@test -2. ≈ overlap_ij info("Testing findContactsAllToAll(...)") @@ -27,75 +27,75 @@ Granular.findContacts!(sim) sim.grains[1].fixed = true # The contact should be registered in ice floe 1, but not ice floe 2 -@test 2 == sim.grains[1].contacts[1] -@test [-18., 0.] ≈ sim.grains[1].position_vector[1] +Test.@test 2 == sim.grains[1].contacts[1] +Test.@test [-18., 0.] ≈ sim.grains[1].position_vector[1] for ic=2:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 1 == sim.grains[1].n_contacts -@test 1 == sim.grains[2].n_contacts +Test.@test 1 == sim.grains[1].n_contacts +Test.@test 1 == sim.grains[2].n_contacts info("Testing findContacts(...)") sim = deepcopy(sim_copy) Granular.findContacts!(sim) -@test 2 == sim.grains[1].contacts[1] -@test [-18., 0.] ≈ sim.grains[1].position_vector[1] +Test.@test 2 == sim.grains[1].contacts[1] +Test.@test [-18., 0.] ≈ sim.grains[1].position_vector[1] for ic=2:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 1 == sim.grains[1].n_contacts -@test 1 == sim.grains[2].n_contacts +Test.@test 1 == sim.grains[1].n_contacts +Test.@test 1 == sim.grains[2].n_contacts -@test_throws ErrorException Granular.findContacts!(sim, method="") +Test.@test_throws ErrorException Granular.findContacts!(sim, method="") sim = deepcopy(sim_copy) sim.grains[1].fixed = true sim.grains[2].fixed = true Granular.findContacts!(sim) for ic=1:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 0 == sim.grains[1].n_contacts -@test 0 == sim.grains[2].n_contacts +Test.@test 0 == sim.grains[1].n_contacts +Test.@test 0 == sim.grains[2].n_contacts sim = deepcopy(sim_copy) Granular.disableGrain!(sim, 1) Granular.findContacts!(sim) for ic=1:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 0 == sim.grains[1].n_contacts -@test 0 == sim.grains[2].n_contacts +Test.@test 0 == sim.grains[1].n_contacts +Test.@test 0 == sim.grains[2].n_contacts sim = deepcopy(sim_copy) @@ -103,17 +103,17 @@ Granular.disableGrain!(sim, 1) Granular.disableGrain!(sim, 2) Granular.findContacts!(sim) for ic=1:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 0 == sim.grains[1].n_contacts -@test 0 == sim.grains[2].n_contacts +Test.@test 0 == sim.grains[1].n_contacts +Test.@test 0 == sim.grains[2].n_contacts info("Testing if interact(...) removes contacts correctly") sim = deepcopy(sim_copy) @@ -121,20 +121,20 @@ Granular.findContacts!(sim) Granular.interact!(sim) Granular.findContacts!(sim) -@test 2 == sim.grains[1].contacts[1] -@test [-18., 0.] ≈ sim.grains[1].position_vector[1] +Test.@test 2 == sim.grains[1].contacts[1] +Test.@test [-18., 0.] ≈ sim.grains[1].position_vector[1] for ic=2:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 1 == sim.grains[1].n_contacts -@test 1 == sim.grains[2].n_contacts +Test.@test 1 == sim.grains[1].n_contacts +Test.@test 1 == sim.grains[2].n_contacts info("Testing findContactsGrid(...)") @@ -143,19 +143,19 @@ sim.ocean = Granular.createRegularOceanGrid([4, 4, 2], [80., 80., 2.]) Granular.sortGrainsInGrid!(sim, sim.ocean) Granular.findContactsInGrid!(sim, sim.ocean) -@test 2 == sim.grains[1].contacts[1] +Test.@test 2 == sim.grains[1].contacts[1] for ic=2:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 1 == sim.grains[1].n_contacts -@test 1 == sim.grains[2].n_contacts +Test.@test 1 == sim.grains[1].n_contacts +Test.@test 1 == sim.grains[2].n_contacts sim = deepcopy(sim_copy) @@ -164,19 +164,19 @@ sim.grains[1].fixed = true Granular.sortGrainsInGrid!(sim, sim.ocean) Granular.findContactsInGrid!(sim, sim.ocean) -@test 2 == sim.grains[1].contacts[1] +Test.@test 2 == sim.grains[1].contacts[1] for ic=2:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 1 == sim.grains[1].n_contacts -@test 1 == sim.grains[2].n_contacts +Test.@test 1 == sim.grains[1].n_contacts +Test.@test 1 == sim.grains[2].n_contacts sim = deepcopy(sim_copy) @@ -187,17 +187,17 @@ Granular.sortGrainsInGrid!(sim, sim.ocean) Granular.findContactsInGrid!(sim, sim.ocean) for ic=1:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 0 == sim.grains[1].n_contacts -@test 0 == sim.grains[2].n_contacts +Test.@test 0 == sim.grains[1].n_contacts +Test.@test 0 == sim.grains[2].n_contacts info("Testing findContacts(...)") sim = deepcopy(sim_copy) @@ -205,21 +205,21 @@ sim.ocean = Granular.createRegularOceanGrid([4, 4, 2], [80., 80., 2.]) Granular.sortGrainsInGrid!(sim, sim.ocean) Granular.findContacts!(sim) -@test 2 == sim.grains[1].contacts[1] +Test.@test 2 == sim.grains[1].contacts[1] for ic=2:sim.Nc_max - @test 0 == sim.grains[1].contacts[ic] - @test [0., 0.] ≈ sim.grains[1].position_vector[ic] - @test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[1].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[1].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic] end for ic=1:sim.Nc_max - @test 0 == sim.grains[2].contacts[ic] - @test [0., 0.] ≈ sim.grains[2].position_vector[ic] - @test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] + Test.@test 0 == sim.grains[2].contacts[ic] + Test.@test [0., 0.] ≈ sim.grains[2].position_vector[ic] + Test.@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic] end -@test 1 == sim.grains[1].n_contacts -@test 1 == sim.grains[2].n_contacts +Test.@test 1 == sim.grains[1].n_contacts +Test.@test 1 == sim.grains[2].n_contacts -@test_throws ErrorException Granular.findContacts!(sim, method="") +Test.@test_throws ErrorException Granular.findContacts!(sim, method="") info("Testing contact registration with multiple contacts") sim = Granular.createSimulation(id="test") @@ -235,32 +235,32 @@ Granular.addGrainCylindrical!(sim, [6., 6.], 1.01, 1., verbose=false) sim.ocean = Granular.createRegularOceanGrid([4, 4, 2], [8., 8., 2.]) Granular.sortGrainsInGrid!(sim, sim.ocean) Granular.findContacts!(sim) -@test 2 == sim.grains[1].n_contacts -@test 3 == sim.grains[2].n_contacts -@test 2 == sim.grains[3].n_contacts -@test 3 == sim.grains[4].n_contacts -@test 4 == sim.grains[5].n_contacts -@test 3 == sim.grains[6].n_contacts -@test 2 == sim.grains[7].n_contacts -@test 3 == sim.grains[8].n_contacts -@test 2 == sim.grains[9].n_contacts +Test.@test 2 == sim.grains[1].n_contacts +Test.@test 3 == sim.grains[2].n_contacts +Test.@test 2 == sim.grains[3].n_contacts +Test.@test 3 == sim.grains[4].n_contacts +Test.@test 4 == sim.grains[5].n_contacts +Test.@test 3 == sim.grains[6].n_contacts +Test.@test 2 == sim.grains[7].n_contacts +Test.@test 3 == sim.grains[8].n_contacts +Test.@test 2 == sim.grains[9].n_contacts Granular.interact!(sim) Granular.interact!(sim) Granular.interact!(sim) Granular.interact!(sim) -@test 2 == sim.grains[1].n_contacts -@test 3 == sim.grains[2].n_contacts -@test 2 == sim.grains[3].n_contacts -@test 3 == sim.grains[4].n_contacts -@test 4 == sim.grains[5].n_contacts -@test 3 == sim.grains[6].n_contacts -@test 2 == sim.grains[7].n_contacts -@test 3 == sim.grains[8].n_contacts -@test 2 == sim.grains[9].n_contacts +Test.@test 2 == sim.grains[1].n_contacts +Test.@test 3 == sim.grains[2].n_contacts +Test.@test 2 == sim.grains[3].n_contacts +Test.@test 3 == sim.grains[4].n_contacts +Test.@test 4 == sim.grains[5].n_contacts +Test.@test 3 == sim.grains[6].n_contacts +Test.@test 2 == sim.grains[7].n_contacts +Test.@test 3 == sim.grains[8].n_contacts +Test.@test 2 == sim.grains[9].n_contacts for i=1:9 sim.grains[i].contact_radius = 0.99 end Granular.interact!(sim) for i=1:9 - @test sim.grains[i].n_contacts == 0 + Test.@test sim.grains[i].n_contacts == 0 end diff --git a/test/grain.jl b/test/grain.jl @@ -10,19 +10,19 @@ Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false) Granular.printGrainInfo(sim.grains[1]) -@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1, .1], +Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1, .1], 10., 1.) -@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], +Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], 10., 1., lin_vel=[.2,.2,.2]) -@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], +Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], 10., 1., lin_acc=[.2,.2,.2]) -@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], +Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], 0., 1.) -@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], +Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], 10., 1., density=-2.) -@test_throws ErrorException Granular.disableGrain!(sim, 0) +Test.@test_throws ErrorException Granular.disableGrain!(sim, 0) sim = Granular.createSimulation(id="test") Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false) @@ -38,7 +38,7 @@ if typeof(Pkg.installed("PyPlot")) == VersionNumber rm("test-grain-size-distribution.png") Granular.plotGrainSizeDistribution(sim, size_type="areal") rm("test-grain-size-distribution.png") - @test_throws ErrorException Granular.plotGrainSizeDistribution(sim, size_type="asdf") + Test.@test_throws ErrorException Granular.plotGrainSizeDistribution(sim, size_type="asdf") else - @test_throws ErrorException Granular.plotGrainSizeDistribution(sim) + Test.@test_throws ErrorException Granular.plotGrainSizeDistribution(sim) end diff --git a/test/grid.jl b/test/grid.jl @@ -10,76 +10,76 @@ ocean = Granular.readOceanNetCDF("Baltic/00010101.ocean_month.nc", info("Testing coordinate retrieval functions") sw, se, ne, nw = Granular.getCellCornerCoordinates(ocean.xq, ocean.yq, 1, 1) -@test sw ≈ [6., 53.] -@test se ≈ [7., 53.] -@test ne ≈ [7., 54.] -@test nw ≈ [6., 54.] -@test Granular.getCellCenterCoordinates(ocean.xh, ocean.yh, 1, 1) ≈ [6.5, 53.5] +Test.@test sw ≈ [6., 53.] +Test.@test se ≈ [7., 53.] +Test.@test ne ≈ [7., 54.] +Test.@test nw ≈ [6., 54.] +Test.@test Granular.getCellCenterCoordinates(ocean.xh, ocean.yh, 1, 1) ≈ [6.5, 53.5] info("Testing area-determination methods") -@test Granular.areaOfTriangle([0., 0.], [1., 0.], [0., 1.]) ≈ .5 -@test Granular.areaOfTriangle([1., 0.], [0., 1.], [0., 0.]) ≈ .5 -@test Granular.areaOfQuadrilateral([1., 0.], [0., 1.], [0., 0.], [1., 1.]) ≈ 1. +Test.@test Granular.areaOfTriangle([0., 0.], [1., 0.], [0., 1.]) ≈ .5 +Test.@test Granular.areaOfTriangle([1., 0.], [0., 1.], [0., 0.]) ≈ .5 +Test.@test Granular.areaOfQuadrilateral([1., 0.], [0., 1.], [0., 0.], [1., 1.]) ≈ 1. info("Testing area-based cell content determination") -@test Granular.isPointInCell(ocean, 1, 1, [6.5, 53.5], sw, se, ne, nw) == true -@test Granular.isPointInCell(ocean, 1, 1, [6.5, 53.5]) == true -@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.5, 53.5]) ≈ +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.5, 53.5], sw, se, ne, nw) == true +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.5, 53.5]) == true +Test.@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.5, 53.5]) ≈ [.5, .5] -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.5], sw, se, ne, nw) == true -@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.1, 53.5]) ≈ +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.5], sw, se, ne, nw) == true +Test.@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.1, 53.5]) ≈ [.1, .5] -@test Granular.isPointInCell(ocean, 1, 1, [6.0, 53.5], sw, se, ne, nw) == true -@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.0, 53.5]) ≈ +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.0, 53.5], sw, se, ne, nw) == true +Test.@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.0, 53.5]) ≈ [.0, .5] -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.7], sw, se, ne, nw) == true -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.9], sw, se, ne, nw) == true -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.99999], sw, se, ne, nw) == true -@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.1, 53.99999]) ≈ +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.7], sw, se, ne, nw) == true +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.9], sw, se, ne, nw) == true +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.99999], sw, se, ne, nw) == true +Test.@test Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [6.1, 53.99999]) ≈ [.1, .99999] -@test Granular.isPointInCell(ocean, 1, 1, [7.5, 53.5], sw, se, ne, nw) == false -@test Granular.isPointInCell(ocean, 1, 1, [0.0, 53.5], sw, se, ne, nw) == false +Test.@test Granular.isPointInCell(ocean, 1, 1, [7.5, 53.5], sw, se, ne, nw) == false +Test.@test Granular.isPointInCell(ocean, 1, 1, [0.0, 53.5], sw, se, ne, nw) == false x_tilde, _ = Granular.getNonDimensionalCellCoordinates(ocean, 1, 1, [0., 53.5]) -@test x_tilde < 0. +Test.@test x_tilde < 0. info("Testing conformal mapping methods") -@test Granular.conformalQuadrilateralCoordinates([0., 0.], +Test.@test Granular.conformalQuadrilateralCoordinates([0., 0.], [5., 0.], [5., 3.], [0., 3.], [2.5, 1.5]) ≈ [0.5, 0.5] -@test Granular.conformalQuadrilateralCoordinates([0., 0.], +Test.@test Granular.conformalQuadrilateralCoordinates([0., 0.], [5., 0.], [5., 3.], [0., 3.], [7.5, 1.5]) ≈ [1.5, 0.5] -@test Granular.conformalQuadrilateralCoordinates([0., 0.], +Test.@test Granular.conformalQuadrilateralCoordinates([0., 0.], [5., 0.], [5., 3.], [0., 3.], [7.5,-1.5]) ≈ [1.5,-0.5] -@test_throws ErrorException Granular.conformalQuadrilateralCoordinates([0., 0.], +Test.@test_throws ErrorException Granular.conformalQuadrilateralCoordinates([0., 0.], [5., 3.], [0., 3.], [5., 0.], [7.5,-1.5]) info("Checking cell content using conformal mapping methods") -@test Granular.isPointInCell(ocean, 1, 1, [6.4, 53.4], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.4, 53.4], sw, se, ne, nw, method="Conformal") == true -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.5], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.5], sw, se, ne, nw, method="Conformal") == true -@test Granular.isPointInCell(ocean, 1, 1, [6.0, 53.5], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.0, 53.5], sw, se, ne, nw, method="Conformal") == true -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.7], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.7], sw, se, ne, nw, method="Conformal") == true -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.9], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.9], sw, se, ne, nw, method="Conformal") == true -@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.99999], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [6.1, 53.99999], sw, se, ne, nw, method="Conformal") == true -@test Granular.isPointInCell(ocean, 1, 1, [7.5, 53.5], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [7.5, 53.5], sw, se, ne, nw, method="Conformal") == false -@test Granular.isPointInCell(ocean, 1, 1, [0.0, 53.5], sw, se, ne, nw, +Test.@test Granular.isPointInCell(ocean, 1, 1, [0.0, 53.5], sw, se, ne, nw, method="Conformal") == false info("Testing bilinear interpolation scheme on conformal mapping") @@ -92,36 +92,36 @@ Granular.bilinearInterpolation!(val, ocean.u[:,:,1,1], ocean.u[:,:,1,1], .5, .5, 1, 1) @time Granular.bilinearInterpolation!(val, ocean.u[:,:,1,1], ocean.u[:,:,1,1], .5, .5, 1, 1) -@test val[1] ≈ .5 -@test val[2] ≈ .5 +Test.@test val[1] ≈ .5 +Test.@test val[2] ≈ .5 Granular.bilinearInterpolation!(val, ocean.u[:,:,1,1], ocean.u[:,:,1,1], 1., 1., 1, 1) -@test val[1] ≈ .0 -@test val[2] ≈ .0 +Test.@test val[1] ≈ .0 +Test.@test val[2] ≈ .0 Granular.bilinearInterpolation!(val, ocean.u[:,:,1,1], ocean.u[:,:,1,1], 0., 0., 1, 1) -@test val[1] ≈ 1. -@test val[2] ≈ 1. +Test.@test val[1] ≈ 1. +Test.@test val[2] ≈ 1. Granular.bilinearInterpolation!(val, ocean.u[:,:,1,1], ocean.u[:,:,1,1], .25, .25, 1, 1) -@test val[1] ≈ .75 -@test val[2] ≈ .75 +Test.@test val[1] ≈ .75 +Test.@test val[2] ≈ .75 Granular.bilinearInterpolation!(val, ocean.u[:,:,1,1], ocean.u[:,:,1,1], .75, .75, 1, 1) -@test val[1] ≈ .25 -@test val[2] ≈ .25 +Test.@test val[1] ≈ .25 +Test.@test val[2] ≈ .25 info("Testing cell binning - Area-based approach") -@test Granular.findCellContainingPoint(ocean, [6.2,53.4], method="Area") == (1, 1) -@test Granular.findCellContainingPoint(ocean, [7.2,53.4], method="Area") == (2, 1) -@test Granular.findCellContainingPoint(ocean, [0.2,53.4], method="Area") == (0, 0) +Test.@test Granular.findCellContainingPoint(ocean, [6.2,53.4], method="Area") == (1, 1) +Test.@test Granular.findCellContainingPoint(ocean, [7.2,53.4], method="Area") == (2, 1) +Test.@test Granular.findCellContainingPoint(ocean, [0.2,53.4], method="Area") == (0, 0) info("Testing cell binning - Conformal mapping") -@test Granular.findCellContainingPoint(ocean, [6.2,53.4], method="Conformal") == +Test.@test Granular.findCellContainingPoint(ocean, [6.2,53.4], method="Conformal") == (1, 1) -@test Granular.findCellContainingPoint(ocean, [7.2,53.4], method="Conformal") == +Test.@test Granular.findCellContainingPoint(ocean, [7.2,53.4], method="Conformal") == (2, 1) -@test Granular.findCellContainingPoint(ocean, [0.2, 53.4], method="Conformal") == +Test.@test Granular.findCellContainingPoint(ocean, [0.2, 53.4], method="Conformal") == (0, 0) sim = Granular.createSimulation() @@ -131,11 +131,11 @@ Granular.addGrainCylindrical!(sim, [6.5, 53.5], 10., 1., verbose=verbose) Granular.addGrainCylindrical!(sim, [6.6, 53.5], 10., 1., verbose=verbose) Granular.addGrainCylindrical!(sim, [7.5, 53.5], 10., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) -@test sim.grains[1].ocean_grid_pos == [1, 1] -@test sim.grains[2].ocean_grid_pos == [1, 1] -@test sim.grains[3].ocean_grid_pos == [2, 1] -@test sim.ocean.grain_list[1, 1] == [1, 2] -@test sim.ocean.grain_list[2, 1] == [3] +Test.@test sim.grains[1].ocean_grid_pos == [1, 1] +Test.@test sim.grains[2].ocean_grid_pos == [1, 1] +Test.@test sim.grains[3].ocean_grid_pos == [2, 1] +Test.@test sim.ocean.grain_list[1, 1] == [1, 2] +Test.@test sim.ocean.grain_list[2, 1] == [3] info("Testing ocean drag") sim = Granular.createSimulation() @@ -146,10 +146,10 @@ Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) sim.time = ocean.time[1] Granular.addOceanDrag!(sim) -@test sim.grains[1].force[1] > 0. -@test sim.grains[1].force[2] ≈ 0. -@test sim.grains[2].force[1] > 0. -@test sim.grains[2].force[2] ≈ 0. +Test.@test sim.grains[1].force[1] > 0. +Test.@test sim.grains[1].force[2] ≈ 0. +Test.@test sim.grains[2].force[1] > 0. +Test.@test sim.grains[2].force[2] ≈ 0. sim.ocean.u[:,:,1,1] = -5. sim.ocean.v[:,:,1,1] = 5. Granular.addGrainCylindrical!(sim, [2.5, 3.5], 1., 1., verbose=verbose) @@ -157,10 +157,10 @@ Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) sim.time = ocean.time[1] Granular.addOceanDrag!(sim) -@test sim.grains[1].force[1] < 0. -@test sim.grains[1].force[2] > 0. -@test sim.grains[2].force[1] < 0. -@test sim.grains[2].force[2] > 0. +Test.@test sim.grains[1].force[1] < 0. +Test.@test sim.grains[1].force[2] > 0. +Test.@test sim.grains[2].force[1] < 0. +Test.@test sim.grains[2].force[2] > 0. info("Testing curl function") ocean.u[1, 1, 1, 1] = 1.0 @@ -172,14 +172,14 @@ sw = Vector{Float64}(2) se = Vector{Float64}(2) ne = Vector{Float64}(2) nw = Vector{Float64}(2) -@test Granular.curl(ocean, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) > 0. +Test.@test Granular.curl(ocean, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) > 0. ocean.u[1, 1, 1, 1] = 0.0 ocean.u[2, 1, 1, 1] = 0.0 ocean.u[2, 2, 1, 1] = 1.0 ocean.u[1, 2, 1, 1] = 1.0 ocean.v[:, :, 1, 1] = 0.0 -@test Granular.curl(ocean, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) < 0. +Test.@test Granular.curl(ocean, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) < 0. info("Testing atmosphere drag") sim = Granular.createSimulation() @@ -191,10 +191,10 @@ Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.atmosphere, verbose=verbose) sim.time = ocean.time[1] Granular.addAtmosphereDrag!(sim) -@test sim.grains[1].force[1] > 0. -@test sim.grains[1].force[2] ≈ 0. -@test sim.grains[2].force[1] > 0. -@test sim.grains[2].force[2] ≈ 0. +Test.@test sim.grains[1].force[1] > 0. +Test.@test sim.grains[1].force[2] ≈ 0. +Test.@test sim.grains[2].force[1] > 0. +Test.@test sim.grains[2].force[2] ≈ 0. sim.atmosphere.u[:,:,1,1] = -5. sim.atmosphere.v[:,:,1,1] = 5. Granular.addGrainCylindrical!(sim, [2.5, 3.5], 1., 1., verbose=verbose) @@ -202,10 +202,10 @@ Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.atmosphere, verbose=verbose) sim.time = ocean.time[1] Granular.addAtmosphereDrag!(sim) -@test sim.grains[1].force[1] < 0. -@test sim.grains[1].force[2] > 0. -@test sim.grains[2].force[1] < 0. -@test sim.grains[2].force[2] > 0. +Test.@test sim.grains[1].force[1] < 0. +Test.@test sim.grains[1].force[2] > 0. +Test.@test sim.grains[2].force[1] < 0. +Test.@test sim.grains[2].force[2] > 0. info("Testing curl function") atmosphere.u[1, 1, 1, 1] = 1.0 @@ -213,16 +213,16 @@ atmosphere.u[2, 1, 1, 1] = 1.0 atmosphere.u[2, 2, 1, 1] = 0.0 atmosphere.u[1, 2, 1, 1] = 0.0 atmosphere.v[:, :, 1, 1] = 0.0 -@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1) > 0. -@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) > 0. +Test.@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1) > 0. +Test.@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) > 0. atmosphere.u[1, 1, 1, 1] = 0.0 atmosphere.u[2, 1, 1, 1] = 0.0 atmosphere.u[2, 2, 1, 1] = 1.0 atmosphere.u[1, 2, 1, 1] = 1.0 atmosphere.v[:, :, 1, 1] = 0.0 -@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1) < 0. -@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) < 0. +Test.@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1) < 0. +Test.@test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) < 0. info("Testing findEmptyPositionInGridCell") @@ -232,8 +232,8 @@ sim.ocean = Granular.createRegularOceanGrid([4, 4, 2], [4., 4., 2.]) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) pos = Granular.findEmptyPositionInGridCell(sim, sim.ocean, 1, 1, 0.5, verbose=true) -@test pos != false -@test Granular.isPointInCell(sim.ocean, 1, 1, pos) == true +Test.@test pos != false +Test.@test Granular.isPointInCell(sim.ocean, 1, 1, pos) == true info("# Insert into cell with one other ice floe") sim = Granular.createSimulation() @@ -242,8 +242,8 @@ Granular.addGrainCylindrical!(sim, [.25, .25], .25, 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) pos = Granular.findEmptyPositionInGridCell(sim, sim.ocean, 1, 1, .25, verbose=true) -@test pos != false -@test Granular.isPointInCell(sim.ocean, 1, 1, pos) == true +Test.@test pos != false +Test.@test Granular.isPointInCell(sim.ocean, 1, 1, pos) == true info("# Insert into cell with two other grains") sim = Granular.createSimulation() @@ -253,8 +253,8 @@ Granular.addGrainCylindrical!(sim, [.75, .75], .25, 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) pos = Granular.findEmptyPositionInGridCell(sim, sim.ocean, 1, 1, .25, verbose=true) -@test pos != false -@test Granular.isPointInCell(sim.ocean, 1, 1, pos) == true +Test.@test pos != false +Test.@test Granular.isPointInCell(sim.ocean, 1, 1, pos) == true info("# Insert into full cell") sim = Granular.createSimulation() @@ -266,7 +266,7 @@ Granular.addGrainCylindrical!(sim, [.75, .75], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) pos = Granular.findEmptyPositionInGridCell(sim, sim.ocean, 1, 1, 0.5, verbose=false) -@test pos == false +Test.@test pos == false info("# Insert into empty cell") sim = Granular.createSimulation() @@ -274,8 +274,8 @@ sim.ocean = Granular.createRegularOceanGrid([4, 4, 2], [4., 4., 2.]) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) pos = Granular.findEmptyPositionInGridCell(sim, sim.ocean, 2, 2, 0.5, verbose=true) -@test pos != false -@test Granular.isPointInCell(sim.ocean, 2, 2, pos) == true +Test.@test pos != false +Test.@test Granular.isPointInCell(sim.ocean, 2, 2, pos) == true info("# Insert into full cell") sim = Granular.createSimulation() @@ -287,7 +287,7 @@ Granular.addGrainCylindrical!(sim, [1.75, 1.75], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) pos = Granular.findEmptyPositionInGridCell(sim, sim.ocean, 2, 2, 0.5, verbose=false) -@test pos == false +Test.@test pos == false info("Test default sorting with ocean/atmosphere grids") sim = Granular.createSimulation() @@ -300,19 +300,19 @@ Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) Granular.setTimeStep!(sim) Granular.setTotalTime!(sim, 1.0) Granular.run!(sim, single_step=true, verbose=verbose) -@test sim.atmosphere.collocated_with_ocean_grid == false -@test sim.grains[1].ocean_grid_pos == [1, 1] -@test sim.grains[2].ocean_grid_pos == [1, 1] -@test sim.grains[3].ocean_grid_pos == [3, 3] -@test sim.ocean.grain_list[1, 1] == [1, 2] -@test sim.ocean.grain_list[2, 2] == [] -@test sim.ocean.grain_list[3, 3] == [3] -@test sim.grains[1].atmosphere_grid_pos == [1, 1] -@test sim.grains[2].atmosphere_grid_pos == [1, 1] -@test sim.grains[3].atmosphere_grid_pos == [3, 3] -@test sim.atmosphere.grain_list[1, 1] == [1, 2] -@test sim.atmosphere.grain_list[2, 2] == [] -@test sim.atmosphere.grain_list[3, 3] == [3] +Test.@test sim.atmosphere.collocated_with_ocean_grid == false +Test.@test sim.grains[1].ocean_grid_pos == [1, 1] +Test.@test sim.grains[2].ocean_grid_pos == [1, 1] +Test.@test sim.grains[3].ocean_grid_pos == [3, 3] +Test.@test sim.ocean.grain_list[1, 1] == [1, 2] +Test.@test sim.ocean.grain_list[2, 2] == [] +Test.@test sim.ocean.grain_list[3, 3] == [3] +Test.@test sim.grains[1].atmosphere_grid_pos == [1, 1] +Test.@test sim.grains[2].atmosphere_grid_pos == [1, 1] +Test.@test sim.grains[3].atmosphere_grid_pos == [3, 3] +Test.@test sim.atmosphere.grain_list[1, 1] == [1, 2] +Test.@test sim.atmosphere.grain_list[2, 2] == [] +Test.@test sim.atmosphere.grain_list[3, 3] == [3] info("Test optimization when ocean/atmosphere grids are collocated") sim = Granular.createSimulation() @@ -325,19 +325,19 @@ Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) Granular.setTimeStep!(sim) Granular.setTotalTime!(sim, 1.0) Granular.run!(sim, single_step=true, verbose=verbose) -@test sim.atmosphere.collocated_with_ocean_grid == true -@test sim.grains[1].ocean_grid_pos == [1, 1] -@test sim.grains[2].ocean_grid_pos == [1, 1] -@test sim.grains[3].ocean_grid_pos == [3, 3] -@test sim.ocean.grain_list[1, 1] == [1, 2] -@test sim.ocean.grain_list[2, 2] == [] -@test sim.ocean.grain_list[3, 3] == [3] -@test sim.grains[1].atmosphere_grid_pos == [1, 1] -@test sim.grains[2].atmosphere_grid_pos == [1, 1] -@test sim.grains[3].atmosphere_grid_pos == [3, 3] -@test sim.atmosphere.grain_list[1, 1] == [1, 2] -@test sim.atmosphere.grain_list[2, 2] == [] -@test sim.atmosphere.grain_list[3, 3] == [3] +Test.@test sim.atmosphere.collocated_with_ocean_grid == true +Test.@test sim.grains[1].ocean_grid_pos == [1, 1] +Test.@test sim.grains[2].ocean_grid_pos == [1, 1] +Test.@test sim.grains[3].ocean_grid_pos == [3, 3] +Test.@test sim.ocean.grain_list[1, 1] == [1, 2] +Test.@test sim.ocean.grain_list[2, 2] == [] +Test.@test sim.ocean.grain_list[3, 3] == [3] +Test.@test sim.grains[1].atmosphere_grid_pos == [1, 1] +Test.@test sim.grains[2].atmosphere_grid_pos == [1, 1] +Test.@test sim.grains[3].atmosphere_grid_pos == [3, 3] +Test.@test sim.atmosphere.grain_list[1, 1] == [1, 2] +Test.@test sim.atmosphere.grain_list[2, 2] == [] +Test.@test sim.atmosphere.grain_list[3, 3] == [3] info("Testing ocean drag") sim = Granular.createSimulation() diff --git a/test/memory-management.jl b/test/memory-management.jl @@ -8,8 +8,8 @@ sim = Granular.createSimulation() empty_sim_size = 96 empty_sim_size_recursive = 544 -@test sizeof(sim) == empty_sim_size -@test Base.summarysize(sim) == empty_sim_size_recursive +Test.@test sizeof(sim) == empty_sim_size +Test.@test Base.summarysize(sim) == empty_sim_size_recursive size_per_grain = 360 size_per_grain_recursive = 1528 @@ -18,37 +18,37 @@ info("Testing memory usage when adding grains") for i=1:100 Granular.addGrainCylindrical!(sim, [1., 1.], 1., 1., verbose=false) - @test sizeof(sim) == empty_sim_size + Test.@test sizeof(sim) == empty_sim_size - @test sizeof(sim.grains) == sizeof(Int)*i - @test sizeof(sim.grains[:]) == sizeof(Int)*i - @test Base.summarysize(sim.grains) == size_per_grain_recursive*i + + Test.@test sizeof(sim.grains) == sizeof(Int)*i + Test.@test sizeof(sim.grains[:]) == sizeof(Int)*i + Test.@test Base.summarysize(sim.grains) == size_per_grain_recursive*i + sizeof(Int)*i - @test Base.summarysize(sim) == empty_sim_size_recursive + sizeof(Int)*i + + Test.@test Base.summarysize(sim) == empty_sim_size_recursive + sizeof(Int)*i + size_per_grain_recursive*i - @test Base.summarysize(sim.grains[i]) == size_per_grain_recursive + Test.@test Base.summarysize(sim.grains[i]) == size_per_grain_recursive for j=1:i - @test sizeof(sim.grains[j]) == size_per_grain - @test Base.summarysize(sim.grains[j]) == size_per_grain_recursive + Test.@test sizeof(sim.grains[j]) == size_per_grain + Test.@test Base.summarysize(sim.grains[j]) == size_per_grain_recursive end end info("Checking memory footprint when overwriting simulation object") sim = Granular.createSimulation() -@test sizeof(sim) == empty_sim_size -@test Base.summarysize(sim) == empty_sim_size_recursive +Test.@test sizeof(sim) == empty_sim_size +Test.@test Base.summarysize(sim) == empty_sim_size_recursive info("Check memory usage when stepping time for empty simulation object") sim = Granular.createSimulation() sim.time_step = 1.0 for i=1:10 Granular.run!(sim, single_step=true, verbose=false) - @test sizeof(sim) == empty_sim_size - @test Base.summarysize(sim) == empty_sim_size_recursive + Test.@test sizeof(sim) == empty_sim_size + Test.@test Base.summarysize(sim) == empty_sim_size_recursive end info("Check memory when stepping time with single ice floe") @@ -57,8 +57,8 @@ Granular.addGrainCylindrical!(sim, [1., 1.], 1., 1., verbose=false) sim.time_step = 1.0 for i=1:10 Granular.run!(sim, single_step=true, verbose=false) - @test sizeof(sim) == empty_sim_size - @test Base.summarysize(sim) == empty_sim_size_recursive + + Test.@test sizeof(sim) == empty_sim_size + Test.@test Base.summarysize(sim) == empty_sim_size_recursive + sizeof(Int)*length(sim.grains) + size_per_grain_recursive*length(sim.grains) end @@ -70,8 +70,8 @@ Granular.addGrainCylindrical!(sim, [1., 1.], 3., 1., verbose=false) sim.time_step = 1.0 for i=1:10 Granular.run!(sim, single_step=true, verbose=false) - @test sizeof(sim) == empty_sim_size - @test Base.summarysize(sim) == empty_sim_size_recursive + + Test.@test sizeof(sim) == empty_sim_size + Test.@test Base.summarysize(sim) == empty_sim_size_recursive + sizeof(Int)*length(sim.grains) + size_per_grain_recursive*length(sim.grains) end @@ -83,8 +83,8 @@ Granular.addGrainCylindrical!(sim, [1., 1.], 1.9, 1., verbose=false) sim.time_step = 1.0 for i=1:10 Granular.run!(sim, single_step=true, verbose=false) - @test sizeof(sim) == empty_sim_size - @test Base.summarysize(sim) == empty_sim_size_recursive + + Test.@test sizeof(sim) == empty_sim_size + Test.@test Base.summarysize(sim) == empty_sim_size_recursive + sizeof(Int)*length(sim.grains) + size_per_grain_recursive*length(sim.grains) end @@ -100,7 +100,7 @@ Granular.run!(sim, single_step=true, verbose=false) original_size_recursive = Base.summarysize(sim) for i=1:10 Granular.run!(sim, single_step=true, verbose=false) - @test Base.summarysize(sim) == original_size_recursive + Test.@test Base.summarysize(sim) == original_size_recursive end info("Checking if memory is freed after ended collision (all to all)") @@ -112,7 +112,7 @@ Granular.setTotalTime!(sim, 10.0) Granular.setTimeStep!(sim, epsilon=0.07, verbose=false) original_size_recursive = Base.summarysize(sim) Granular.run!(sim, verbose=false) -@test Base.summarysize(sim) == original_size_recursive +Test.@test Base.summarysize(sim) == original_size_recursive info("Checking if memory is freed after ended collision (cell sorting)") sim = Granular.createSimulation(id="test") @@ -128,10 +128,10 @@ original_grains_size_recursive = Base.summarysize(sim.grains) original_ocean_size_recursive = Base.summarysize(sim.ocean) original_atmosphere_size_recursive = Base.summarysize(sim.atmosphere) Granular.run!(sim, verbose=false) -@test Base.summarysize(sim.grains) == original_grains_size_recursive -@test Base.summarysize(sim.ocean) == original_ocean_size_recursive -@test Base.summarysize(sim.atmosphere) == original_atmosphere_size_recursive -@test Base.summarysize(sim) == original_sim_size_recursive +Test.@test Base.summarysize(sim.grains) == original_grains_size_recursive +Test.@test Base.summarysize(sim.ocean) == original_ocean_size_recursive +Test.@test Base.summarysize(sim.atmosphere) == original_atmosphere_size_recursive +Test.@test Base.summarysize(sim) == original_sim_size_recursive sim = Granular.createSimulation(id="test") Granular.addGrainCylindrical!(sim, [0., 0.], 10., 1., verbose=false) @@ -146,10 +146,10 @@ original_grains_size_recursive = Base.summarysize(sim.grains) original_ocean_size_recursive = Base.summarysize(sim.ocean) original_atmosphere_size_recursive = Base.summarysize(sim.atmosphere) Granular.run!(sim, verbose=false) -@test Base.summarysize(sim.grains) == original_grains_size_recursive -@test Base.summarysize(sim.ocean) == original_ocean_size_recursive -@test Base.summarysize(sim.atmosphere) == original_atmosphere_size_recursive -@test Base.summarysize(sim) == original_sim_size_recursive +Test.@test Base.summarysize(sim.grains) == original_grains_size_recursive +Test.@test Base.summarysize(sim.ocean) == original_ocean_size_recursive +Test.@test Base.summarysize(sim.atmosphere) == original_atmosphere_size_recursive +Test.@test Base.summarysize(sim) == original_sim_size_recursive sim = Granular.createSimulation(id="test") Granular.addGrainCylindrical!(sim, [0., 0.], 10., 1., verbose=false) @@ -165,9 +165,9 @@ original_grains_size_recursive = Base.summarysize(sim.grains) original_ocean_size_recursive = Base.summarysize(sim.ocean) original_atmosphere_size_recursive = Base.summarysize(sim.atmosphere) Granular.run!(sim, verbose=false) -@test Base.summarysize(sim.grains) == original_grains_size_recursive -@test Base.summarysize(sim.ocean) == original_ocean_size_recursive -@test Base.summarysize(sim.atmosphere) == original_atmosphere_size_recursive -@test Base.summarysize(sim) == original_sim_size_recursive +Test.@test Base.summarysize(sim.grains) == original_grains_size_recursive +Test.@test Base.summarysize(sim.ocean) == original_ocean_size_recursive +Test.@test Base.summarysize(sim.atmosphere) == original_atmosphere_size_recursive +Test.@test Base.summarysize(sim) == original_sim_size_recursive Granular.printMemoryUsage(sim) diff --git a/test/netcdf.jl b/test/netcdf.jl @@ -4,39 +4,39 @@ info("#### $(basename(@__FILE__)) ####") -@test_throws ErrorException Granular.readOceanStateNetCDF("nonexistentfile") -@test_throws ErrorException Granular.readOceanGridNetCDF("nonexistentfile") +Test.@test_throws ErrorException Granular.readOceanStateNetCDF("nonexistentfile") +Test.@test_throws ErrorException Granular.readOceanGridNetCDF("nonexistentfile") info("Testing dimensions of content read from Baltic test case") ocean = Granular.readOceanNetCDF("Baltic/00010101.ocean_month.nc", "Baltic/ocean_hgrid.nc") -@test ocean.time/(24.*60.*60.) ≈ [.5, 1.5, 2.5, 3.5, 4.5] -@test size(ocean.xq) == (24, 15) -@test size(ocean.yq) == (24, 15) -@test size(ocean.xh) == (23, 14) -@test size(ocean.yh) == (23, 14) -@test size(ocean.u) == (24, 15, 63, 5) -@test size(ocean.v) == (24, 15, 63, 5) -@test size(ocean.h) == (23, 14, 63, 5) -@test size(ocean.e) == (23, 14, 64, 5) +Test.@test ocean.time/(24.*60.*60.) ≈ [.5, 1.5, 2.5, 3.5, 4.5] +Test.@test size(ocean.xq) == (24, 15) +Test.@test size(ocean.yq) == (24, 15) +Test.@test size(ocean.xh) == (23, 14) +Test.@test size(ocean.yh) == (23, 14) +Test.@test size(ocean.u) == (24, 15, 63, 5) +Test.@test size(ocean.v) == (24, 15, 63, 5) +Test.@test size(ocean.h) == (23, 14, 63, 5) +Test.@test size(ocean.e) == (23, 14, 64, 5) info("Testing ocean state interpolation") -@test_throws ErrorException Granular.interpolateOceanState(ocean, time=0.) -@test_throws ErrorException Granular.interpolateOceanState(ocean, time=1.e34) +Test.@test_throws ErrorException Granular.interpolateOceanState(ocean, time=0.) +Test.@test_throws ErrorException Granular.interpolateOceanState(ocean, time=1.e34) u1, v1, h1, e1 = Granular.interpolateOceanState(ocean, ocean.time[1]) u2, v2, h2, e2 = Granular.interpolateOceanState(ocean, ocean.time[2]) -@test_throws ErrorException Granular.interpolateOceanState(ocean, -1.) +Test.@test_throws ErrorException Granular.interpolateOceanState(ocean, -1.) u1_5, v1_5, h1_5, e1_5 = Granular.interpolateOceanState(ocean, ocean.time[1] + (ocean.time[2] - ocean.time[1])/2.) -@test u1 ≈ ocean.u[:, :, :, 1] -@test v1 ≈ ocean.v[:, :, :, 1] -@test h1 ≈ ocean.h[:, :, :, 1] -@test e1 ≈ ocean.e[:, :, :, 1] -@test u2 ≈ ocean.u[:, :, :, 2] -@test v2 ≈ ocean.v[:, :, :, 2] -@test h2 ≈ ocean.h[:, :, :, 2] -@test e2 ≈ ocean.e[:, :, :, 2] -@test u1_5 ≈ (ocean.u[:, :, :, 1] + ocean.u[:, :, :, 2])/2. -@test v1_5 ≈ (ocean.v[:, :, :, 1] + ocean.v[:, :, :, 2])/2. -@test h1_5 ≈ (ocean.h[:, :, :, 1] + ocean.h[:, :, :, 2])/2. -@test e1_5 ≈ (ocean.e[:, :, :, 1] + ocean.e[:, :, :, 2])/2. +Test.@test u1 ≈ ocean.u[:, :, :, 1] +Test.@test v1 ≈ ocean.v[:, :, :, 1] +Test.@test h1 ≈ ocean.h[:, :, :, 1] +Test.@test e1 ≈ ocean.e[:, :, :, 1] +Test.@test u2 ≈ ocean.u[:, :, :, 2] +Test.@test v2 ≈ ocean.v[:, :, :, 2] +Test.@test h2 ≈ ocean.h[:, :, :, 2] +Test.@test e2 ≈ ocean.e[:, :, :, 2] +Test.@test u1_5 ≈ (ocean.u[:, :, :, 1] + ocean.u[:, :, :, 2])/2. +Test.@test v1_5 ≈ (ocean.v[:, :, :, 1] + ocean.v[:, :, :, 2])/2. +Test.@test h1_5 ≈ (ocean.h[:, :, :, 1] + ocean.h[:, :, :, 2])/2. +Test.@test e1_5 ≈ (ocean.e[:, :, :, 1] + ocean.e[:, :, :, 2])/2. diff --git a/test/ocean.jl b/test/ocean.jl @@ -8,24 +8,24 @@ info("#### $(basename(@__FILE__)) ####") info("Testing regular grid generation") sim = Granular.createSimulation() sim.ocean = Granular.createRegularOceanGrid([6, 6, 6], [1., 1., 1.]) -@test size(sim.ocean.xq) == (7, 7) -@test size(sim.ocean.yq) == (7, 7) -@test size(sim.ocean.xh) == (6, 6) -@test size(sim.ocean.yh) == (6, 6) -@test sim.ocean.xq[1, :, 1] ≈ zeros(7) -@test sim.ocean.xq[4, :, 1] ≈ .5*ones(7) -@test sim.ocean.xq[end, :, 1] ≈ 1.*ones(7) -@test sim.ocean.yq[:, 1, 1] ≈ zeros(7) -@test sim.ocean.yq[:, 4, 1] ≈ .5*ones(7) -@test sim.ocean.yq[:, end, 1] ≈ 1.*ones(7) -@test size(sim.ocean.u) == (7, 7, 6, 1) -@test size(sim.ocean.v) == (7, 7, 6, 1) -@test size(sim.ocean.h) == (7, 7, 6, 1) -@test size(sim.ocean.e) == (7, 7, 6, 1) -@test sim.ocean.u ≈ zeros(7, 7, 6, 1) -@test sim.ocean.v ≈ zeros(7, 7, 6, 1) -@test sim.ocean.h ≈ zeros(7, 7, 6, 1) -@test sim.ocean.e ≈ zeros(7, 7, 6, 1) +Test.@test size(sim.ocean.xq) == (7, 7) +Test.@test size(sim.ocean.yq) == (7, 7) +Test.@test size(sim.ocean.xh) == (6, 6) +Test.@test size(sim.ocean.yh) == (6, 6) +Test.@test sim.ocean.xq[1, :, 1] ≈ zeros(7) +Test.@test sim.ocean.xq[4, :, 1] ≈ .5*ones(7) +Test.@test sim.ocean.xq[end, :, 1] ≈ 1.*ones(7) +Test.@test sim.ocean.yq[:, 1, 1] ≈ zeros(7) +Test.@test sim.ocean.yq[:, 4, 1] ≈ .5*ones(7) +Test.@test sim.ocean.yq[:, end, 1] ≈ 1.*ones(7) +Test.@test size(sim.ocean.u) == (7, 7, 6, 1) +Test.@test size(sim.ocean.v) == (7, 7, 6, 1) +Test.@test size(sim.ocean.h) == (7, 7, 6, 1) +Test.@test size(sim.ocean.e) == (7, 7, 6, 1) +Test.@test sim.ocean.u ≈ zeros(7, 7, 6, 1) +Test.@test sim.ocean.v ≈ zeros(7, 7, 6, 1) +Test.@test sim.ocean.h ≈ zeros(7, 7, 6, 1) +Test.@test sim.ocean.e ≈ zeros(7, 7, 6, 1) info("Testing velocity drag interaction (static ocean)") Granular.addGrainCylindrical!(sim, [.5, .5], .25, .1) @@ -38,10 +38,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after -@test E_kin_lin_init > E_kin_lin_final # linear velocity lost due to ocean drag -@test sim.grains[1].ocean_stress[1] < 0. -@test sim.grains[1].ocean_stress[2] ≈ 0. +Test.@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after +Test.@test E_kin_lin_init > E_kin_lin_final # linear velocity lost due to ocean drag +Test.@test sim.grains[1].ocean_stress[1] < 0. +Test.@test sim.grains[1].ocean_stress[2] ≈ 0. info("Testing velocity drag interaction (static ice floe)") sim = deepcopy(sim_init) @@ -51,10 +51,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after -@test E_kin_lin_init < E_kin_lin_final # linear vel. gained due to ocean drag -@test sim.grains[1].ocean_stress[1] ≈ 0. -@test sim.grains[1].ocean_stress[2] > 0. +Test.@test E_kin_rot_init ≈ E_kin_rot_final # no rotation before or after +Test.@test E_kin_lin_init < E_kin_lin_final # linear vel. gained due to ocean drag +Test.@test sim.grains[1].ocean_stress[1] ≈ 0. +Test.@test sim.grains[1].ocean_stress[2] > 0. info("Testing vortex interaction (static ocean)") sim = deepcopy(sim_init) @@ -64,10 +64,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test E_kin_rot_init > E_kin_rot_final # energy lost to ocean -@test sim.grains[1].ang_vel > 0. # check angular velocity orientation -@test sim.grains[1].ang_pos > 0. # check angular position orientation -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test E_kin_rot_init > E_kin_rot_final # energy lost to ocean +Test.@test sim.grains[1].ang_vel > 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos > 0. # check angular position orientation +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained info("Testing vortex interaction (static ice floe)") sim = deepcopy(sim_init) @@ -81,10 +81,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel > 0. # check angular velocity orientation -@test sim.grains[1].ang_pos > 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel > 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos > 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) @@ -97,10 +97,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel < 0. # check angular velocity orientation -@test sim.grains[1].ang_pos < 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel < 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos < 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) @@ -113,10 +113,10 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel < 0. # check angular velocity orientation -@test sim.grains[1].ang_pos < 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel < 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos < 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) @@ -129,7 +129,7 @@ E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) E_kin_lin_final = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) -@test sim.grains[1].ang_vel > 0. # check angular velocity orientation -@test sim.grains[1].ang_pos > 0. # check angular position orientation -@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex -@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained +Test.@test sim.grains[1].ang_vel > 0. # check angular velocity orientation +Test.@test sim.grains[1].ang_pos > 0. # check angular position orientation +Test.@test E_kin_rot_init < E_kin_rot_final # rotation after due to ocean vortex +Test.@test E_kin_lin_init ≈ E_kin_lin_final # no linear velocity gained diff --git a/test/profiling.jl b/test/profiling.jl @@ -79,12 +79,12 @@ function timeSingleStepInDenseSimulation(nx::Int; verbose::Bool=true, #Granular.writeVTK(sim) - @test sim.grains[1].n_contacts == 0 - @test sim.grains[2].n_contacts == 1 - @test sim.grains[3].n_contacts == 1 - @test sim.grains[nx].n_contacts == 0 - @test sim.grains[nx + 1].n_contacts == 1 - @test sim.grains[nx + 2].n_contacts == 4 + Test.@test sim.grains[1].n_contacts == 0 + Test.@test sim.grains[2].n_contacts == 1 + Test.@test sim.grains[3].n_contacts == 1 + Test.@test sim.grains[nx].n_contacts == 0 + Test.@test sim.grains[nx + 1].n_contacts == 1 + Test.@test sim.grains[nx + 2].n_contacts == 4 return t_elapsed, Base.summarysize(sim) end diff --git a/test/runtests.jl b/test/runtests.jl @@ -1,5 +1,4 @@ import Granular -using Base.Test include("grain.jl") include("packing.jl") diff --git a/test/temporal.jl b/test/temporal.jl @@ -1,20 +1,20 @@ info("Testing temporal functionality") sim = Granular.createSimulation() -@test_throws ErrorException Granular.setTimeStep!(sim) +Test.@test_throws ErrorException Granular.setTimeStep!(sim) Granular.setOutputFileInterval!(sim, 1e-9) -@test_throws ErrorException Granular.setTotalTime!(sim, 0.) -@test_throws ErrorException Granular.setCurrentTime!(sim, 0.) +Test.@test_throws ErrorException Granular.setTotalTime!(sim, 0.) +Test.@test_throws ErrorException Granular.setCurrentTime!(sim, 0.) Granular.setCurrentTime!(sim, 1.) -@test sim.time ≈ 1.0 -@test_throws ErrorException Granular.incrementCurrentTime!(sim, 0.) +Test.@test sim.time ≈ 1.0 +Test.@test_throws ErrorException Granular.incrementCurrentTime!(sim, 0.) Granular.setOutputFileInterval!(sim, 0.) Granular.disableOutputFiles!(sim) -@test_throws ErrorException Granular.checkTimeParameters(sim) +Test.@test_throws ErrorException Granular.checkTimeParameters(sim) Granular.addGrainCylindrical!(sim, [.1,.1], 2., 2.) sim.grains[1].mass = 0. -@test_throws ErrorException Granular.setTimeStep!(sim) +Test.@test_throws ErrorException Granular.setTimeStep!(sim) sim = Granular.createSimulation() sim2 = Granular.createSimulation() diff --git a/test/util.jl b/test/util.jl @@ -4,23 +4,23 @@ info("#### $(basename(@__FILE__)) ####") info("Testing power-law RNG") -@test 1 == length(Granular.randpower()) -@test () == size(Granular.randpower()) -@test 1 == length(Granular.randpower(1)) -@test () == size(Granular.randpower(1)) -@test 4 == length(Granular.randpower((2,2))) -@test (2,2) == size(Granular.randpower((2,2))) -@test 5 == length(Granular.randpower(5)) -@test (5,) == size(Granular.randpower(5)) +Test.@test 1 == length(Granular.randpower()) +Test.@test () == size(Granular.randpower()) +Test.@test 1 == length(Granular.randpower(1)) +Test.@test () == size(Granular.randpower(1)) +Test.@test 4 == length(Granular.randpower((2,2))) +Test.@test (2,2) == size(Granular.randpower((2,2))) +Test.@test 5 == length(Granular.randpower(5)) +Test.@test (5,) == size(Granular.randpower(5)) srand(1) for i=1:10^5 - @test 0. <= Granular.randpower() <= 1. - @test 0. <= Granular.randpower(1, 1., 0., 1.) <= 1. - @test 0. <= Granular.randpower(1, 1., 0., .1) <= .1 - @test 5. <= Granular.randpower(1, 1., 5., 6.) <= 6. - @test 0. <= minimum(Granular.randpower((2,2), 1., 0., 1.)) - @test 1. >= maximum(Granular.randpower((2,2), 1., 0., 1.)) - @test 0. <= minimum(Granular.randpower(5, 1., 0., 1.)) - @test 1. >= minimum(Granular.randpower(5, 1., 0., 1.)) + Test.@test 0. <= Granular.randpower() <= 1. + Test.@test 0. <= Granular.randpower(1, 1., 0., 1.) <= 1. + Test.@test 0. <= Granular.randpower(1, 1., 0., .1) <= .1 + Test.@test 5. <= Granular.randpower(1, 1., 5., 6.) <= 6. + Test.@test 0. <= minimum(Granular.randpower((2,2), 1., 0., 1.)) + Test.@test 1. >= maximum(Granular.randpower((2,2), 1., 0., 1.)) + Test.@test 0. <= minimum(Granular.randpower(5, 1., 0., 1.)) + Test.@test 1. >= minimum(Granular.randpower(5, 1., 0., 1.)) end diff --git a/test/vtk.jl b/test/vtk.jl @@ -41,10 +41,10 @@ oceanchecksum = "d56ffb109841a803f2b2b94c74c87f7a497237204841d557d2b1043694d51f0d " * oceanpath * "\n" -@test readstring(`$(cmd) $(grainpath)$(cmd_post)`) == grainchecksum -@test readstring(`$(cmd) $(graininteractionpath)$(cmd_post)`) == +Test.@test readstring(`$(cmd) $(grainpath)$(cmd_post)`) == grainchecksum +Test.@test readstring(`$(cmd) $(graininteractionpath)$(cmd_post)`) == graininteractionchecksum -@test readstring(`$(cmd) $(oceanpath)$(cmd_post)`) == oceanchecksum +Test.@test readstring(`$(cmd) $(oceanpath)$(cmd_post)`) == oceanchecksum Granular.removeSimulationFiles(sim) @@ -54,7 +54,7 @@ Granular.setTotalTime!(sim, 1.5) Granular.setTimeStep!(sim) sim.file_number = 0 Granular.run!(sim, single_step=true) -@test Granular.readSimulationStatus(sim.id) == 1 +Test.@test Granular.readSimulationStatus(sim.id) == 1 Granular.setOutputFileInterval!(sim, 0.1) Granular.run!(sim) @@ -64,14 +64,14 @@ info("Testing generation of Paraview Python script") Granular.writeParaviewPythonScript(sim, save_animation=true, save_images=false) -@test isfile("$(sim.id)/$(sim.id).py") && filesize("$(sim.id)/$(sim.id).py") > 0 +Test.@test isfile("$(sim.id)/$(sim.id).py") && filesize("$(sim.id)/$(sim.id).py") > 0 info("Testing Paraview rendering if `pvpython` is present") try run(`pvpython $(sim.id)/$(sim.id).py`) catch return_signal if !isa(return_signal, Base.UVError) - @test isfile("$(sim.id)/$(sim.id).avi") + Test.@test isfile("$(sim.id)/$(sim.id).avi") end end @@ -82,16 +82,16 @@ try run(`pvpython $(sim.id)/$(sim.id).py`) catch return_signal if !isa(return_signal, Base.UVError) - @test isfile("$(sim.id)/$(sim.id).0000.png") - @test isfile("$(sim.id)/$(sim.id).0014.png") + Test.@test isfile("$(sim.id)/$(sim.id).0000.png") + Test.@test isfile("$(sim.id)/$(sim.id).0014.png") Granular.render(sim) - @test isfile("$(sim.id)/$(sim.id).0001.png") + Test.@test isfile("$(sim.id)/$(sim.id).0001.png") end end -@test readstring(`$(cmd) $(grainpath)$(cmd_post)`) == grainchecksum -@test readstring(`$(cmd) $(graininteractionpath)$(cmd_post)`) == +Test.@test readstring(`$(cmd) $(grainpath)$(cmd_post)`) == grainchecksum +Test.@test readstring(`$(cmd) $(graininteractionpath)$(cmd_post)`) == graininteractionchecksum -@test readstring(`$(cmd) $(oceanpath)$(cmd_post)`) == oceanchecksum +Test.@test readstring(`$(cmd) $(oceanpath)$(cmd_post)`) == oceanchecksum Granular.removeSimulationFiles(sim)