From c718e95addcd9756c7a9110620c259fe56f5725e Mon Sep 17 00:00:00 2001
From: Lauri Himanen <lauri.himanen@aalto.fi>
Date: Mon, 16 Oct 2017 21:21:58 +0300
Subject: [PATCH] Restructured the folders and files to use a common project
 structure, updated readme.

---
 README.md                                     |  29 +--
 parser/parser-cp2k/cp2kparser/parser.py       |  43 +++-
 .../cp2kparser/tools/xmlpreparser.py          |   7 -
 .../versions/cp2k262/commonparser.py          |   1 -
 .../versions/cp2k262/geooptparser.py          |   1 -
 .../versions/cp2k262/inputparser.py           |   1 -
 .../cp2kparser/versions/cp2k262/mdparser.py   |   1 -
 .../cp2k262/singlepointforceparser.py         |   1 -
 .../versions/cp2k262/singlepointparser.py     |   5 +-
 regtest/README.md                             |   6 -
 regtest/cp2k_2.6.2/callgraph.py               |   8 -
 regtest/cp2k_2.6.2/profiling.py               |  17 --
 .../cp2k_2.6.2}/cp2k_2.6.2/BASIS_SET          |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/GTH_POTENTIALS     |   0
 .../cp2k_2.6.2/XC_functional/b3lyp/b3lyp.inp  |   0
 .../XC_functional/b3lyp/unittest.out          |   0
 .../cp2k_2.6.2/XC_functional/blyp/blyp.inp    |   0
 .../XC_functional/blyp/unittest.out           |   0
 .../XC_functional/hcth120/hcth120.inp         |   0
 .../XC_functional/hcth120/unittest.out        |   0
 .../cp2k_2.6.2/XC_functional/lda/lda.inp      |   0
 .../cp2k_2.6.2/XC_functional/lda/unittest.out |   0
 .../cp2k_2.6.2/XC_functional/olyp/olyp.inp    |   0
 .../XC_functional/olyp/unittest.out           |   0
 .../cp2k_2.6.2/XC_functional/pade/pade.inp    |   0
 .../XC_functional/pade/unittest.out           |   0
 .../cp2k_2.6.2/XC_functional/pbe/pbe.inp      |   0
 .../cp2k_2.6.2/XC_functional/pbe/unittest.out |   0
 .../cp2k_2.6.2/XC_functional/pbe0/pbe0.inp    |   0
 .../XC_functional/pbe0/unittest.out           |   0
 .../default/default.inp                       |   0
 .../default/unittest.out                      |   0
 .../none/none.inp                             |   0
 .../none/unittest.out                         |   0
 .../x/unittest.out                            |   0
 .../configuration_periodic_dimensions/x/x.inp |   0
 .../xy/unittest.out                           |   0
 .../xy/xy.inp                                 |   0
 .../xyz/unittest.out                          |   0
 .../xyz/xyz.inp                               |   0
 .../xz/unittest.out                           |   0
 .../xz/xz.inp                                 |   0
 .../y/unittest.out                            |   0
 .../configuration_periodic_dimensions/y/y.inp |   0
 .../yz/unittest.out                           |   0
 .../yz/yz.inp                                 |   0
 .../z/unittest.out                            |   0
 .../configuration_periodic_dimensions/z/z.inp |   0
 .../converged/Si_bulk8-nonbonded_nl_p0-1.out  |   0
 .../convergence/converged/converged.inp       |   0
 .../convergence/converged/unittest.out        |   0
 .../non_converged/non_converged.inp           |   0
 .../convergence/non_converged/unittest.out    |   0
 .../dft_no_input/unittest.out                 |   0
 .../dft_plus_u/H2O-rks-diag-BFGS.Hessian      | Bin
 .../dft_plus_u/H2O-rks-diag-pos-1.xyz         |   0
 .../dft_plus_u/H2O-rks-diag.inp               |   0
 .../dft_plus_u/RESTART-rks-diag               | Bin
 .../dft_plus_u/unittest.out                   |   0
 .../mp2/H2O-01.inp                            |   0
 .../mp2/unittest.out                          |   0
 .../rpa/H2O_gas.xyz                           |   0
 .../rpa/RI_RPA_H2O.inp                        |   0
 .../rpa/unittest.out                          |   0
 .../Si_bulk8-nonbonded_nl_p0-1.out            |   0
 .../Si_bulk8-nonbonded_nl_p1-1.out            |   0
 .../Si_bulk8-nonbonded_nl_p2-1.out            |   0
 .../Si_bulk8-nonbonded_nl_p3-1.out            |   0
 .../energy_force/Si_bulk8_localLog_p1.out     |   0
 .../energy_force/Si_bulk8_localLog_p2.out     |   0
 .../energy_force/Si_bulk8_localLog_p3.out     |   0
 .../cp2k_2.6.2/energy_force/si_bulk8.inp      |   0
 .../cp2k_2.6.2/energy_force/unittest.out      |   0
 .../errors/invalid_file/unittest.out          |   0
 .../errors/invalid_run_type/unittest.out      |   0
 .../errors/unknown_input_keyword/si_bulk8.inp |   0
 .../errors/unknown_input_keyword/unittest.out |   0
 .../errors/unknown_input_section/si_bulk8.inp |   0
 .../errors/unknown_input_section/unittest.out |   0
 .../si_bulk8.inp                              |   0
 .../unittest.out                              |   0
 .../errors/unknown_version/si_bulk8.inp       |   0
 .../errors/unknown_version/unittest.out       |   0
 .../single_point/Si_bulk8-forces-1_0.xyz      |   0
 .../force_file/single_point/single_point.inp  |   0
 .../force_file/single_point/unittest.out      |   0
 .../cp2k_2.6.2/geo_opt/bfgs/H2O-BFGS.Hessian  | Bin
 .../cp2k_2.6.2/geo_opt/bfgs/H2O-pos-1.xyz     |   0
 .../cp2k_2.6.2/geo_opt/bfgs/geo_opt.inp       |   0
 .../cp2k_2.6.2/geo_opt/bfgs/unittest.out      |   0
 .../cp2k_2.6.2/geo_opt/cg/H2O-pos-1.xyz       |   0
 .../cp2k_2.6.2/geo_opt/cg/geo_opt.inp         |   0
 .../cp2k_2.6.2/geo_opt/cg/unittest.out        |   0
 .../cp2k_2.6.2/geo_opt/each/H2O-pos-1.xyz     |   0
 .../cp2k_2.6.2/geo_opt/each/geo_opt.inp       |   0
 .../cp2k_2.6.2/geo_opt/each/unittest.out      |   0
 .../geo_opt/filename/H2O-customname-pos-1.xyz |   0
 .../cp2k_2.6.2/geo_opt/filename/geo_opt.inp   |   0
 .../cp2k_2.6.2/geo_opt/filename/unittest.out  |   0
 .../dcd/H2O-geometry-pos-1.dcd                | Bin
 .../geo_opt/geometry_formats/dcd/geo_opt.inp  |   0
 .../geo_opt/geometry_formats/dcd/unittest.out |   0
 .../pdb/H2O-geometry-pos-1.pdb                |   0
 .../geo_opt/geometry_formats/pdb/geo_opt.inp  |   0
 .../geo_opt/geometry_formats/pdb/unittest.out |   0
 .../xyz/H2O-geometry-pos-1.xyz                |   0
 .../geo_opt/geometry_formats/xyz/geo_opt.inp  |   0
 .../geo_opt/geometry_formats/xyz/unittest.out |   0
 .../cp2k_2.6.2/geo_opt/lbfgs/H2O-pos-1.xyz    |   0
 .../cp2k_2.6.2/geo_opt/lbfgs/geo_opt.inp      |   0
 .../cp2k_2.6.2/geo_opt/lbfgs/unittest.out     |   0
 .../input_preprocessing/comments/si_bulk8.inp |   0
 .../input_preprocessing/comments/unittest.out |   0
 .../input_preprocessing/include/global.inc    |   0
 .../input_preprocessing/include/main.inp      |   0
 .../input_preprocessing/include/unittest.out  |   0
 .../tabseparator/si_bulk8.inp                 |   0
 .../tabseparator/unittest.out                 |   0
 .../input_preprocessing/variable/main.inp     |   0
 .../input_preprocessing/variable/unittest.out |   0
 .../variable_multifile/global.inc             |   0
 .../variable_multifile/main.inp               |   0
 .../variable_multifile/unittest.out           |   0
 .../PROJECT-nonbonded_nl_p0-1.out             |   0
 .../variable_multiple/main.inp                |   0
 .../variable_multiple/unittest.out            |   0
 .../variable_redifinition/main.inp            |   0
 .../variable_redifinition/unittest.out        |   0
 .../kinds/Si_bulk8-nonbonded_nl_p0-1.out      |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/kinds/si_bulk8.inp |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/kinds/unittest.out |   0
 .../cp2k_2.6.2/md/npt/H2O-md-1.cell           |   0
 .../cp2k_2.6.2/md/npt/H2O-md-1.ener           |   0
 .../cp2k_2.6.2/md/npt/H2O-md-pos-1.xyz        |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/md/npt/H2O-md.inp  |   0
 .../cp2k_2.6.2/md/npt/unittest.out            |   0
 .../cp2k_2.6.2/md/nve/H2O-32-1.cell           |   0
 .../cp2k_2.6.2/md/nve/H2O-32-1.ener           |   0
 .../cp2k_2.6.2/md/nve/H2O-32-1.stress         |   0
 .../cp2k_2.6.2/md/nve/H2O-32-frc-1.xyz        |   0
 .../cp2k_2.6.2/md/nve/H2O-32-pos-1.xyz        |   0
 .../cp2k_2.6.2/md/nve/H2O-32-vel-1.xyz        |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32.inp  |   0
 .../cp2k_2.6.2/md/nve/unittest.out            |   0
 .../cp2k_2.6.2/md/nvt/H2O-md-1.ener           |   0
 .../cp2k_2.6.2/md/nvt/H2O-md-pos-1.xyz        |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/md/nvt/H2O-md.inp  |   0
 .../cp2k_2.6.2/md/nvt/unittest.out            |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/sic/ad/ad.inp      |   0
 .../cp2k_2.6.2/sic/ad/unittest.out            |   0
 .../explicit_orbitals/explicit_orbitals.inp   |   0
 .../sic/explicit_orbitals/unittest.out        |   0
 .../cp2k_2.6.2/sic/mauri_spz/mauri_spz.inp    |   0
 .../cp2k_2.6.2/sic/mauri_spz/unittest.out     |   0
 .../cp2k_2.6.2/sic/mauri_us/mauri_us.inp      |   0
 .../cp2k_2.6.2/sic/mauri_us/unittest.out      |   0
 .../cp2k_2.6.2}/cp2k_2.6.2/sic/no/no.inp      |   0
 .../cp2k_2.6.2/sic/no/unittest.out            |   0
 .../stress_tensor/analytical/si_bulk8.inp     |   0
 .../stress_tensor/analytical/unittest.out     |   0
 .../diagonal_analytical/si_bulk8.inp          |   0
 .../diagonal_analytical/unittest.out          |   0
 .../diagonal_numerical/si_bulk8.inp           |   0
 .../diagonal_numerical/unittest.out           |   0
 .../stress_tensor/none/si_bulk8.inp           |   0
 .../stress_tensor/none/unittest.out           |   0
 .../stress_tensor/numerical/si_bulk8.inp      |   0
 .../stress_tensor/numerical/unittest.out      |   0
 .../cp2k_2.6.2/regtests.py                    | 219 +++++++++---------
 169 files changed, 148 insertions(+), 191 deletions(-)
 delete mode 100644 regtest/README.md
 delete mode 100644 regtest/cp2k_2.6.2/callgraph.py
 delete mode 100644 regtest/cp2k_2.6.2/profiling.py
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/BASIS_SET (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/GTH_POTENTIALS (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/b3lyp/b3lyp.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/b3lyp/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/blyp/blyp.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/blyp/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/hcth120/hcth120.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/hcth120/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/lda/lda.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/lda/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/olyp/olyp.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/olyp/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/pade/pade.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/pade/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/pbe/pbe.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/pbe/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/pbe0/pbe0.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/XC_functional/pbe0/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/default/default.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/default/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/none/none.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/none/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/x/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/x/x.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/xy/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/xy/xy.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/xyz/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/xyz/xyz.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/xz/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/xz/xz.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/y/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/y/y.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/yz/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/yz/yz.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/z/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/configuration_periodic_dimensions/z/z.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/convergence/converged/Si_bulk8-nonbonded_nl_p0-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/convergence/converged/converged.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/convergence/converged/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/convergence/non_converged/non_converged.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/convergence/non_converged/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/dft_no_input/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-BFGS.Hessian (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/dft_plus_u/RESTART-rks-diag (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/dft_plus_u/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/mp2/H2O-01.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/mp2/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/rpa/H2O_gas.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/rpa/RI_RPA_H2O.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/electronic_structure_method/rpa/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p0-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p1-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p2-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p3-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p2.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p3.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/energy_force/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/invalid_file/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/invalid_run_type/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_input_keyword/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_input_keyword/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_input_section/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_input_section/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_input_section_parameter/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_input_section_parameter/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_version/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/errors/unknown_version/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/force_file/single_point/Si_bulk8-forces-1_0.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/force_file/single_point/single_point.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/force_file/single_point/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/bfgs/H2O-BFGS.Hessian (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/bfgs/H2O-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/bfgs/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/bfgs/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/cg/H2O-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/cg/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/cg/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/each/H2O-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/each/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/each/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/filename/H2O-customname-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/filename/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/filename/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/dcd/H2O-geometry-pos-1.dcd (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/dcd/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/dcd/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/pdb/H2O-geometry-pos-1.pdb (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/pdb/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/pdb/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/xyz/H2O-geometry-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/xyz/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/geometry_formats/xyz/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/lbfgs/H2O-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/lbfgs/geo_opt.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/geo_opt/lbfgs/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/comments/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/comments/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/include/global.inc (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/include/main.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/include/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/tabseparator/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/tabseparator/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable/main.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_multifile/global.inc (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_multifile/main.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_multifile/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_multiple/PROJECT-nonbonded_nl_p0-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_multiple/main.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_multiple/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_redifinition/main.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/input_preprocessing/variable_redifinition/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/kinds/Si_bulk8-nonbonded_nl_p0-1.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/kinds/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/kinds/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/npt/H2O-md-1.cell (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/npt/H2O-md-1.ener (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/npt/H2O-md-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/npt/H2O-md.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/npt/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32-1.cell (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32-1.ener (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32-1.stress (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32-frc-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32-vel-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/H2O-32.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nve/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nvt/H2O-md-1.ener (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nvt/H2O-md-pos-1.xyz (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nvt/H2O-md.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/md/nvt/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/ad/ad.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/ad/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/explicit_orbitals/explicit_orbitals.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/explicit_orbitals/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/mauri_spz/mauri_spz.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/mauri_spz/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/mauri_us/mauri_us.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/mauri_us/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/no/no.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/sic/no/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/analytical/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/analytical/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/diagonal_analytical/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/diagonal_analytical/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/diagonal_numerical/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/diagonal_numerical/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/none/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/none/unittest.out (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/numerical/si_bulk8.inp (100%)
 rename {regtest => regtests/cp2k_2.6.2}/cp2k_2.6.2/stress_tensor/numerical/unittest.out (100%)
 rename regtest/cp2k_2.6.2/run_tests.py => regtests/cp2k_2.6.2/regtests.py (83%)

diff --git a/README.md b/README.md
index 57830a4..c8fe497 100644
--- a/README.md
+++ b/README.md
@@ -6,14 +6,13 @@ This is the main repository of the [NOMAD](http://nomad-lab.eu) parser for
     from cp2kparser import CP2KParser
     import matplotlib.pyplot as mpl
 
-    # 1. Initialize a parser by giving a path to the CP2K output file and a list of
-    # default units
-    path = "path/to/main.file"
+    # 1. Initialize a parser with a set of default units.
     default_units = ["eV"]
-    parser = CP2KParser(path, default_units=default_units)
+    parser = CP2KParser(default_units=default_units)
 
-    # 2. Parse
-    results = parser.parse()
+    # 2. Parse a file
+    path = "path/to/main.file"
+    results = parser.parse(path)
 
     # 3. Query the results with using the id's created specifically for NOMAD.
     scf_energies = results["energy_total_scf_iteration"]
@@ -22,7 +21,7 @@ This is the main repository of the [NOMAD](http://nomad-lab.eu) parser for
 ```
 
 # Installation
-The code is python>=2.7 and python>=3.4 compatible. First download and install
+The code is python 2 and python 3 compatible. First download and install
 the nomadcore package:
 
 ```sh
@@ -47,15 +46,9 @@ cd parser-cp2k
 pip install -e .
 ```
 
-# Advanced
+# Notes
+The parser is based on CP2K 2.6.2.
 
-The parser is designed to support multiple versions of CP2K with a [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)
-approach: The initial parser class is based on CP2K 2.6.2, and other versions
-will be subclassed from it. By sublassing, all the previous functionality will
-be preserved, new functionality can be easily created, and old functionality
-overridden only where necesssary.
-
-# Upload Folder Structure, File Naming and CP2K Settings
 The CP2K input setting
 [PRINT_LEVEL](https://manual.cp2k.org/trunk/CP2K_INPUT/GLOBAL.html#PRINT_LEVEL)
 controls the amount of details that are outputted during the calculation. The
@@ -66,12 +59,6 @@ they are located very deep inside some folder structure or outside the folder
 where the output file is, the parser will not be able to locate them. For this
 reason it is recommended to keep the upload structure as flat as possible.
 
-## Testing
-The regression tests for this parser are located in
-**/cp2k/parser/parser-cp2k/cp2kparser/regtest**. You can run the tests by
-running the run_tests.py file in one of the version directories.
-
-## Notes for CP2K Developers
 Here is a list of features/fixes that would make the parsing of CP2K results
 easier:
  - The pdb trajectory output doesn't seem to conform to the actual standard as
diff --git a/parser/parser-cp2k/cp2kparser/parser.py b/parser/parser-cp2k/cp2kparser/parser.py
index 1e5d089..74bf4b5 100644
--- a/parser/parser-cp2k/cp2kparser/parser.py
+++ b/parser/parser-cp2k/cp2kparser/parser.py
@@ -5,20 +5,23 @@ import re
 import logging
 import importlib
 from nomadcore.baseclasses import ParserInterface
+
+# Needs to be imported in order for the importlib calls to work in python 2.7
+import cp2kparser.versions.cp2k262.singlepointparser
+
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KParser(ParserInterface):
     """This class handles the initial setup before any parsing can happen. It
     determines which version of CP2K was used to generate the output and then
     sets up a correct main parser.
 
-    After the implementation has been setup, you can parse the files with
+    After the implementation has been setup, you can parse files with
     parse().
     """
-    def __init__(self, main_file, metainfo_to_keep=None, backend=None, default_units=None, metainfo_units=None, debug=False, log_level=logging.ERROR, store=True):
-        super(CP2KParser, self).__init__(main_file, metainfo_to_keep, backend, default_units, metainfo_units, debug, log_level, store)
+    def __init__(self, metainfo_to_keep=None, backend=None, default_units=None, metainfo_units=None, debug=False, log_level=logging.ERROR, store=True):
+        super(CP2KParser, self).__init__(metainfo_to_keep, backend, default_units, metainfo_units, debug, log_level, store)
 
     def setup_version(self):
         """Setups the version by looking at the output file and the version
@@ -84,10 +87,11 @@ class CP2KParser(ParserInterface):
 
         Args:
             version_id: An integer representing the CP2K version. The version
-                number is originally a string the form '2.6.2', but here the numbers
-                are just concatenated into a single integer number 262.
-            run_type: A string that identifies the RUN_TYPE for the calculation.
-                All the possible run types can be found in the CP2K reference manual.
+                number is originally a string the form '2.6.2', but here the
+                numbers are just concatenated into a single integer number 262.
+            run_type: A string that identifies the RUN_TYPE for the
+                calculation.  All the possible run types can be found in the
+                CP2K reference manual.
 
         Returns:
             A python class that should be instantiated later with the correct
@@ -110,7 +114,10 @@ class CP2KParser(ParserInterface):
         try:
             parser = parser_map[run_type]
         except KeyError:
-            logger.exception("A parser corresponding to the run_type '{}' could not be found.".format(run_type))
+            logger.exception(
+                "A parser corresponding to the run_type '{}' could not be found."
+                .format(run_type)
+            )
             raise
 
         # Currently the version id is a pure integer, so it can directly be mapped
@@ -118,20 +125,32 @@ class CP2KParser(ParserInterface):
         base = "cp2kparser.versions.cp2k{}.{}".format(version_id, parser.lower())
         parser_module = None
         parser_class = None
+
         try:
             parser_module = importlib.import_module(base)
         except ImportError:
-            logger.warning("Could not find a parser for version '{}' and run type '{}'. Trying to default to the base implementation for CP2K 2.6.2".format(version_id, run_type))
+            logger.warning(
+                "Could not find a parser for version '{}' and run type '{}'. "
+                "Trying to default to the base implementation for CP2K 2.6.2"
+                .format(version_id, run_type)
+            )
             base = "cp2kparser.versions.cp2k262.{}".format(parser.lower())
             try:
                 parser_module = importlib.import_module(base)
             except ImportError:
-                logger.exception("Tried to default to the CP2K 2.6.2 implementation but could not find the correct modules for run_type '{}'.".format(run_type))
+                logger.exception(
+                    "Tried to default to the CP2K 2.6.2 implementation but "
+                    "could not find the correct modules for run_type '{}'."
+                    .format(run_type)
+                )
                 raise
         try:
             parser_class = getattr(parser_module, "CP2K{}".format(parser))
         except AttributeError:
-            logger.exception("A parser class '{}' could not be found in the module '[]'.".format(parser_class, parser_module))
+            logger.exception(
+                "A parser class '{}' could not be found in the module '[]'."
+                .format(parser_class, parser_module)
+            )
             raise
 
         self.main_parser = parser_class(self.parser_context.main_file, self.parser_context)
diff --git a/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py b/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py
index b260685..aa2d6e5 100644
--- a/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py
+++ b/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py
@@ -24,7 +24,6 @@ from cp2kparser.generic.inputparsing import Section, Keyword, DefaultKeyword, Se
 logger = logging
 
 
-#===============================================================================
 def generate_object_tree(xml_file, for_metainfo=False):
 
     xml_element = ET.parse(xml_file)
@@ -48,7 +47,6 @@ def generate_object_tree(xml_file, for_metainfo=False):
     return object_tree
 
 
-#===============================================================================
 def recursive_tree_generation(xml_element, for_metainfo=False, name_stack=[], ignore=True):
 
     # Make new section object for the root
@@ -199,7 +197,6 @@ def recursive_tree_generation(xml_element, for_metainfo=False, name_stack=[], ig
     return section
 
 
-#===============================================================================
 def generate_input_metainfos(object_tree):
 
     json_root = {
@@ -222,7 +219,6 @@ def generate_input_metainfos(object_tree):
         f.write(json.dumps(json_root, indent=2, separators=(',', ': ')))
 
 
-#===============================================================================
 def generate_metainfo_recursively(obj, parent, container, name_stack):
 
     json = None
@@ -245,7 +241,6 @@ def generate_metainfo_recursively(obj, parent, container, name_stack):
     container.append(json)
 
 
-#===============================================================================
 def generate_input_object_metainfo_json(child, parent, name_stack):
     path = ".".join(name_stack)
     # if path.startswith("."):
@@ -283,7 +278,6 @@ def generate_input_object_metainfo_json(child, parent, name_stack):
     return json_obj
 
 
-#===============================================================================
 def generate_section_metainfo_json(child, parent, name_stack):
     path = ".".join(name_stack[:-1])
     json_obj = {}
@@ -307,7 +301,6 @@ def generate_section_metainfo_json(child, parent, name_stack):
     return json_obj
 
 
-#===============================================================================
 # Run main function by default
 if __name__ == "__main__":
 
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonparser.py
index 68e847a..5b2bd27 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonparser.py
@@ -12,7 +12,6 @@ from collections import defaultdict
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KCommonParser(CommonParser):
     """
     This class is used to store and instantiate common parts of the
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
index 72f5f5b..3c1399d 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
@@ -12,7 +12,6 @@ import logging
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KGeoOptParser(MainHierarchicalParser):
     """Used to parse the CP2K calculation with run types:
         -GEO_OPT/GEOMETRY_OPTIMIZATION
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/inputparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/inputparser.py
index f1ab04f..65275a0 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/inputparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/inputparser.py
@@ -11,7 +11,6 @@ from cp2kparser.generic.inputparsing import metainfo_data_prefix, metainfo_secti
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KInputParser(AbstractBaseParser):
     """Used to parse out a CP2K input file.
 
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
index c82a17f..4e126fc 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
@@ -13,7 +13,6 @@ import logging
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KMDParser(MainHierarchicalParser):
     """Used to parse the CP2K calculation with run types:
         -MD
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointforceparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointforceparser.py
index dae4286..ba3b529 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointforceparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointforceparser.py
@@ -4,7 +4,6 @@ from nomadcore.baseclasses import AbstractBaseParser
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KSinglePointForceParser(AbstractBaseParser):
     """Used to parse out a force file printed out by a CP2K single point
     calculation. It is not exactly an ZYX file, so here we define separate
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py
index 9fcdf7e..001fc04 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py
@@ -1,14 +1,13 @@
 from __future__ import absolute_import
 from nomadcore.simple_parser import SimpleMatcher as SM
 from nomadcore.baseclasses import MainHierarchicalParser
-from .singlepointforceparser import CP2KSinglePointForceParser
+from cp2kparser.versions.cp2k262.singlepointforceparser import CP2KSinglePointForceParser
 from nomadcore.caching_backend import CachingLevel
-from .commonparser import CP2KCommonParser
+from cp2kparser.versions.cp2k262.commonparser import CP2KCommonParser
 import logging
 logger = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CP2KSinglePointParser(MainHierarchicalParser):
     """The main parser class. Used to parse the CP2K calculation with run types:
         -ENERGY
diff --git a/regtest/README.md b/regtest/README.md
deleted file mode 100644
index 550be2b..0000000
--- a/regtest/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Unit tests
-This directory contains unit tests to evaluate the correctness of the parser in
-a systematic way. Ideally each parsed metainfo should have at least one unit
-test, and if the resulting values are predetermined, the available values
-should all be tested individually. Also certain scenarios that should produce a
-parsing error should be tested.
diff --git a/regtest/cp2k_2.6.2/callgraph.py b/regtest/cp2k_2.6.2/callgraph.py
deleted file mode 100644
index 99a9289..0000000
--- a/regtest/cp2k_2.6.2/callgraph.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from pycallgraph import PyCallGraph
-from pycallgraph.output import GraphvizOutput
-from cp2kparser import CP2KParser
-
-with PyCallGraph(output=GraphvizOutput()):
-    filepath = "/home/lauri/Dropbox/nomad-dev/nomad-lab-base/parsers/cp2k/test/unittests/cp2k_2.6.2/energy_force/unittest.out"
-    parser = CP2KParser(filepath)
-    parser.parse()
diff --git a/regtest/cp2k_2.6.2/profiling.py b/regtest/cp2k_2.6.2/profiling.py
deleted file mode 100644
index 1f7de9a..0000000
--- a/regtest/cp2k_2.6.2/profiling.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import cProfile
-import pstats
-from run_tests import get_results
-
-
-def profile_energy_force():
-    """Used to profile the CPU usage in parsing RUN_TYPE ENERGY_FORCE.
-    """
-    profile = cProfile.Profile()
-    profile.run('get_results("energy_force", "section_run")')
-    stats = pstats.Stats(profile)
-    stats.strip_dirs()
-    stats.sort_stats("cumulative")
-    stats.print_stats(30)
-
-if __name__ == "__main__":
-    profile_energy_force()
diff --git a/regtest/cp2k_2.6.2/BASIS_SET b/regtests/cp2k_2.6.2/cp2k_2.6.2/BASIS_SET
similarity index 100%
rename from regtest/cp2k_2.6.2/BASIS_SET
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/BASIS_SET
diff --git a/regtest/cp2k_2.6.2/GTH_POTENTIALS b/regtests/cp2k_2.6.2/cp2k_2.6.2/GTH_POTENTIALS
similarity index 100%
rename from regtest/cp2k_2.6.2/GTH_POTENTIALS
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/GTH_POTENTIALS
diff --git a/regtest/cp2k_2.6.2/XC_functional/b3lyp/b3lyp.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/b3lyp/b3lyp.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/b3lyp/b3lyp.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/b3lyp/b3lyp.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/b3lyp/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/b3lyp/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/b3lyp/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/b3lyp/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/blyp/blyp.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/blyp/blyp.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/blyp/blyp.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/blyp/blyp.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/blyp/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/blyp/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/blyp/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/blyp/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/hcth120/hcth120.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/hcth120/hcth120.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/hcth120/hcth120.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/hcth120/hcth120.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/hcth120/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/hcth120/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/hcth120/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/hcth120/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/lda/lda.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/lda/lda.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/lda/lda.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/lda/lda.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/lda/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/lda/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/lda/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/lda/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/olyp/olyp.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/olyp/olyp.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/olyp/olyp.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/olyp/olyp.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/olyp/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/olyp/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/olyp/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/olyp/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/pade/pade.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pade/pade.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/pade/pade.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pade/pade.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/pade/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pade/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/pade/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pade/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/pbe/pbe.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe/pbe.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/pbe/pbe.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe/pbe.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/pbe/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/pbe/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe/unittest.out
diff --git a/regtest/cp2k_2.6.2/XC_functional/pbe0/pbe0.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe0/pbe0.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/pbe0/pbe0.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe0/pbe0.inp
diff --git a/regtest/cp2k_2.6.2/XC_functional/pbe0/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe0/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/XC_functional/pbe0/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/XC_functional/pbe0/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/default/default.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/default/default.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/default/default.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/default/default.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/default/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/default/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/default/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/default/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/none/none.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/none/none.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/none/none.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/none/none.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/none/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/none/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/none/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/none/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/x/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/x/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/x/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/x/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/x/x.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/x/x.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/x/x.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/x/x.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/xy/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xy/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/xy/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xy/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/xy/xy.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xy/xy.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/xy/xy.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xy/xy.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/xyz/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xyz/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/xyz/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xyz/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/xyz/xyz.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xyz/xyz.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/xyz/xyz.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xyz/xyz.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/xz/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xz/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/xz/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xz/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/xz/xz.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xz/xz.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/xz/xz.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/xz/xz.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/y/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/y/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/y/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/y/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/y/y.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/y/y.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/y/y.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/y/y.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/yz/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/yz/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/yz/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/yz/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/yz/yz.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/yz/yz.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/yz/yz.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/yz/yz.inp
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/z/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/z/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/z/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/z/unittest.out
diff --git a/regtest/cp2k_2.6.2/configuration_periodic_dimensions/z/z.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/z/z.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/configuration_periodic_dimensions/z/z.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/configuration_periodic_dimensions/z/z.inp
diff --git a/regtest/cp2k_2.6.2/convergence/converged/Si_bulk8-nonbonded_nl_p0-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/converged/Si_bulk8-nonbonded_nl_p0-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/convergence/converged/Si_bulk8-nonbonded_nl_p0-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/converged/Si_bulk8-nonbonded_nl_p0-1.out
diff --git a/regtest/cp2k_2.6.2/convergence/converged/converged.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/converged/converged.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/convergence/converged/converged.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/converged/converged.inp
diff --git a/regtest/cp2k_2.6.2/convergence/converged/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/converged/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/convergence/converged/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/converged/unittest.out
diff --git a/regtest/cp2k_2.6.2/convergence/non_converged/non_converged.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/non_converged/non_converged.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/convergence/non_converged/non_converged.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/non_converged/non_converged.inp
diff --git a/regtest/cp2k_2.6.2/convergence/non_converged/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/non_converged/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/convergence/non_converged/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/convergence/non_converged/unittest.out
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/dft_no_input/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_no_input/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/dft_no_input/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_no_input/unittest.out
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-BFGS.Hessian b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-BFGS.Hessian
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-BFGS.Hessian
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-BFGS.Hessian
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/H2O-rks-diag.inp
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/RESTART-rks-diag b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/RESTART-rks-diag
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/RESTART-rks-diag
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/RESTART-rks-diag
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/dft_plus_u/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/dft_plus_u/unittest.out
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/mp2/H2O-01.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/mp2/H2O-01.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/mp2/H2O-01.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/mp2/H2O-01.inp
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/mp2/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/mp2/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/mp2/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/mp2/unittest.out
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/rpa/H2O_gas.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/rpa/H2O_gas.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/rpa/H2O_gas.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/rpa/H2O_gas.xyz
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/rpa/RI_RPA_H2O.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/rpa/RI_RPA_H2O.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/rpa/RI_RPA_H2O.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/rpa/RI_RPA_H2O.inp
diff --git a/regtest/cp2k_2.6.2/electronic_structure_method/rpa/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/rpa/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/electronic_structure_method/rpa/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/electronic_structure_method/rpa/unittest.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p0-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p0-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p0-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p0-1.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p1-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p1-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p1-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p1-1.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p2-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p2-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p2-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p2-1.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p3-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p3-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p3-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8-nonbonded_nl_p3-1.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p1.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p2.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p2.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p2.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p2.out
diff --git a/regtest/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p3.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p3.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p3.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/Si_bulk8_localLog_p3.out
diff --git a/regtest/cp2k_2.6.2/energy_force/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/energy_force/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/energy_force/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/energy_force/unittest.out
diff --git a/regtest/cp2k_2.6.2/errors/invalid_file/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/invalid_file/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/invalid_file/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/invalid_file/unittest.out
diff --git a/regtest/cp2k_2.6.2/errors/invalid_run_type/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/invalid_run_type/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/invalid_run_type/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/invalid_run_type/unittest.out
diff --git a/regtest/cp2k_2.6.2/errors/unknown_input_keyword/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_keyword/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_input_keyword/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_keyword/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/errors/unknown_input_keyword/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_keyword/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_input_keyword/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_keyword/unittest.out
diff --git a/regtest/cp2k_2.6.2/errors/unknown_input_section/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_input_section/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/errors/unknown_input_section/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_input_section/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section/unittest.out
diff --git a/regtest/cp2k_2.6.2/errors/unknown_input_section_parameter/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section_parameter/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_input_section_parameter/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section_parameter/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/errors/unknown_input_section_parameter/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section_parameter/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_input_section_parameter/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_input_section_parameter/unittest.out
diff --git a/regtest/cp2k_2.6.2/errors/unknown_version/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_version/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_version/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_version/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/errors/unknown_version/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_version/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/errors/unknown_version/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/errors/unknown_version/unittest.out
diff --git a/regtest/cp2k_2.6.2/force_file/single_point/Si_bulk8-forces-1_0.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/force_file/single_point/Si_bulk8-forces-1_0.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/force_file/single_point/Si_bulk8-forces-1_0.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/force_file/single_point/Si_bulk8-forces-1_0.xyz
diff --git a/regtest/cp2k_2.6.2/force_file/single_point/single_point.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/force_file/single_point/single_point.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/force_file/single_point/single_point.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/force_file/single_point/single_point.inp
diff --git a/regtest/cp2k_2.6.2/force_file/single_point/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/force_file/single_point/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/force_file/single_point/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/force_file/single_point/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/bfgs/H2O-BFGS.Hessian b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/H2O-BFGS.Hessian
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/bfgs/H2O-BFGS.Hessian
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/H2O-BFGS.Hessian
diff --git a/regtest/cp2k_2.6.2/geo_opt/bfgs/H2O-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/H2O-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/bfgs/H2O-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/H2O-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/geo_opt/bfgs/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/bfgs/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/bfgs/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/bfgs/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/bfgs/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/cg/H2O-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/cg/H2O-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/cg/H2O-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/cg/H2O-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/geo_opt/cg/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/cg/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/cg/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/cg/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/cg/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/cg/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/cg/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/cg/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/each/H2O-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/each/H2O-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/each/H2O-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/each/H2O-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/geo_opt/each/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/each/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/each/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/each/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/each/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/each/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/each/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/each/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/filename/H2O-customname-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/filename/H2O-customname-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/filename/H2O-customname-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/filename/H2O-customname-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/geo_opt/filename/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/filename/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/filename/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/filename/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/filename/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/filename/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/filename/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/filename/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/dcd/H2O-geometry-pos-1.dcd b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/dcd/H2O-geometry-pos-1.dcd
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/dcd/H2O-geometry-pos-1.dcd
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/dcd/H2O-geometry-pos-1.dcd
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/dcd/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/dcd/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/dcd/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/dcd/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/dcd/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/dcd/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/dcd/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/dcd/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/pdb/H2O-geometry-pos-1.pdb b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/pdb/H2O-geometry-pos-1.pdb
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/pdb/H2O-geometry-pos-1.pdb
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/pdb/H2O-geometry-pos-1.pdb
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/pdb/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/pdb/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/pdb/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/pdb/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/pdb/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/pdb/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/pdb/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/pdb/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/xyz/H2O-geometry-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/xyz/H2O-geometry-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/xyz/H2O-geometry-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/xyz/H2O-geometry-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/xyz/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/xyz/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/xyz/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/xyz/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/geometry_formats/xyz/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/xyz/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/geometry_formats/xyz/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/geometry_formats/xyz/unittest.out
diff --git a/regtest/cp2k_2.6.2/geo_opt/lbfgs/H2O-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/lbfgs/H2O-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/lbfgs/H2O-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/lbfgs/H2O-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/geo_opt/lbfgs/geo_opt.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/lbfgs/geo_opt.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/lbfgs/geo_opt.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/lbfgs/geo_opt.inp
diff --git a/regtest/cp2k_2.6.2/geo_opt/lbfgs/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/lbfgs/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/geo_opt/lbfgs/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/geo_opt/lbfgs/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/comments/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/comments/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/comments/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/comments/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/comments/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/comments/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/comments/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/comments/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/include/global.inc b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/include/global.inc
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/include/global.inc
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/include/global.inc
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/include/main.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/include/main.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/include/main.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/include/main.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/include/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/include/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/include/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/include/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/tabseparator/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/tabseparator/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/tabseparator/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/tabseparator/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/tabseparator/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/tabseparator/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/tabseparator/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/tabseparator/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable/main.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable/main.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable/main.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable/main.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_multifile/global.inc b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multifile/global.inc
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_multifile/global.inc
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multifile/global.inc
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_multifile/main.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multifile/main.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_multifile/main.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multifile/main.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_multifile/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multifile/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_multifile/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multifile/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_multiple/PROJECT-nonbonded_nl_p0-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multiple/PROJECT-nonbonded_nl_p0-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_multiple/PROJECT-nonbonded_nl_p0-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multiple/PROJECT-nonbonded_nl_p0-1.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_multiple/main.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multiple/main.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_multiple/main.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multiple/main.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_multiple/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multiple/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_multiple/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_multiple/unittest.out
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_redifinition/main.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_redifinition/main.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_redifinition/main.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_redifinition/main.inp
diff --git a/regtest/cp2k_2.6.2/input_preprocessing/variable_redifinition/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_redifinition/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/input_preprocessing/variable_redifinition/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/input_preprocessing/variable_redifinition/unittest.out
diff --git a/regtest/cp2k_2.6.2/kinds/Si_bulk8-nonbonded_nl_p0-1.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/kinds/Si_bulk8-nonbonded_nl_p0-1.out
similarity index 100%
rename from regtest/cp2k_2.6.2/kinds/Si_bulk8-nonbonded_nl_p0-1.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/kinds/Si_bulk8-nonbonded_nl_p0-1.out
diff --git a/regtest/cp2k_2.6.2/kinds/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/kinds/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/kinds/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/kinds/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/kinds/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/kinds/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/kinds/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/kinds/unittest.out
diff --git a/regtest/cp2k_2.6.2/md/npt/H2O-md-1.cell b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md-1.cell
similarity index 100%
rename from regtest/cp2k_2.6.2/md/npt/H2O-md-1.cell
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md-1.cell
diff --git a/regtest/cp2k_2.6.2/md/npt/H2O-md-1.ener b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md-1.ener
similarity index 100%
rename from regtest/cp2k_2.6.2/md/npt/H2O-md-1.ener
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md-1.ener
diff --git a/regtest/cp2k_2.6.2/md/npt/H2O-md-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/md/npt/H2O-md-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/md/npt/H2O-md.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/md/npt/H2O-md.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/H2O-md.inp
diff --git a/regtest/cp2k_2.6.2/md/npt/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/md/npt/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/npt/unittest.out
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32-1.cell b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-1.cell
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32-1.cell
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-1.cell
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32-1.ener b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-1.ener
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32-1.ener
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-1.ener
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32-1.stress b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-1.stress
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32-1.stress
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-1.stress
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32-frc-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-frc-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32-frc-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-frc-1.xyz
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32-vel-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-vel-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32-vel-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32-vel-1.xyz
diff --git a/regtest/cp2k_2.6.2/md/nve/H2O-32.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/H2O-32.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/H2O-32.inp
diff --git a/regtest/cp2k_2.6.2/md/nve/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nve/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nve/unittest.out
diff --git a/regtest/cp2k_2.6.2/md/nvt/H2O-md-1.ener b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/H2O-md-1.ener
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nvt/H2O-md-1.ener
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/H2O-md-1.ener
diff --git a/regtest/cp2k_2.6.2/md/nvt/H2O-md-pos-1.xyz b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/H2O-md-pos-1.xyz
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nvt/H2O-md-pos-1.xyz
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/H2O-md-pos-1.xyz
diff --git a/regtest/cp2k_2.6.2/md/nvt/H2O-md.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/H2O-md.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nvt/H2O-md.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/H2O-md.inp
diff --git a/regtest/cp2k_2.6.2/md/nvt/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/md/nvt/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/md/nvt/unittest.out
diff --git a/regtest/cp2k_2.6.2/sic/ad/ad.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/ad/ad.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/ad/ad.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/ad/ad.inp
diff --git a/regtest/cp2k_2.6.2/sic/ad/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/ad/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/ad/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/ad/unittest.out
diff --git a/regtest/cp2k_2.6.2/sic/explicit_orbitals/explicit_orbitals.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/explicit_orbitals/explicit_orbitals.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/explicit_orbitals/explicit_orbitals.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/explicit_orbitals/explicit_orbitals.inp
diff --git a/regtest/cp2k_2.6.2/sic/explicit_orbitals/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/explicit_orbitals/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/explicit_orbitals/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/explicit_orbitals/unittest.out
diff --git a/regtest/cp2k_2.6.2/sic/mauri_spz/mauri_spz.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_spz/mauri_spz.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/mauri_spz/mauri_spz.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_spz/mauri_spz.inp
diff --git a/regtest/cp2k_2.6.2/sic/mauri_spz/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_spz/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/mauri_spz/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_spz/unittest.out
diff --git a/regtest/cp2k_2.6.2/sic/mauri_us/mauri_us.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_us/mauri_us.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/mauri_us/mauri_us.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_us/mauri_us.inp
diff --git a/regtest/cp2k_2.6.2/sic/mauri_us/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_us/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/mauri_us/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/mauri_us/unittest.out
diff --git a/regtest/cp2k_2.6.2/sic/no/no.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/no/no.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/no/no.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/no/no.inp
diff --git a/regtest/cp2k_2.6.2/sic/no/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/sic/no/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/sic/no/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/sic/no/unittest.out
diff --git a/regtest/cp2k_2.6.2/stress_tensor/analytical/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/analytical/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/analytical/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/analytical/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/stress_tensor/analytical/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/analytical/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/analytical/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/analytical/unittest.out
diff --git a/regtest/cp2k_2.6.2/stress_tensor/diagonal_analytical/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_analytical/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/diagonal_analytical/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_analytical/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/stress_tensor/diagonal_analytical/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_analytical/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/diagonal_analytical/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_analytical/unittest.out
diff --git a/regtest/cp2k_2.6.2/stress_tensor/diagonal_numerical/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_numerical/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/diagonal_numerical/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_numerical/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/stress_tensor/diagonal_numerical/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_numerical/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/diagonal_numerical/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/diagonal_numerical/unittest.out
diff --git a/regtest/cp2k_2.6.2/stress_tensor/none/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/none/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/none/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/none/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/stress_tensor/none/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/none/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/none/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/none/unittest.out
diff --git a/regtest/cp2k_2.6.2/stress_tensor/numerical/si_bulk8.inp b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/numerical/si_bulk8.inp
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/numerical/si_bulk8.inp
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/numerical/si_bulk8.inp
diff --git a/regtest/cp2k_2.6.2/stress_tensor/numerical/unittest.out b/regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/numerical/unittest.out
similarity index 100%
rename from regtest/cp2k_2.6.2/stress_tensor/numerical/unittest.out
rename to regtests/cp2k_2.6.2/cp2k_2.6.2/stress_tensor/numerical/unittest.out
diff --git a/regtest/cp2k_2.6.2/run_tests.py b/regtests/cp2k_2.6.2/regtests.py
similarity index 83%
rename from regtest/cp2k_2.6.2/run_tests.py
rename to regtests/cp2k_2.6.2/regtests.py
index b75e17d..5da0635 100644
--- a/regtest/cp2k_2.6.2/run_tests.py
+++ b/regtests/cp2k_2.6.2/regtests.py
@@ -1,15 +1,3 @@
-"""
-This is a module for unit testing the CP2K parser. The unit tests are run with
-a custom backend that outputs the results directly into native python object for
-easier and faster analysis.
-
-Each property that has an enumerable list of different possible options is
-assigned a new test class, that should ideally test through all the options.
-
-The properties that can have any value imaginable will be tested only for one
-specific case inside a test class that is designed for a certain type of run
-(MD, optimization, QM/MM, etc.)
-"""
 import os
 import unittest
 import logging
@@ -18,65 +6,75 @@ from cp2kparser import CP2KParser
 from nomadcore.unit_conversion.unit_conversion import convert_unit
 
 
-#===============================================================================
-def get_results(folder, metainfo_to_keep=None):
-    """Get the given result from the calculation in the given folder by using
-    the Analyzer in the nomadtoolkit package. Tries to optimize the parsing by
-    giving the metainfo_to_keep argument.
+def get_result(folder, metaname=None):
+    """Get the results from the calculation in the given folder. By default goes through different
 
     Args:
         folder: The folder relative to the directory of this script where the
             parsed calculation resides.
-        metaname: The quantity to extract.
+        metaname(str): Optional quantity to return. If not specified, returns
+            the full dictionary of results.
     """
     dirname = os.path.dirname(__file__)
-    filename = os.path.join(dirname, folder, "unittest.out")
+    filename = os.path.join("cp2k_{}".format(VERSION), dirname, folder, "unittest.out")
     parser = CP2KParser(filename, None, debug=True, log_level=logging.CRITICAL)
     results = parser.parse()
-    return results
 
-
-#===============================================================================
-def get_result(folder, metaname, optimize=True):
-    if optimize:
-        results = get_results(folder, None)
+    if metaname is None:
+        return results
     else:
-        results = get_results(folder)
-    result = results[metaname]
-    return result
+        return results[metaname]
 
 
-#===============================================================================
 class TestErrors(unittest.TestCase):
-    """Test misc. error stuations which may occur during the parsing.
+    """Test error situations which may occur during the parsing.
     """
     def test_no_file(self):
-        self.assertRaises(IOError, get_result, "errors/no_file", "XC_functional")
+        """File is not no present.
+        """
+        with self.assertRaises(IOError):
+            get_result("errors/no_file", "XC_functional")
 
     def test_invalid_file(self):
-        self.assertRaises(RuntimeError, get_result, "errors/invalid_file", "XC_functional")
+        """Main file is invalid.
+        """
+        with self.assertRaises(RuntimeError):
+            get_result("errors/invalid_file", "XC_functional")
 
     def test_invalid_run_type(self):
-        self.assertRaises(KeyError, get_result, "errors/invalid_run_type", "XC_functional")
+        """Unrecognized run type.
+        """
+        with self.assertRaises(KeyError):
+            get_result("errors/invalid_run_type", "XC_functional")
+
 
+class TestUnknownInput(unittest.TestCase):
+    """Tests for cases where unknown information is encountered in the parsing.
+    """
     def test_unknown_version(self):
+        """Test how a new version is handled.
+        """
         get_result("errors/unknown_version", "XC_functional")
 
     def test_unknown_input_keyword(self):
+        """Test how an unknown input keyword is handled.
+        """
         get_result("errors/unknown_input_keyword", "XC_functional")
 
     def test_unknown_input_section(self):
+        """Test unknown input file section.
+        """
         get_result("errors/unknown_input_section", "XC_functional")
 
     def test_unknown_input_section_parameter(self):
+        """
+        """
         get_result("errors/unknown_input_section_parameter", "XC_functional")
 
 
-#===============================================================================
 class TestXCFunctional(unittest.TestCase):
     """Tests that the XC functionals can be properly parsed.
     """
-
     def test_pade(self):
         xc = get_result("XC_functional/pade", "XC_functional")
         self.assertEqual(xc, "1*LDA_XC_TETER93")
@@ -110,12 +108,10 @@ class TestXCFunctional(unittest.TestCase):
         self.assertEqual(xc, "1*GGA_C_PBE+1*GGA_X_PBE")
 
 
-#===============================================================================
 class TestSCFConvergence(unittest.TestCase):
     """Tests whether the convergence status and number of SCF step can be
     parsed correctly.
     """
-
     def test_converged(self):
         result = get_result("convergence/converged", "single_configuration_calculation_converged")
         self.assertTrue(result)
@@ -125,12 +121,10 @@ class TestSCFConvergence(unittest.TestCase):
         self.assertFalse(result)
 
 
-#===============================================================================
 class TestForceFiles(unittest.TestCase):
     """Tests that different force files that can be output, can actually be
     found and parsed.
     """
-
     def test_single_point(self):
 
         result = get_result("force_file/single_point", "atom_forces")
@@ -150,11 +144,9 @@ class TestForceFiles(unittest.TestCase):
         self.assertTrue(np.array_equal(result, expected_result))
 
 
-#===============================================================================
 class TestSelfInteractionCorrectionMethod(unittest.TestCase):
     """Tests that the self-interaction correction can be properly parsed.
     """
-
     def test_no(self):
         sic = get_result("sic/no", "self_interaction_correction_method")
         self.assertEqual(sic, "")
@@ -176,89 +168,86 @@ class TestSelfInteractionCorrectionMethod(unittest.TestCase):
         self.assertEqual(sic, "SIC_MAURI_US")
 
 
-#===============================================================================
 class TestStressTensorMethods(unittest.TestCase):
     """Tests that the stress tensor can be properly parsed for different
     calculation methods.
     """
     def test_none(self):
-        get_results("stress_tensor/none", "section_stress_tensor")
+        get_result("stress_tensor/none", "section_stress_tensor")
 
     def test_analytical(self):
-        results = get_results("stress_tensor/analytical", ["stress_tensor_method", "stress_tensor"])
+        results = get_result("stress_tensor/analytical")
         method = results["stress_tensor_method"]
         results["stress_tensor"]
         self.assertEqual(method, "Analytical")
 
     def test_numerical(self):
-        results = get_results("stress_tensor/numerical", ["stress_tensor_method", "stress_tensor"])
+        results = get_result("stress_tensor/numerical")
         method = results["stress_tensor_method"]
         results["stress_tensor"]
         self.assertEqual(method, "Numerical")
 
     def test_diagonal_analytical(self):
-        results = get_results("stress_tensor/diagonal_analytical", ["stress_tensor_method", "stress_tensor"])
+        results = get_result("stress_tensor/diagonal_analytical")
         method = results["stress_tensor_method"]
         results["stress_tensor"]
         self.assertEqual(method, "Diagonal analytical")
 
     def test_diagonal_numerical(self):
-        results = get_results("stress_tensor/diagonal_numerical", ["stress_tensor_method", "stress_tensor"])
+        results = get_result("stress_tensor/diagonal_numerical")
         method = results["stress_tensor_method"]
         results["stress_tensor"]
         self.assertEqual(method, "Diagonal numerical")
 
 
-#===============================================================================
 class TestConfigurationPeriodicDimensions(unittest.TestCase):
     """Tests that the self-interaction correction can be properly parsed.
     """
+    folder = "configuration_periodic_dimensions/"
 
     def test_default(self):
-        result = get_result("configuration_periodic_dimensions/default", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"default", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((True, True, True))))
 
     def test_none(self):
-        result = get_result("configuration_periodic_dimensions/none", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"none", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((False, False, False))))
 
     def test_x(self):
-        result = get_result("configuration_periodic_dimensions/x", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"x", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((True, False, False))))
 
     def test_y(self):
-        result = get_result("configuration_periodic_dimensions/y", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"y", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((False, True, False))))
 
     def test_z(self):
-        result = get_result("configuration_periodic_dimensions/z", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"z", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((False, False, True))))
 
     def test_xy(self):
-        result = get_result("configuration_periodic_dimensions/xy", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"xy", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((True, True, False))))
 
     def test_xyz(self):
-        result = get_result("configuration_periodic_dimensions/xyz", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"xyz", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((True, True, True))))
 
     def test_xz(self):
-        result = get_result("configuration_periodic_dimensions/xz", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"xz", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((True, False, True))))
 
     def test_yz(self):
-        result = get_result("configuration_periodic_dimensions/yz", "configuration_periodic_dimensions")
+        result = get_result(self.folder+"yz", "configuration_periodic_dimensions")
         self.assertTrue(np.array_equal(result, np.array((False, True, True))))
 
 
-#===============================================================================
 class TestEnergyForce(unittest.TestCase):
     """Tests for a CP2K calculation with RUN_TYPE ENERGY_FORCE.
     """
-
     @classmethod
     def setUpClass(cls):
-        cls.results = get_results("energy_force", "section_run")
+        cls.results = get_result("energy_force")
         # cls.results.print_summary()
 
     def test_energy_total_scf_iteration(self):
@@ -482,36 +471,37 @@ class TestEnergyForce(unittest.TestCase):
         self.assertEqual(result, "gaussians")
 
 
-#===============================================================================
 class TestPreprocessor(unittest.TestCase):
-
+    """Tests that the parser can read input files with preprocessor
+    declarations, such as variables.
+    """
     def test_include(self):
-        result = get_result("input_preprocessing/include", "x_cp2k_input_GLOBAL.PRINT_LEVEL", optimize=False)
+        result = get_result("input_preprocessing/include", "x_cp2k_input_GLOBAL.PRINT_LEVEL")
         self.assertEqual(result, "LOW")
 
     def test_variable(self):
-        result = get_result("input_preprocessing/variable", "x_cp2k_input_GLOBAL.PROJECT_NAME", optimize=False)
+        result = get_result("input_preprocessing/variable", "x_cp2k_input_GLOBAL.PROJECT_NAME")
         self.assertEqual(result, "variable_test")
 
     def test_variable_multiple(self):
-        result = get_result("input_preprocessing/variable_multiple", "x_cp2k_input_FORCE_EVAL.DFT.MGRID.CUTOFF", optimize=False)
+        result = get_result("input_preprocessing/variable_multiple", "x_cp2k_input_FORCE_EVAL.DFT.MGRID.CUTOFF")
         self.assertEqual(result, "50")
 
     def test_comments(self):
-        result = get_result("input_preprocessing/comments", "x_cp2k_input_FORCE_EVAL.DFT.MGRID.CUTOFF", optimize=False)
+        result = get_result("input_preprocessing/comments", "x_cp2k_input_FORCE_EVAL.DFT.MGRID.CUTOFF")
         self.assertEqual(result, "120")
 
     def test_tabseparator(self):
-        result = get_result("input_preprocessing/tabseparator", "x_cp2k_input_FORCE_EVAL.DFT.MGRID.CUTOFF", optimize=False)
+        result = get_result("input_preprocessing/tabseparator", "x_cp2k_input_FORCE_EVAL.DFT.MGRID.CUTOFF")
         self.assertEqual(result, "120")
 
 
-#===============================================================================
 class TestGeoOpt(unittest.TestCase):
-
+    """Tests that geometry optimizations are correctly parsed.
+    """
     @classmethod
     def setUpClass(cls):
-        cls.results = get_results("geo_opt/cg", "section_run")
+        cls.results = get_result("geo_opt/cg")
 
     def test_geometry_optimization_converged(self):
         result = self.results["geometry_optimization_converged"]
@@ -595,12 +585,12 @@ class TestGeoOpt(unittest.TestCase):
         self.assertTrue(np.array_equal(result_end, expected_end))
 
 
-# ===============================================================================
 class TestGeoOptTrajFormats(unittest.TestCase):
-
+    """Different trajectory formats in geometry optimization.
+    """
     def test_xyz(self):
 
-        result = get_result("geo_opt/geometry_formats/xyz", "atom_positions", optimize=True)
+        result = get_result("geo_opt/geometry_formats/xyz", "atom_positions")
         expected_start = convert_unit(
             np.array([
                 [12.2353220000, 1.3766420000, 10.8698800000],
@@ -623,7 +613,7 @@ class TestGeoOptTrajFormats(unittest.TestCase):
         self.assertTrue(np.array_equal(result_end, expected_end))
 
     def test_pdb(self):
-        result = get_result("geo_opt/geometry_formats/pdb", "atom_positions", optimize=True)
+        result = get_result("geo_opt/geometry_formats/pdb", "atom_positions")
         expected_start = convert_unit(
             np.array([
                 [12.235, 1.377, 10.870],
@@ -646,14 +636,14 @@ class TestGeoOptTrajFormats(unittest.TestCase):
         self.assertTrue(np.array_equal(result_end, expected_end))
 
     def test_dcd(self):
-        result = get_result("geo_opt/geometry_formats/dcd", "atom_positions", optimize=True)
+        result = get_result("geo_opt/geometry_formats/dcd", "atom_positions")
         frames = result.shape[0]
         self.assertEqual(frames, 7)
 
 
-#===============================================================================
 class TestGeoOptOptimizers(unittest.TestCase):
-
+    """Different optimization methods in gemoetry optimization.
+    """
     def test_bfgs(self):
         result = get_result("geo_opt/bfgs", "geometry_optimization_method")
         self.assertEqual(result, "bfgs")
@@ -663,14 +653,15 @@ class TestGeoOptOptimizers(unittest.TestCase):
         self.assertEqual(result, "bfgs")
 
 
-#===============================================================================
 class TestGeoOptTrajectory(unittest.TestCase):
-
+    """Tests that the print settings for geometry optimization are handled
+    correctly.
+    """
     def test_each_and_add_last(self):
         """Test that the EACH and ADD_LAST settings affect the parsing
         correctly.
         """
-        results = get_results("geo_opt/each")
+        results = get_result("geo_opt/each")
 
         single_conf = results["section_single_configuration_calculation"]
         systems = results["section_system"]
@@ -730,12 +721,12 @@ class TestGeoOptTrajectory(unittest.TestCase):
             i_conf += 1
 
 
-#===============================================================================
 class TestMD(unittest.TestCase):
-
+    """Molecular dynamics tests.
+    """
     @classmethod
     def setUpClass(cls):
-        cls.results = get_results("md/nve", "section_run")
+        cls.results = get_result("md/nve")
         cls.temp = convert_unit(
             np.array([
                 300.000000000,
@@ -943,9 +934,9 @@ class TestMD(unittest.TestCase):
         self.assertTrue(np.array_equal(result, expected_result))
 
 
-#===============================================================================
 class TestMDEnsembles(unittest.TestCase):
-
+    """Different ensembles in MD.
+    """
     @classmethod
     def setUpClass(cls):
         cls.pressure = convert_unit(
@@ -966,12 +957,12 @@ class TestMDEnsembles(unittest.TestCase):
         )
 
     def test_nvt(self):
-        results = get_results("md/nvt", "section_run")
+        results = get_result("md/nvt")
         ensemble = results["ensemble_type"]
         self.assertEqual(ensemble, "NVT")
 
     def test_npt(self):
-        results = get_results("md/npt", "section_run")
+        results = get_result("md/npt")
         ensemble = results["ensemble_type"]
         self.assertEqual(ensemble, "NPT")
 
@@ -1022,46 +1013,50 @@ class TestMDEnsembles(unittest.TestCase):
         self.assertTrue(np.array_equal(expected_cell_end, simulation_cell[-1, :, :]))
 
 
-#===============================================================================
 class TestElectronicStructureMethod(unittest.TestCase):
-
+    """Tests that different methods are recognized correctly.
+    """
     def test_mp2(self):
-        results = get_results("electronic_structure_method/mp2", "section_run")
+        results = get_result("electronic_structure_method/mp2")
         result = results["electronic_structure_method"]
         self.assertEqual(result, "MP2")
 
     def test_dft_plus_u(self):
-        results = get_results("electronic_structure_method/dft_plus_u", "section_run")
+        results = get_result("electronic_structure_method/dft_plus_u")
         result = results["electronic_structure_method"]
         self.assertEqual(result, "DFT+U")
 
     def test_rpa(self):
-        results = get_results("electronic_structure_method/rpa", "section_run")
+        results = get_result("electronic_structure_method/rpa")
         result = results["electronic_structure_method"]
         self.assertEqual(result, "RPA")
 
 
-#===============================================================================
 if __name__ == '__main__':
+
     logger = logging.getLogger("cp2kparser")
     logger.setLevel(logging.ERROR)
 
-    suites = []
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestErrors))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestXCFunctional))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestEnergyForce))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestStressTensorMethods))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSelfInteractionCorrectionMethod))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestConfigurationPeriodicDimensions))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSCFConvergence))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestForceFiles))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestPreprocessor))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOpt))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptTrajFormats))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptOptimizers))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptTrajectory))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestMD))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestMDEnsembles))
-    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestElectronicStructureMethod))
-    alltests = unittest.TestSuite(suites)
-    unittest.TextTestRunner(verbosity=0).run(alltests)
+    VERSIONS = ["2.6.2"]
+
+    for VERSION in VERSIONS:
+        suites = []
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestErrors))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestUnknownInput))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestXCFunctional))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestEnergyForce))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestStressTensorMethods))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSelfInteractionCorrectionMethod))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestConfigurationPeriodicDimensions))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSCFConvergence))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestForceFiles))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestPreprocessor))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOpt))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptTrajFormats))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptOptimizers))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptTrajectory))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestMD))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestMDEnsembles))
+        suites.append(unittest.TestLoader().loadTestsFromTestCase(TestElectronicStructureMethod))
+        alltests = unittest.TestSuite(suites)
+        unittest.TextTestRunner(verbosity=0).run(alltests)
-- 
GitLab