Team Ai
Datasetpublic

ZZoutian/figure2data-database-v2

figure2data databasev2 — 40K v6 合成科研图表数据集(最终交付版) 生成日期:2026-09-17 生成器:generator 1.6.0 / dataset_generation_revision v6(含两次 hotfix) 规模:40,000 样本(10 图族 / 33 亚型;area、matrix 冻结不生成,set_relation 已删除) 目录结构 databasev2/ ├── figure2data.sqlite3 # 主数据库(2.0 GB:40,000 samples / 280,000 documents) ├── schema/ # sqlite schema ├── shards/ # 数据资产(shard = (样本序号-1)//1000) │ └── shard_000 .. shard_039/ │ ├── images/ # PNG… See the full description on the dataset page: https://huggingface.co/datasets/ZZoutian/figure2data-database-v2.

sourceHugging Faceupdated 24d agoView on Hugging Face
0likes6.3kdownloads
test_renderer_estimation.py56 linesDownload Raw Back to tests
1"""database_yh §14.2 test_renderer_estimation:paired/unpaired/bootstrap 语义(§8)。"""2 3from __future__ import annotations4 5import numpy as np6import pytest7 8 9def test_paired_gt_contract(make_docs, audit):10    """§8.1:GT 必须含 pair_id / condition_a_value / condition_b_value;连线只连同 pair。"""11    docs, rendered = make_docs("statistical", "estimation", variant="paired", seed=3)12    bad = [i for i in audit("t", docs) if i["check"] == "semantic_contract"]13    assert not bad14    truth = docs["truth"]15    paired = next(s for s in truth["series"] if s["data"].get("kind") == "paired")16    pairs = paired["data"]["pairs"]17    assert len(pairs) >= 1018    for pr in pairs:19        assert pr["pair_id"] and "condition_a_value" in pr and "condition_b_value" in pr20    # 连接线 series:x ∈ {0,1}(跨 observation 连线禁止)21    spec_pairs = next(s for s in rendered["spec"]["panels"][0]["series"]22                      if (s.get("truth") or {}).get("kind") == "paired")23    xs = np.asarray(spec_pairs["x"], float)24    assert set(np.unique(xs[np.isfinite(xs)])) <= {0.0, 1.0}25 26 27def test_unpaired_no_links_with_ci(make_docs, audit):28    """§8.2:两组原始点 + 组估计 + CI;observation 之间不得连线。"""29    docs, rendered = make_docs("statistical", "estimation", variant="unpaired", seed=5)30    bad = [i for i in audit("t", docs) if i["check"] == "semantic_contract"]31    assert not bad32    truth = docs["truth"]33    est = next(s for s in truth["series"] if s["data"].get("kind") == "estimation")34    d = est["data"]35    assert len(d["estimate"]) == 2 and len(d["ci_low"]) == 2 and len(d["ci_high"]) == 236    for e, lo, hi in zip(d["estimate"], d["ci_low"], d["ci_high"]):37        assert lo < e < hi38    # 无 pair 连接线39    assert not any((s.get("truth") or {}).get("kind") == "paired"40                   for s in rendered["spec"]["panels"][0]["series"])41 42 43def test_bootstrap_interval_gt_contract(make_docs, audit):44    """§8.3:estimate/ci_low/ci_high + bootstrap_samples 必须入 GT。"""45    docs, _ = make_docs("statistical", "estimation", variant="bootstrap_interval", seed=9)46    bad = [i for i in audit("t", docs) if i["check"] == "semantic_contract"]47    assert not bad48    truth = docs["truth"]49    est = next(s for s in truth["series"] if s["data"].get("kind") == "estimation")50    d = est["data"]51    assert d["ci_low"] < d["estimate"] < d["ci_high"]52    assert len(d["bootstrap_samples"]) == 50053    # scene measurements 含 estimate_ci54    ms = docs["scene"]["specialized"].get("measurements") or []55    assert any(m.get("kind") == "estimate_ci" for m in ms), "scene 缺 estimate_ci measurement"56 
ZZoutian/figure2data-database-v2 · Team Ai