commit 8306704d78dfadc40750669de1fbdfc32d0d99a1
parent 679fbb6447fc38b7bd214b3bac2c3c7300817069
Author: Anders Damsgaard <andersd@riseup.net>
Date: Mon, 12 Jun 2017 15:24:03 -0400
make JLD optional
Diffstat:
M | src/io.jl | | | 42 | +++++++++++++++++++++++++++++------------- |
M | test/jld.jl | | | 25 | +++++++++++++++---------- |
2 files changed, 44 insertions(+), 23 deletions(-)
diff --git a/src/io.jl b/src/io.jl
@@ -1,6 +1,10 @@
import WriteVTK
import NetCDF
-import JLD
+hasJLD = false
+if typeof(Pkg.installed("JLD")) == VersionNumber
+ import JLD
+ hasJLD = true
+end
## IO functions
@@ -19,17 +23,23 @@ function writeSimulation(simulation::Simulation;
filename::String="",
folder::String=".",
verbose::Bool=true)
- if filename == ""
- folder = folder * "/" * simulation.id
- mkpath(folder)
- filename = string(folder, "/", simulation.id, ".",
- simulation.file_number, ".jld")
- end
+ if !hasJLD
+ warn("Package JLD not found. Simulation save/read not supported. " *
+ "Please install JLD and its " *
+ "requirements with `Pkg.add(\"JLD\")`.")
+ else
+ if filename == ""
+ folder = folder * "/" * simulation.id
+ mkpath(folder)
+ filename = string(folder, "/", simulation.id, ".",
+ simulation.file_number, ".jld")
+ end
- JLD.save(filename, "simulation", simulation)
+ JLD.save(filename, "simulation", simulation)
- if verbose
- info("simulation written to $filename")
+ if verbose
+ info("simulation written to $filename")
+ end
end
end
@@ -42,10 +52,16 @@ Read all content from `Simulation` from disk in JDL format.
"""
function readSimulation(filename::String="";
verbose::Bool=true)
- if verbose
- info("reading simulation from $filename")
+ if !hasJLD
+ warn("Package JLD not found. Simulation save/read not supported. " *
+ "Please install JLD and its " *
+ "requirements with `Pkg.add(\"JLD\")`.")
+ else
+ if verbose
+ info("reading simulation from $filename")
+ end
+ return JLD.load(filename, "simulation")
end
- return JLD.load(filename, "simulation")
end
export writeSimulationStatus
diff --git a/test/jld.jl b/test/jld.jl
@@ -2,15 +2,20 @@
info("#### $(basename(@__FILE__)) ####")
-info("Writing simple simulation to JLD file")
-sim = SeaIce.createSimulation(id="test")
-SeaIce.addIceFloeCylindrical(sim, [ 0., 0.], 10., 1., verbose=false)
-SeaIce.addIceFloeCylindrical(sim, [18., 0.], 10., 1., verbose=false)
-sim.ocean = SeaIce.createRegularOceanGrid([10, 20, 5], [10., 25., 2.])
-SeaIce.findContacts!(sim, method="all to all")
-SeaIce.writeVTK(sim, verbose=false)
+info("Determining if JLD is installed")
+if typeof(Pkg.installed("JLD")) == VersionNumber
+ info("JLD found, proceeding with JLD-specific tests")
-SeaIce.writeSimulation(sim)
+ info("Writing simple simulation to JLD file")
+ sim = SeaIce.createSimulation(id="test")
+ SeaIce.addIceFloeCylindrical(sim, [ 0., 0.], 10., 1., verbose=false)
+ SeaIce.addIceFloeCylindrical(sim, [18., 0.], 10., 1., verbose=false)
+ sim.ocean = SeaIce.createRegularOceanGrid([10, 20, 5], [10., 25., 2.])
+ SeaIce.findContacts!(sim, method="all to all")
+ SeaIce.writeVTK(sim, verbose=false)
-sim2 = SeaIce.readSimulation("./test/test.1.jld")
-SeaIce.compareSimulations(sim, sim2)
+ SeaIce.writeSimulation(sim)
+
+ sim2 = SeaIce.readSimulation("./test/test.1.jld")
+ SeaIce.compareSimulations(sim, sim2)
+end