From 71a88d26800b3d197eaf9a8e6b950c8f842aa777 Mon Sep 17 00:00:00 2001 From: Louis Ponet Date: Sat, 26 May 2018 20:31:42 +0200 Subject: [PATCH] added constant tests --- src/job.jl | 3 ++- src/qe/constants.jl | 20 ++++++++++---------- test/constant_tests.jl | 12 ++++++++++++ test/runtests.jl | 3 ++- 4 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 test/constant_tests.jl diff --git a/src/job.jl b/src/job.jl index f49917a0..72a10b2a 100644 --- a/src/job.jl +++ b/src/job.jl @@ -749,7 +749,8 @@ function setwanenergies!(job::DFJob, Emin, bands; Epad=5.0, print=true) nbnd = sum([sum(orbsize.(t)) for t in projections(job)]) print && info("num_bands=$nbnd (inferred from provided projections).") winmin, frozmin, frozmax, winmax = wanenergyranges(Emin, nbnd, bands, Epad) - setflags!.(wancalcs, :dis_win_min => winmin, :dis_froz_min => frozmin, :dis_froz_max => frozmax, :dis_win_max => winmax, print=false) + setflags!.(wancalcs, :dis_win_min => winmin, :dis_froz_min => frozmin, :dis_froz_max => frozmax, :dis_win_max => winmax, :num_wann => nbnd, print=false) + return job end """ diff --git a/src/qe/constants.jl b/src/qe/constants.jl index b3cb469d..c6ad06dd 100644 --- a/src/qe/constants.jl +++ b/src/qe/constants.jl @@ -99,7 +99,7 @@ function QEControlBlockInfo(lines::Array{<:AbstractString, 1}) end #TODO rewrite this this is garbage -function qe_variable(block::AbstractBlockInfo, variable_name::Symbol) +function qevariable(block::AbstractBlockInfo, variable_name::Symbol) varstr1 = string(variable_name) for var in block.variables varstr2 = string(var.name) @@ -211,9 +211,9 @@ qe_input_info(input::DFInput{QE}) = getfirst(x-> contains(input.exec, x.exec), Q qe_input_info(exec::AbstractString) = getfirst(x-> contains(exec, x.exec), QEInputInfos) qe_input_flags(exec::AbstractString) = allflags(qe_input_info(exec)) -function qe_variable(input_info::QEInputInfo, variable_name::Symbol) +function qevariable(input_info::QEInputInfo, variable_name::Symbol) for block in vcat(input_info.control, input_info.data) - var = qe_variable(block, variable_name) + var = qevariable(block, variable_name) if var.typ != Void return var end @@ -221,9 +221,9 @@ function qe_variable(input_info::QEInputInfo, variable_name::Symbol) return QEVariableInfo() end -function qe_variable(variable_name::Symbol) +function qevariable(variable_name::Symbol) for info in QEInputInfos - var = qe_variable(info, variable_name) + var = qevariable(info, variable_name) if var.typ != Void return var end @@ -233,7 +233,7 @@ end function qe_block_variable(input_info::QEInputInfo, variable_name) for block in vcat(input_info.control, input_info.data) - var = qe_variable(block, variable_name) + var = qevariable(block, variable_name) if var.typ != Void return block, var end @@ -241,10 +241,10 @@ function qe_block_variable(input_info::QEInputInfo, variable_name) return :error, QEVariableInfo() end -function qe_variable(exec::Exec, varname) +function qevariable(exec::Exec, varname) for input_info in QEInputInfos if contains(exec.exec, input_info.exec) - return qe_variable(input_info, varname) + return qevariable(input_info, varname) end end return QEVariableInfo() @@ -276,5 +276,5 @@ end qe_block_variable(input::DFInput, flagname) = qe_block_variable(execs(input)[2].exec, flagname) -flagtype(input::DFInput{QE}, flag) = qe_variable(execs(input)[2], flag).typ -flagtype(::Type{QE}, exec, flag) = qe_variable(exec, flag).typ +flagtype(input::DFInput{QE}, flag) = qevariable(execs(input)[2], flag).typ +flagtype(::Type{QE}, exec, flag) = qevariable(exec, flag).typ diff --git a/test/constant_tests.jl b/test/constant_tests.jl new file mode 100644 index 00000000..475ca55a --- /dev/null +++ b/test/constant_tests.jl @@ -0,0 +1,12 @@ +using DFControl +import DFControl: searchdir, QEVariableInfo, QEControlBlockInfo, QEInputInfo, QEDataBlockInfo, qevariable + +qeassetpath = joinpath(Pkg.dir("DFControl"), "assets/inputs/qe/") +inputinfos = begin + file_paths = qeassetpath .* searchdir(qeassetpath, "INPUT") + QEInputInfo.(file_paths) +end + + +@test qevariable(inputinfos[2], :calculation).typ == Void +@test qevariable(inputinfos[3], :calculation).typ == qevariable(:calculation).typ diff --git a/test/runtests.jl b/test/runtests.jl index e09e0079..1f5fdf9c 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,7 +1,8 @@ using Base.Test tic() -@testset "New defaults" begin include("defaults_test.jl") end +@testset "constants" begin include("constant_tests.jl") end +@testset "Setting defaults" begin include("defaults_test.jl") end @testset "Job from CIF file" begin include("jobfromcif_test.jl") end @testset "Job control tests" begin include("job_control_tests.jl") end @testset "Remove defaults" begin include("rmdefaults_test.jl") end