V3 Real World Tests Specification¶
1. Goal¶
V3 Real World Tests are the real-world acceptance gate before a stable 1.x
release. After 0.x prereleases, capability expansion, and engineering
optimization, MPSBoost must demonstrate correctness, stability, installation
experience, and end-to-end performance on public, reproducible datasets with real
tabular-learning difficulty before releasing any 1.x version.
Until this stage is complete, public PyPI versions may use only 0.x. 1.0.0
means a stable commitment real users may depend upon; it must not be reached merely
because many features exist, CI passes, or synthetic benchmarks pass.
2. Version Discipline¶
0.x: permits rapid iteration, prereleases, and capability expansion, but limitations must be stated honestly.0.x alpha/beta/rc: used for module milestones, performance gates, and stability candidates.1.x: released only after every V3 real-world dataset acceptance passes.- Published versions cannot be overwritten; every fix increments a new version.
- Synthetic benchmarks prove only local capability and cannot alone justify a
1.xrelease.
3. Dataset Requirements¶
Real-world test datasets must:
- have legal sources, clear licenses, and user-reproducible acquisition;
- cover delivered model families for regression, binary classification, multiclass classification, anomaly detection, and ranking;
- include small, medium, many-row, wide-table, high-cardinality categorical, missing-value, and skewed-label data;
- define train/validation/test splits;
- record downloading, validation, preprocessing, and caching strategies;
- not package raw, private, or unclearly licensed data in wheels.
3.1 Dataset Acceptance Matrix¶
V3 must establish the tests/real_world/ suite. It answers whether the library is
reliable on data shapes real users encounter, rather than replacing unit,
integration, or synthetic-benchmark tests.
The first dataset set prioritizes stable sources, clear licenses, caching, and offline reruns:
| Dataset | Task type | Main purpose | Acquisition strategy |
|---|---|---|---|
| Iris | Multiclass | Minimal multiclass sanity test; validates sklearn workflows, class probabilities, and save/load. | Prefer built-in sklearn.datasets.load_iris data. |
| Breast Cancer Wisconsin | Binary classification | Validates binary probabilities, thresholds, AUC/accuracy, and small/medium numerical tabular behavior. | Prefer built-in sklearn.datasets.load_breast_cancer data. |
| Diabetes | Regression | Small regression sanity test for metrics, model I/O, and reproducibility. | Prefer built-in sklearn.datasets.load_diabetes data. |
| California Housing | Regression | Medium regression baseline covering real numerical tables and performance boundaries. | Use sklearn.datasets.fetch_california_housing; cache it and permit offline reruns. |
| Digits | Multiclass | Lightweight multiclass tree-model stress test over flattened images. | Prefer built-in sklearn.datasets.load_digits data. |
| MNIST subset | Multiclass | Flattened-feature stress test nearer real image-classification scale; limit samples to keep CI bounded. | External download locks version, caches, and validates hash; it does not block ordinary tests by default. |
| Titanic | Binary classification + missing values + categorical features | Validates real cleaning, missing-value strategy, categorical encoding, and pipeline compatibility. | Use a stable mirror or project download script; do not package raw data in wheels. |
| Adult Income | Binary classification + high-cardinality features | Validates categorical features, larger row counts, category cardinality, and fairness-record metrics. | External download caches, validates hash, and supports a manual predownload path. |
| Covertype subset | Multiclass + many rows | Validates larger row counts, multiclass, and training-throughput boundaries. | External/OpenML acquisition is opt-in and uses a fixed subset by default. |
| Higgs subset | Binary classification + performance boundary | Validates large numerical-table throughput, peak memory, and CPU/MPS degradation boundaries. | Opt-in long test only; limit subset size and record machine information. |
3.2 Data and Cache Discipline¶
tests/real_world/permits neither mock backends nor synthetic data presented as real-data acceptance.- Ordinary CI runs only built-in dataset tests requiring no network or external downloads and with controlled runtime.
- External datasets download through project scripts into layered-cache directories and do not download again on cache hits.
- Download scripts record source, license, version, file size, hash, and local cache path.
- Preprocessing is reproducible; random splits use fixed seeds and record train/validation/test ratios.
- When downloading fails, tests explicitly skip and state the missing data file; they must not silently degrade to mocks.
- Real-world performance tests record device, OS version, Python version, package version, data scale, and parameter configuration.
4. Reference Baselines¶
Every delivered model family needs at least one strong CPU baseline and one project CPU-oracle comparison:
- CPU oracle validates numerical semantics and boundaries;
- strong CPU baselines reference performance and model quality;
- GPU results record training time, prediction time, metrics, model size, and peak memory;
- publish small-data degradation rather than showing only winning cases.
5. Quality Gates¶
Before entering 1.x, all of the following must hold:
- Clean-environment installation succeeds without local compilation;
- real-dataset training, prediction, saving, loading, and reproduction all pass;
- end-to-end reports cover preprocessing, binning, training, synchronization, prediction, and model I/O;
- model quality is not materially worse than CPU baselines; differences require explanation;
- deleting, corrupting, or disabling caches does not affect results;
- long repeated training has no memory growth, resource leak, or GPU command failure;
- documentation clearly states support, unsupported scope, and degradation ranges.
6. 1.x Release Gate¶
tasks.md may allow 1.0.0 only after all of the following complete:
- The V1 MPS histogram engine is stable;
- Every V2 arboretum model family planned for 1.0 is complete;
- The entire V3 real-world test matrix passes;
- CI, PyPI, wheel, license, size, and permission audits all pass;
- The user gives final confirmation of public-commitment scope, version, and artifact hash.