From e6deef4a0af9b279b8d7904fe819ffaee6450c50 Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Tue, 29 Sep 2015 10:24:01 +0300 Subject: [PATCH] Update test_types.jl Added description for testing --- test/test_types.jl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/test/test_types.jl b/test/test_types.jl index a94b88b..90c90ee 100644 --- a/test/test_types.jl +++ b/test/test_types.jl @@ -33,30 +33,37 @@ facts("test fields and interpolation") do u2 = (t*u)(0.5) @fact u2.values --> [0.5, 1.5] - # interpolation between set of fields + # interpolation in set of fields is defined for every time value u1 = Field(0.0, [0.0, 0.0]) u2 = Field(1.0, [1.0, 2.0]) u3 = Field(2.0, [0.5, 1.5]) u = Field[u1, u2, u3] - @fact u(-1.0).values --> [0.0, 0.0] + @fact u(-1.0).values --> [0.0, 0.0] # "out of range -" -> first known value @fact u(0.0).values --> [0.0, 0.0] @fact u(1.0).values --> [1.0, 2.0] @fact u(2.0).values --> [0.5, 1.5] - @fact u(3.0).values --> [0.5, 1.5] + @fact u(3.0).values --> [0.5, 1.5] # "out of range +" -> last known value @fact u(0.5).values --> [0.5, 1.0] @fact u(1.5).values --> [0.75, 1.75] + # use Inf to get very first or last value of field + @fact u(-Inf).values --> [0.0, 0.0] + @fact u(+Inf).values --> [0.75, 1.75] + # multidimensional interpolation with and without derivatives X = Field(0.0, Vector[[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0]]) h = Basis((xi) -> [(1-xi[1])*(1-xi[2])/4 (1+xi[1])*(1-xi[2])/4 (1+xi[1])*(1+xi[2])/4 (1-xi[1])*(1+xi[2])/4]) + # midpoint of field @fact (h*X)([0.0, 0.0]) --> [0.5, 0.5] @fact h([0.0, 0.0])*X --> [0.5, 0.5] + # derivatives of field at midpoint @fact diff(h)([0.0, 0.0])*X --> [0.5 0.0; 0.0 0.5] @fact (diff(h)*X)([0.0, 0.0]) --> [0.5 0.0; 0.0 0.5] + # multiplying scalar field with a vector -> vector b = Basis((xi) -> [1/2*(1-xi[1]), 1/2*(1+xi[1])]) f = Field(0.0, 100.0) @fact b(0.0) * f --> [50.0, 50.0]