tnetcdf.jl - Granular.jl - Julia package for granular dynamics simulation
 (HTM) git clone git://src.adamsgaard.dk/Granular.jl
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tnetcdf.jl (1825B)
       ---
            1 #!/usr/bin/env julia
            2 
            3 # Check if NetCDF files are read correctly from the disk.
            4 
            5 @test_throws ErrorException Granular.readOceanStateNetCDF("nonexistentfile")
            6 @test_throws ErrorException Granular.readOceanGridNetCDF("nonexistentfile")
            7 
            8 @info "Testing dimensions of content read from Baltic test case"
            9 ocean = Granular.readOceanNetCDF("Baltic/00010101.ocean_month.nc",
           10                                "Baltic/ocean_hgrid.nc")
           11 @test ocean.time / (24. * 60. * 60.) ≈ [.5, 1.5, 2.5, 3.5, 4.5]
           12 @test size(ocean.xq) == (24, 15)
           13 @test size(ocean.yq) == (24, 15)
           14 @test size(ocean.xh) == (23, 14)
           15 @test size(ocean.yh) == (23, 14)
           16 @test size(ocean.u) == (24, 15, 63, 5)
           17 @test size(ocean.v) == (24, 15, 63, 5)
           18 @test size(ocean.h) == (23, 14, 63, 5)
           19 @test size(ocean.e) == (23, 14, 64, 5)
           20 
           21 @info "Testing ocean state interpolation"
           22 @test_throws ErrorException Granular.interpolateOceanState(ocean, time=0.)
           23 @test_throws ErrorException Granular.interpolateOceanState(ocean, time=1.e34)
           24 u1, v1, h1, e1 = Granular.interpolateOceanState(ocean, ocean.time[1])
           25 u2, v2, h2, e2 = Granular.interpolateOceanState(ocean, ocean.time[2])
           26 @test_throws ErrorException Granular.interpolateOceanState(ocean, -1.)
           27 u1_5, v1_5, h1_5, e1_5 = Granular.interpolateOceanState(ocean,
           28     ocean.time[1] + (ocean.time[2] - ocean.time[1]) / 2.)
           29 @test u1 ≈ ocean.u[:, :, :, 1]
           30 @test v1 ≈ ocean.v[:, :, :, 1]
           31 @test h1 ≈ ocean.h[:, :, :, 1]
           32 @test e1 ≈ ocean.e[:, :, :, 1]
           33 @test u2 ≈ ocean.u[:, :, :, 2]
           34 @test v2 ≈ ocean.v[:, :, :, 2]
           35 @test h2 ≈ ocean.h[:, :, :, 2]
           36 @test e2 ≈ ocean.e[:, :, :, 2]
           37 @test u1_5 ≈ (ocean.u[:, :, :, 1] + ocean.u[:, :, :, 2]) / 2.
           38 @test v1_5 ≈ (ocean.v[:, :, :, 1] + ocean.v[:, :, :, 2]) / 2.
           39 @test h1_5 ≈ (ocean.h[:, :, :, 1] + ocean.h[:, :, :, 2]) / 2.
           40 @test e1_5 ≈ (ocean.e[:, :, :, 1] + ocean.e[:, :, :, 2]) / 2.