mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-17 17:22:10 +00:00
142 lines
3.6 KiB
Julia
142 lines
3.6 KiB
Julia
using JuliaFEM
|
|
using Base.Test
|
|
using Logging
|
|
@Logging.configure(level=DEBUG)
|
|
|
|
function test_create_model()
|
|
m = new_model()
|
|
fn = fieldnames(m)
|
|
@test :model in fn
|
|
@test :nodes in fn
|
|
@test :elements in fn
|
|
@test :element_nodes in fn
|
|
@test :element_gauss_points in fn
|
|
end
|
|
test_create_model()
|
|
|
|
|
|
function test_add_field()
|
|
m = new_model()
|
|
field = new_field(m.elements, "color")
|
|
@test "color" in keys(m.elements)
|
|
end
|
|
test_add_field()
|
|
|
|
|
|
function test_get_field()
|
|
m = new_model()
|
|
field = new_field(m.elements, "color")
|
|
field[1] = "red" # set element 1 field value to "red"
|
|
field2 = get_field(m.elements, "color") # get color field
|
|
@test field2[1] == "red"
|
|
end
|
|
test_get_field()
|
|
|
|
|
|
function test_get_field_if_it_doesnt_exist()
|
|
m = new_model()
|
|
# FIXME: how to test exception?
|
|
# @assert "throw error when" field = get_field(m.elements, "temperature")
|
|
field = get_field(m.elements, "temperature"; create_if_doesnt_exist=true)
|
|
field[1] = 173
|
|
field2 = get_field(m.elements, "temperature")
|
|
@test field2[1] == 173
|
|
end
|
|
test_get_field_if_it_doesnt_exist()
|
|
|
|
function test_get_field_throw_exception()
|
|
m = new_model()
|
|
@test_throws ASCIIString get_field(m.elements, "temperature")
|
|
end
|
|
test_get_field_throw_exception()
|
|
|
|
function test_add_and_get_nodes()
|
|
m = new_model()
|
|
nodes = Dict(1 => [0.0, 0.0, 0.0],
|
|
2 => [1.0, 0.0, 0.0],
|
|
3 => [0.0, 1.0, 0.0],
|
|
4 => [0.0, 0.0, 1.0])
|
|
add_nodes(m, nodes)
|
|
subset = get_nodes(m, [2, 3])
|
|
@test length(subset) == 2
|
|
@test subset[2] == [1.0, 0.0, 0.0]
|
|
@test subset[3] == [0.0, 1.0, 0.0]
|
|
end
|
|
test_add_and_get_nodes()
|
|
|
|
|
|
|
|
function test_print()
|
|
lines_with_print = Dict()
|
|
#src = readdir("/src")
|
|
#src_dir = "/home/travis/build/ovainola/JuliaFEM/src"
|
|
src_dir = "../src"
|
|
src = readdir(src_dir)
|
|
for file_name in src
|
|
fil = open(joinpath(src_dir,file_name),"r")
|
|
for line in readlines(fil)
|
|
if ismatch(r"print",line)
|
|
lines_with_print[file_name] = "print"
|
|
end
|
|
end
|
|
close(fil)
|
|
end
|
|
#@test lines_with_print == Dict()
|
|
@debug("number of lines with print = ", length(lines_with_print))
|
|
@debug(lines_with_print)
|
|
@test length(lines_with_print) == 0
|
|
end
|
|
test_print()
|
|
|
|
|
|
|
|
function test_add_element()
|
|
m = new_model()
|
|
nodes = Dict(1 => [0.0, 0.0, 0.0],
|
|
2 => [1.0, 0.0, 0.0],
|
|
3 => [0.0, 1.0, 0.0],
|
|
4 => [0.0, 0.0, 1.0])
|
|
add_nodes(m, nodes)
|
|
el1 = Dict("element_type" => 0x6, "node_ids" => [1, 2, 3, 4])
|
|
el2 = Dict("element_type" => 0x6, "node_ids" => [4, 3, 2, 1])
|
|
elements = Dict(1 => el1, 2 => el2)
|
|
add_elements(m, elements)
|
|
@debug(m)
|
|
@test m.elements["element_type"][1] == 0x6
|
|
@test m.elements["connectivity"][1] == [1, 2, 3, 4]
|
|
end
|
|
test_add_element()
|
|
|
|
|
|
function test_get_element()
|
|
m = new_model()
|
|
nodes = Dict(1 => [0.0, 0.0, 0.0],
|
|
2 => [1.0, 0.0, 0.0],
|
|
3 => [0.0, 1.0, 0.0],
|
|
4 => [0.0, 0.0, 1.0])
|
|
add_nodes(m, nodes)
|
|
el1 = Dict("element_type" => 0x6, "node_ids" => [1, 2, 3, 4])
|
|
el2 = Dict("element_type" => 0x6, "node_ids" => [4, 3, 2, 1])
|
|
elements = Dict(1 => el1, 2 => el2)
|
|
#println(elements)
|
|
add_elements(m, elements)
|
|
#println(m)
|
|
# get elements by element id
|
|
els = get_elements(m, [1])
|
|
#println(els)
|
|
@test length(els) == 1
|
|
@test 1 in keys(els)
|
|
@test els[1]["element_type"] == 0x6
|
|
@test els[1]["node_ids"] == [1, 2, 3, 4]
|
|
end
|
|
test_get_element()
|
|
|
|
|
|
|
|
include("test_xdmf.jl")
|
|
include("solver_tests/test_elasticity_solver.jl")
|
|
|
|
# write your own tests here
|
|
# @test 1 == JuliaFEM.test()
|
|
# @test_approx_eq 1.0 1.0
|