using FactCheck

This commit is contained in:
Tero Frondelius
2015-06-22 20:49:01 +03:00
parent 5aa575c722
commit 4112073c8b
2 changed files with 150 additions and 94 deletions
+141
View File
@@ -0,0 +1,141 @@
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
+9 -94
View File
@@ -1,110 +1,27 @@
using JuliaFEM
using Base.Test
using FactCheck
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()
facts("Testing if somebody used print, println(), @sprint in src directory") do
# TODO: make better reqular expression. Currently it will match all print words
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)
for (line_number,line) in enumerate(readlines(fil))
if ismatch(r"print",line)
lines_with_print[file_name] = "print"
lines_with_print[file_name * ":$line_number"] = "print found in line: $line_number"
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]
@fact lines_with_print => isempty
end
<<<<<<< HEAD
=======
test_add_element()
@@ -135,7 +52,5 @@ test_get_element()
include("test_xdmf.jl")
include("solver_tests/test_elasticity_solver.jl")
>>>>>>> 5aa575c722abcc33326d38fbadc860fc75448a87
# write your own tests here
# @test 1 == JuliaFEM.test()
# @test_approx_eq 1.0 1.0