Validation Test Suite
Every NAVAL-SEM release is gated by a full pytest + Playwright suite run against published benchmark datasets. All 168 tests must pass before a build ships. Results are compared to peer-reviewed anchor values — if the numbers don't match the literature, the release is blocked. This page documents all test cases including v1.0 fsQCA/reporting tests and the v1.1 literature-anchored parity suite (S1-S7): tests that assert model fit indices, FIML estimates, and plain-English annotations against numbers traceable to a specific published source (Rosseel 2012, Bollen 1989, Arbuckle 1996, Hu & Bentler 1999) rather than just checking that a run doesn't crash. Sub-features without an available original reference dataset are left as explicit skips rather than backed by an invented benchmark — see the "Skipped" tag in the registry below.
Release gate · pytest + Playwright · 168/168 required to pass
CorporateRep
N=344 · 6 LVs
Hair et al. (2011/2013) corporate reputation dataset used in PLS-SEM primer examples.
Used by: TC-02, TC-04, TC-06, TC-14–17, TC-22, TC-23, TC-25, TC-27, TC-29, TC-30, TC-41–45, TC-54, TC-58–60, TC-62–65, TC-68
HS1939
N=301 · 3 factors
Holzinger & Swineford (1939) mental ability test scores. CB-SEM CFA benchmark. PAR-01 pulls the exact original data via semopy's bundled example (skips rather than substitutes a synthetic surrogate if unavailable).
Used by: TC-03, TC-07, TC-08, TC-31–36, PAR-01
PoliticalDem
N=75 · 4 LVs
Bollen (1989) political democracy dataset. CB-SEM CFI/RMSEA anchor. PAR-02/05/07 pull the exact original data via semopy's bundled example (skip rather than substitute a synthetic surrogate if unavailable).
Used by: TC-52, TC-53, TC-56, PAR-02, PAR-05, PAR-07
ECSI_Satisfy
N=250 · 5 LVs
European Customer Satisfaction Index (Tenenhaus 2005). PLS-SEM path coefficient benchmark.
Used by: TC-26, TC-28, TC-46–49, TC-95–97
ECSI_MGA
N=500 · 2 groups
Subgroup split of ECSI for multi-group analysis (MGA) testing.
Used by: TC-20, TC-21, TC-98–102
EStress
N=219 · 4 LVs
Hayes (2018) work-related stress dataset. Moderation and conditional process benchmark.
Used by: TC-24, TC-40, TC-70–75
Disaster
N=211 · 3 LVs
Hayes (2018) disaster frame mediation dataset.
Used by: TC-37, TC-38
PMI
N=123 · 3 LVs
Hayes (2018) prosocial motivation and immobilisation dataset (a matched synthetic version is used for PAR-06's annotation-format check).
Used by: TC-39, PAR-06
FIML_GroundTruth
N=3000 · 1 factor · simulated
Simulated from known population loadings (λ = 1.0/.8/.7/.6) with 15% MCAR injected on two indicators, so FIML recovery is checked against ground truth rather than a noisy finite-sample comparison fit.
Used by: PAR-04
Mardia_GroundTruth
N=500 · 1 factor · simulated (×2)
One draw from a normal common factor, one from a χ²(df=2) (heavily right-skewed) common factor. No textbook dataset with a published Mardia statistic was available, so PAR-09 checks that both are classified correctly instead of matching one reported number.
Used by: PAR-09
Bayes_GroundTruth
N=400 · 1 factor · simulated
Simulated from known population loadings (λ = 1.0/.75/.65/.55). No verifiable published Bayesian posterior-mean reference was available for A18, so this dataset lets PAR-10 check posterior consistency (R-hat + recovery of the true loadings) instead of an invented benchmark number.
Used by: PAR-10
LCA_TwoClass
N=150/class · 2 classes · simulated
Two well-separated simulated classes (indicator means ~2 vs ~8, equal size). No published class-proportion/item-response dataset was available for engine_lca.py, so PAR-11 checks recovery of this known structure instead.
Used by: PAR-11
MGA_PlantedEffect
N=250/group · 2 groups · simulated
Two simulated groups sharing one measurement model; the F→Y structural path is deliberately set to 0.6 in group A vs. 0.15 in group B (plus a separate 0.4/0.4 null-case draw). Henseler et al.'s (2009) own demonstration dataset wasn't available to reproduce exactly, so PAR-12 checks MGA's power/Type-I behaviour on a known planted effect instead.
Used by: PAR-12
CTA_GroundTruth
N=400 · simulated (×2)
One draw from a genuine single common factor (tetrads should vanish), one from two independent factors forced into a single reflective block (tetrads should not vanish). Bollen & Ting's (2000) own worked example wasn't available, so PAR-13 checks this known property instead.
Used by: PAR-13
Predict_GroundTruth
N=300 · 2 LVs · simulated (×2)
Same measurement blocks in both draws; one has a genuine F→Y structural relationship (β=0.75), the other has Y generated as pure noise independent of F. Shmueli et al.'s (2019) exact benchmark table wasn't available, so PAR-14 checks the decision rule distinguishes these instead.
Used by: PAR-14
HS1939_Missing
N=301 · 8% MCAR
HS1939 with 8% MCAR introduced for missing data handling tests.
Used by: TC-07, TC-08, TC-35, TC-55
CMB_Sim
N=300 · simulated CMB
Simulated dataset with injected common method bias (inflated R²).
Used by: TC-19, TC-51, TC-69
Heywood
N=80 · edge case
Designed to trigger Heywood cases (negative residual variance) in CB-SEM.
Used by: TC-50, TC-57
CVI_Expert
N=12 experts · 20 items
Simulated expert rating matrix for CVI testing. Polit & Beck (2006) thresholds applied.
Used by: TC-80–85, TC-84, TC-127
FsQCA_Wagemann
N=36 · 4 conditions
Wagemann & Schneider (2010) replication dataset for fsQCA Boolean minimisation benchmarking.
Used by: TC-105–114, TC-123, TC-125, TC-126