From eabcf437cdc5134d156a3093e02bf6bb89566a78 Mon Sep 17 00:00:00 2001 From: "Maarten L. Hekkelman" Date: Tue, 17 Mar 2026 13:17:02 +0100 Subject: [PATCH] Add some more tests for I/O --- test/unit-v2-test.cpp | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/test/unit-v2-test.cpp b/test/unit-v2-test.cpp index 02202d6..9c06f17 100644 --- a/test/unit-v2-test.cpp +++ b/test/unit-v2-test.cpp @@ -25,6 +25,7 @@ */ #include "cif++/category.hpp" +#include "cif++/model.hpp" #include "cif++/row.hpp" #include "test-main.hpp" @@ -32,6 +33,7 @@ #include #include #include +#include #include #include @@ -3585,3 +3587,73 @@ _test.v1 } +TEST_CASE("io-test-3") +{ + auto data = R"(data_test +loop_ +_atom_site.group_PDB +_atom_site.id +_atom_site.type_symbol +_atom_site.label_atom_id +_atom_site.label_alt_id +_atom_site.label_comp_id +_atom_site.label_asym_id +_atom_site.label_entity_id +_atom_site.label_seq_id +_atom_site.pdbx_PDB_ins_code +_atom_site.Cartn_x +_atom_site.Cartn_y +_atom_site.Cartn_z +_atom_site.occupancy +_atom_site.B_iso_or_equiv +_atom_site.pdbx_formal_charge +_atom_site.auth_atom_id +_atom_site.auth_comp_id +_atom_site.auth_seq_id +_atom_site.auth_asym_id +_atom_site.pdbx_PDB_model_num +HETATM 1 O O . HOH A 1 . ? 10.518 -1.781 0 1 37.22 ? O HOH 1 D 1 +)"_cf; + + auto &db = data.front(); + db.load_dictionary("mmcif_pdbx.dic"); + + auto row = db["atom_site"].front(); + const auto &[x, y, z, id, label_asym_id, auth_asym_id, auth_seq_id] = row.get("cartn_x", "cartn_y", "cartn_z", "id", "label_asym_id", "auth_asym_id", "auth_seq_id"); + + cif::mm::structure s(data); + s.create_water(row); + + std::ostringstream os; + os << db["atom_site"]; + + CHECK(os.str() == R"(loop_ +_atom_site.group_PDB +_atom_site.id +_atom_site.type_symbol +_atom_site.label_atom_id +_atom_site.label_alt_id +_atom_site.label_comp_id +_atom_site.label_asym_id +_atom_site.label_entity_id +_atom_site.label_seq_id +_atom_site.pdbx_PDB_ins_code +_atom_site.Cartn_x +_atom_site.Cartn_y +_atom_site.Cartn_z +_atom_site.occupancy +_atom_site.B_iso_or_equiv +_atom_site.pdbx_formal_charge +_atom_site.auth_atom_id +_atom_site.auth_comp_id +_atom_site.auth_seq_id +_atom_site.auth_asym_id +_atom_site.pdbx_PDB_model_num +HETATM 1 O O . HOH A 1 . ? 10.518 -1.781 0 1 37.22 ? O HOH 1 D 1 +HETATM 2 O O . HOH A 1 . ? 10.518 -1.781 0 1 37.22 ? O HOH 2 D 1 +# +)"); +} + + +