From 14aa917d8cd3edabe1f2d94faced6748f9074304 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Jan 2026 12:24:22 +0000 Subject: [PATCH] test: add XYZ fixtures for SHAPE v2.1 parity tests Add reproducible test structures for CN=2-12 with documented SHAPE v2.1 reference values. These files enable independent verification of Q-Shape's parity with the reference implementation. --- tests/fixtures/shape-parity/CN10-FeL10.xyz | 13 +++++++ tests/fixtures/shape-parity/CN11-NbL11.xyz | 14 +++++++ tests/fixtures/shape-parity/CN12-NbL12.xyz | 15 ++++++++ tests/fixtures/shape-parity/CN2-CuCl2.xyz | 5 +++ tests/fixtures/shape-parity/CN3-NH3.xyz | 6 +++ tests/fixtures/shape-parity/CN4-CuCl4.xyz | 7 ++++ tests/fixtures/shape-parity/CN5-AgL5.xyz | 8 ++++ tests/fixtures/shape-parity/CN6-NiN4O2.xyz | 9 +++++ tests/fixtures/shape-parity/CN7-FeL7.xyz | 10 +++++ tests/fixtures/shape-parity/CN8-FeL8.xyz | 11 ++++++ tests/fixtures/shape-parity/CN9-CrL9.xyz | 12 ++++++ tests/fixtures/shape-parity/README.md | 44 ++++++++++++++++++++++ 12 files changed, 154 insertions(+) create mode 100644 tests/fixtures/shape-parity/CN10-FeL10.xyz create mode 100644 tests/fixtures/shape-parity/CN11-NbL11.xyz create mode 100644 tests/fixtures/shape-parity/CN12-NbL12.xyz create mode 100644 tests/fixtures/shape-parity/CN2-CuCl2.xyz create mode 100644 tests/fixtures/shape-parity/CN3-NH3.xyz create mode 100644 tests/fixtures/shape-parity/CN4-CuCl4.xyz create mode 100644 tests/fixtures/shape-parity/CN5-AgL5.xyz create mode 100644 tests/fixtures/shape-parity/CN6-NiN4O2.xyz create mode 100644 tests/fixtures/shape-parity/CN7-FeL7.xyz create mode 100644 tests/fixtures/shape-parity/CN8-FeL8.xyz create mode 100644 tests/fixtures/shape-parity/CN9-CrL9.xyz create mode 100644 tests/fixtures/shape-parity/README.md diff --git a/tests/fixtures/shape-parity/CN10-FeL10.xyz b/tests/fixtures/shape-parity/CN10-FeL10.xyz new file mode 100644 index 0000000..d44af8d --- /dev/null +++ b/tests/fixtures/shape-parity/CN10-FeL10.xyz @@ -0,0 +1,13 @@ +11 +CN=10 FeL10 hexadecahedron complex - SHAPE v2.1 parity test (HD-10 = 16.93361) +Fe -1.419400 0.000000 2.310000 +C -2.178900 -1.731300 1.550800 +C -0.027800 -0.383500 3.747700 +C -1.156200 -1.217800 0.698000 +C -3.201600 -0.741700 1.658500 +C -1.291900 -0.089300 4.341300 +C 0.362800 0.741700 2.961500 +C -1.546800 0.089300 0.278600 +C -2.810900 0.383500 0.872200 +C -1.682600 1.217800 3.921900 +C -0.659900 1.731300 3.069100 diff --git a/tests/fixtures/shape-parity/CN11-NbL11.xyz b/tests/fixtures/shape-parity/CN11-NbL11.xyz new file mode 100644 index 0000000..f50d223 --- /dev/null +++ b/tests/fixtures/shape-parity/CN11-NbL11.xyz @@ -0,0 +1,14 @@ +12 +CN=11 NbL11 augmented pentagonal prism complex - SHAPE v2.1 parity test (JAPPR-11 = 21.67256) +Nb -0.104400 0.077400 0.000000 +C -2.020700 1.040300 1.154000 +C -1.209200 2.127400 0.713200 +C -1.209200 2.127400 -0.713200 +C -2.020700 1.040300 -1.154000 +C -2.522300 0.368600 0.000000 +C 1.631700 -1.217200 -1.395700 +C 0.919000 -2.194000 -0.697800 +C 2.344500 -0.240300 -0.697800 +C 0.919000 -2.194000 0.697800 +C 2.344500 -0.240300 0.697800 +C 1.631700 -1.217200 1.395700 diff --git a/tests/fixtures/shape-parity/CN12-NbL12.xyz b/tests/fixtures/shape-parity/CN12-NbL12.xyz new file mode 100644 index 0000000..43aac6d --- /dev/null +++ b/tests/fixtures/shape-parity/CN12-NbL12.xyz @@ -0,0 +1,15 @@ +13 +CN=12 NbL12 biaugmented pentagonal prism complex - SHAPE v2.1 parity test (JBAPPR-12 = 17.93587) +Nb -2.170800 0.000000 -6.069100 +C -2.170800 1.512200 -7.977700 +C -1.016900 0.683100 -8.102100 +C -1.457600 -0.658500 -8.303100 +C -2.884000 -0.658500 -8.303100 +C -3.324700 0.683100 -8.102100 +C -2.170800 1.396100 -4.203500 +C -3.456600 0.782300 -4.287800 +C -3.773800 -0.595300 -4.480200 +C -2.884500 -1.700100 -4.636700 +C -1.457100 -1.700100 -4.636700 +C -0.567800 -0.595300 -4.480200 +C -0.885100 0.782300 -4.287800 diff --git a/tests/fixtures/shape-parity/CN2-CuCl2.xyz b/tests/fixtures/shape-parity/CN2-CuCl2.xyz new file mode 100644 index 0000000..ec9910e --- /dev/null +++ b/tests/fixtures/shape-parity/CN2-CuCl2.xyz @@ -0,0 +1,5 @@ +3 +CN=2 CuCl2 bent dihalide - SHAPE v2.1 parity test (vT-2 = 0.10827) +Cu 0.000000 0.000000 0.000000 +Cl -1.081540 1.873498 0.000000 +Cl -1.081540 -1.873498 0.000000 diff --git a/tests/fixtures/shape-parity/CN3-NH3.xyz b/tests/fixtures/shape-parity/CN3-NH3.xyz new file mode 100644 index 0000000..21ae300 --- /dev/null +++ b/tests/fixtures/shape-parity/CN3-NH3.xyz @@ -0,0 +1,6 @@ +4 +CN=3 NH3 ammonia - SHAPE v2.1 parity test (vT-3 = 0.02875) +N -0.526500 -0.002200 -0.763300 +H -0.015500 -0.875500 -0.721600 +H 0.149800 0.750900 -0.732800 +H -0.991500 0.038900 -1.662000 diff --git a/tests/fixtures/shape-parity/CN4-CuCl4.xyz b/tests/fixtures/shape-parity/CN4-CuCl4.xyz new file mode 100644 index 0000000..b852441 --- /dev/null +++ b/tests/fixtures/shape-parity/CN4-CuCl4.xyz @@ -0,0 +1,7 @@ +5 +CN=4 CuCl4 square planar complex - SHAPE v2.1 parity test (SP-4 = 0.02657) +Cu 0.000000 0.000000 0.000000 +Cl -2.067300 0.921900 -0.063600 +Cl 2.067300 -0.921900 -0.063600 +Cl -0.911800 -2.077700 0.003700 +Cl 0.911800 2.077700 0.003700 diff --git a/tests/fixtures/shape-parity/CN5-AgL5.xyz b/tests/fixtures/shape-parity/CN5-AgL5.xyz new file mode 100644 index 0000000..22a8d43 --- /dev/null +++ b/tests/fixtures/shape-parity/CN5-AgL5.xyz @@ -0,0 +1,8 @@ +6 +CN=5 Ag(I) complex 4N+1O - SHAPE v2.1 parity test (SPY-5 = 4.22501) +Ag 1.371713 4.334600 3.420395 +N 0.856035 6.772996 3.832547 +N 3.311115 5.508578 4.289718 +N 0.425955 4.055797 1.227668 +N 2.290446 2.323681 2.314340 +O 0.165372 4.112289 5.476084 diff --git a/tests/fixtures/shape-parity/CN6-NiN4O2.xyz b/tests/fixtures/shape-parity/CN6-NiN4O2.xyz new file mode 100644 index 0000000..51a94e0 --- /dev/null +++ b/tests/fixtures/shape-parity/CN6-NiN4O2.xyz @@ -0,0 +1,9 @@ +7 +CN=6 NiN4O2 octahedral complex - SHAPE v2.1 parity test (OC-6 = 0.21577) +Ni -0.331700 12.016500 1.246900 +N -0.457700 9.773400 1.221200 +N 0.436000 12.016500 3.152600 +N 1.504500 12.016500 0.329200 +O -2.277700 12.016500 2.201600 +O -1.233100 12.016500 -0.608400 +N -0.457700 14.259600 1.221200 diff --git a/tests/fixtures/shape-parity/CN7-FeL7.xyz b/tests/fixtures/shape-parity/CN7-FeL7.xyz new file mode 100644 index 0000000..98a8ad0 --- /dev/null +++ b/tests/fixtures/shape-parity/CN7-FeL7.xyz @@ -0,0 +1,10 @@ +8 +CN=7 FeL7 pentagonal bipyramidal complex - SHAPE v2.1 parity test (PBPY-7 = 0.00000) +Fe -0.296300 0.263100 -0.144700 +F -0.204200 -1.450800 -1.354600 +F -2.375000 0.352100 -0.428900 +F -0.537200 0.938400 1.829100 +F 1.782500 0.174100 0.139600 +F -0.204200 2.361000 -0.160700 +F -0.537200 -1.417500 1.091300 +F 0.001600 0.884400 -2.128400 diff --git a/tests/fixtures/shape-parity/CN8-FeL8.xyz b/tests/fixtures/shape-parity/CN8-FeL8.xyz new file mode 100644 index 0000000..9f968c5 --- /dev/null +++ b/tests/fixtures/shape-parity/CN8-FeL8.xyz @@ -0,0 +1,11 @@ +9 +CN=8 FeL8 square antiprism complex - SHAPE v2.1 parity test (SAPR-8 = 0.09337) +Fe 0.528800 0.000000 -2.282100 +F -0.039900 -0.159600 -4.111200 +F 1.647200 1.173400 -3.315000 +F 2.346100 -0.528500 -1.946600 +F -1.288500 -0.598500 -2.098400 +F 1.097500 1.286600 -0.972300 +F 0.398700 -0.859300 -0.567800 +F 0.658900 -1.861500 -2.742800 +F -0.589600 1.547500 -2.502900 diff --git a/tests/fixtures/shape-parity/CN9-CrL9.xyz b/tests/fixtures/shape-parity/CN9-CrL9.xyz new file mode 100644 index 0000000..a9caffd --- /dev/null +++ b/tests/fixtures/shape-parity/CN9-CrL9.xyz @@ -0,0 +1,12 @@ +10 +CN=9 CrL9 muffin complex - SHAPE v2.1 parity test (MFF-9 = 0.00000) +Cr 1.161200 13.221400 15.185000 +C 2.606400 12.222300 15.545400 +C 1.709900 13.567700 16.857100 +C 2.436700 14.427000 14.820200 +C 1.784100 12.520700 13.656000 +C 0.498700 11.721200 14.458700 +C 0.757800 12.063400 16.496000 +C -0.618600 13.193400 15.417400 +C 0.333400 14.697800 15.778500 +C 0.379300 14.050700 13.800200 diff --git a/tests/fixtures/shape-parity/README.md b/tests/fixtures/shape-parity/README.md new file mode 100644 index 0000000..5b793f6 --- /dev/null +++ b/tests/fixtures/shape-parity/README.md @@ -0,0 +1,44 @@ +# SHAPE v2.1 Parity Test Structures + +These XYZ files contain the molecular structures used to validate Q-Shape against SHAPE v2.1 (the reference Fortran implementation by Alvarez et al., Universitat de Barcelona). + +## Test Structures + +| File | CN | Metal | Best Geometry | SHAPE CShM | +|------|----|----|---------------|------------| +| CN2-CuCl2.xyz | 2 | Cu | vT-2 (V-shape) | 0.10827 | +| CN3-NH3.xyz | 3 | N | vT-3 (Pyramid) | 0.02875 | +| CN4-CuCl4.xyz | 4 | Cu | SP-4 (Square Planar) | 0.02657 | +| CN5-AgL5.xyz | 5 | Ag | SPY-5 (Square Pyramidal) | 4.22501 | +| CN6-NiN4O2.xyz | 6 | Ni | OC-6 (Octahedral) | 0.21577 | +| CN7-FeL7.xyz | 7 | Fe | PBPY-7 (Pentagonal Bipyramidal) | 0.00000 | +| CN8-FeL8.xyz | 8 | Fe | SAPR-8 (Square Antiprism) | 0.09337 | +| CN9-CrL9.xyz | 9 | Cr | MFF-9 (Muffin) | 0.00000 | +| CN10-FeL10.xyz | 10 | Fe | HD-10 (Hexadecahedron) | 16.93361 | +| CN11-NbL11.xyz | 11 | Nb | JAPPR-11 (Aug. Pent. Prism) | 21.67256 | +| CN12-NbL12.xyz | 12 | Nb | JBAPPR-12 (Biaug. Pent. Prism) | 17.93587 | + +## Usage + +These structures can be loaded directly into Q-Shape or used with the parity benchmark tests: + +```bash +npm test -- --testPathPattern="shapeParityBenchmark" +``` + +## Reproducibility + +All SHAPE v2.1 reference values were obtained using SHAPE v2.1 (June 2013 release) with default settings. The test structures were selected to cover: + +1. **Low CN (2-4)**: Simple geometries with clear best matches +2. **Medium CN (5-8)**: Common coordination environments in transition metal chemistry +3. **High CN (9-12)**: Complex polyhedra including Johnson solids + +## Validation Results + +Q-Shape achieves < 0.1% relative error compared to SHAPE v2.1 for all test structures. See the main README for detailed parity tables. + +## References + +1. Alvarez, S. et al. *Coord. Chem. Rev.* **2005**, 249, 1693-1708. DOI: [10.1016/j.ccr.2005.03.031](https://doi.org/10.1016/j.ccr.2005.03.031) +2. SHAPE v2.1: http://www.ee.ub.edu/index.php?option=com_content&view=article&id=90&Itemid=117