Update test_types.jl

Added description for testing
This commit is contained in:
Jukka Aho
2015-09-29 10:24:01 +03:00
parent 4bd158b864
commit e6deef4a0a
+10 -3
View File
@@ -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]