# Generating tests For example syntax for invoking the test creation scripts, see `create_tests.sh`. All test creation scripts are hardcoded to write their input files to `../Tests//` relative to the test (where `..` is the top-level directory inside the test driver), and output the test generators to STDOUT. The KIM user ID assigned as the author of each test is also hardcoded in the scripts as a constant, change it if needed. The test generators must be put in the top-level directory of the test driver in the file `test_generator.json`. Then, you can use the `kimgenie` utility in the KDP (https://openkim.org/doc/evaluation/kim-developer-platform/) to generate tests by placing the test driver directory into `/home/openkim/test-drivers/` inside the container, and running `kimgenie tests --test-driver EquilibriumCrystalStructure_Unconstrained_TypeLabels__TD_495406822220_000` ## Generating IFF tests from CHARMM-GUI If the directory `test_sources/charmm-gui` does not exist, or is empty, first you need to place some .tgz file(s) downloaded from CHARMM-GUI Nanomaterial Modeler in it. Any 3D periodic bulk material will work. Check the `LAMMPS` box when generating outputs and choose the `12 cut-off` option for nonbonded interactions. For carbonaceous materials, choose to use virtual electrons. The test will be named after the prefix of the .tgz file, so you should name it after the material, replacing spaces with dashes, e.g. `Alpha-Quartz.tgz`. Once this is done, the first two lines in `create_tests.sh` will create tests for the CHARMM-GUI parametrization of IFF, and then from those tests, when possible, generate tests for the PCFF-IFF parametrization. ## Generating core-shell tests The script `cs_test_from_reactive_test.py` takes as STDIN input test generators from the `EquilibriumCrystalStructure__TD_457028483760_001` test driver. Some examples are provided in `test_sources/coreshell`. You must also pass the supported atom types as arguments, which will determine which atoms are polarizable. For example, in `create_tests.sh`, the arguments `Mg OC OS NaC NaS ClC ClS CaC CaS FC FS` indicate that Mg should be a rigid ion, while the rest of the species are polarizable. If you wish to create both polarizable and rigid-ion tests for the same chemical species, you must run the script multiple times.