test(port-parser-vcf): v2 port (re-dispatch) — 15 active tests + 47 blocked-future-work stanzas#174
Open
sitekwb wants to merge 2 commits into
Open
test(port-parser-vcf): v2 port (re-dispatch) — 15 active tests + 47 blocked-future-work stanzas#174sitekwb wants to merge 2 commits into
sitekwb wants to merge 2 commits into
Conversation
…le.rs (sztywno 1:1)
Re-dispatch of Parser_VCF.t v2 port (original implementer aa08eb3a stalled).
Adds 9 #[test] functions in src/allele.rs::tests pinning the pure-fn allele
helpers against Perl Parser_VCF.t subtests:
pvcf_09_deletion_ac_to_a — vcf_to_vep_allele("AC","A")==("C","-")
pvcf_10_insertion_a_to_ac — vcf_to_vep_allele("A","AC")==("-","C")
pvcf_11_short_form_del_ignores_svtype — SVTYPE=DEL ignored on short-form
pvcf_12_short_form_ins_ignores_svlen — SVLEN=1 ignored on short-form
pvcf_13_multi_alt_snv_pass_through — SNV-only multi-ALT no-trim rule
pvcf_14_multi_alt_different_first_base — joint prefix=0
pvcf_15_multi_alt_same_first_base — joint prefix=1, REF→"-", pos shifts
pvcf_24_minimal_non_minimisable_multi_alt_pass_through — mixed-length pass-through
pvcf_23_a2_minimal_outcome_via_always_on_trimming — Q3 reclass: CAT→CCT
yields A/C via trim_sequences_ensembl (Perl minimal=1 equivalent); also
documents the API split between vcf_to_vep_allele (MNV-preserving) and
trim_sequences_ensembl (full minimizer).
Per-port plan: porting-tests/plans/2026-05-28-port-parser-vcf.md.
Detailed plan: porting-tests/detailed_plans/Parser_VCF.md (post-Phase-D).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… blocked-future-work
New file tests/port_parser_vcf.rs covers the non-unit-port slice of
Parser_VCF.t v2 port:
6 active #[tokio::test] integration tests (use noodles VcfTableProvider):
pvcf_05_06_07_basic_parse_and_headers — header preservation + rows 0/1
pvcf_08_non_variant_rows_kept_in_batch_null_alt — vepyr keeps non-variant
rows at parser level (annotate-time skip downstream; documented deviation)
pvcf_16_stubby_row_parses — minimal-INFO row parses as SNV
pvcf_18_non_variant_row_default_kept_with_null_alt — default-mode keep
pvcf_69_non_numeric_pos_row_dropped_or_errored — noodles errors on bad POS
pvcf_a1_b1_star_allele_in_multi_alt_parsed_to_both_alts — A1/B1 Phase D row
6 architectural-no-analogue rows documented at top:
#3 (Parser::VCF Rust class), #4 (parser accessor),
#19/#21/#22 (* allele_string preservation), #23 (minimal=1 flag).
47 blocked-future-work stanzas at bottom, organized in 13 clusters per
the detailed_plan (SV/max_sv_size/CPX/ME/CNV/BND/TR/GP/individual/
individual_zyg/allow_non_variant/dont_skip/<DEL:*>). Each stanza names
the Perl row, the vepyr gap, the engine blocker # or sub-blocker, the
future-work-vepyr.md entry title, and a commented-out test body.
Per-port plan: porting-tests/plans/2026-05-28-port-parser-vcf.md.
Detailed plan: porting-tests/detailed_plans/Parser_VCF.md (post-Phase-D).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v2-paradigm port of
ensembl-vep/t/Parser_VCF.t(Parser_VCF). This is a re-dispatch — the original implementer (commit aa08eb3a) stalled mid-cargo-compile without committing any work; the dead branchport-parser-vcf-2026-05-28has only dev-test merges. This PR is on a fresh branch.Scope (per
porting-tests/detailed_plans/Parser_VCF.mdpost-Phase-D):#[test]functions insrc/allele.rs::testscovering 8 pure-fn unit-port rows (Bump futures from 0.3.31 to 0.3.32 #9-Add optional distance column to nearest UDTF #15, Bump Datafusion to 52 #24) + 1 reclassified row (feat: Ensembl VEP port #23 + Axis A2 combined per user Q3 decision 2026-05-28).#[tokio::test]functions intests/port_parser_vcf.rscovering noodles-reader integration rows (Bump softprops/action-gh-release from 1 to 2 #5/Bump actions/cache from 4 to 5 #6/Bump actions/checkout from 4 to 6 #7 consolidated, build(deps): bump datafusion from 50.3.0 to 51.0.0 in the datafusion group across 1 directory #8, Add overlap and merge UDTVFs #16, Replace std HashMap with AHashMap in interval_join.rs build map #18, CacheBuilder: no actual parallelism — sequential loops + execute_stream() merges partitions #69, Axis A1/B1 consolidated).tests/port_parser_vcf.rs) for blocked-future-work rows, organized into 13 clusters per the detailed_plan and naming engine blocker Add max_batch_rows option to PileupConfig for chunked streaming output #2 sub-entries by title.tests/port_parser_vcf.rs(Add Claude Code GitHub Workflow #3, Add new crate: datafusion-bio-function-ranges (coverage & count_overlaps) #4, Replace std HashMap with AHashMap in pileup events/coverage contig maps #19, feat: Preserve extra columns in cluster and subtract UDTFs #21, Add bio-function-vep crate with lookup_variants table function #22, feat: Ensembl VEP port #23).use_ok) — cargo handles.Total Perl coverage: 71 sztywno-1:1 rows (68 substantive + 2 Axis A + 1 Axis B) mapped → 15 active Rust tests + 47 commented future-work + 6 doc-only = 100% sztywno-1:1.
Test plan
env -u CONDA_PREFIX cargo test -p datafusion-bio-function-vep --lib pvcf→ 9 passingenv -u CONDA_PREFIX cargo test -p datafusion-bio-function-vep --test port_parser_vcf→ 6 passing#[cfg(test)] mod testsblock or new test filegolden.vcf, noport_common::run_and_compare_csq, nogen_golden.sh, nomod port_common(v2 standalone rule)dev-test(per user hard rule: no master/main targets in vepyr repos)Notes on Q3 reclassification (row #23)
Per user decision 2026-05-28 the Perl
minimal=1flag testCAT/CCT → A/Cis reclassified architectural-no-analogue → unit-port. vepyr exposes two trim helpers:vcf_to_vep_allele(allele.rs:283): MNV-preserving — same-length REF/ALT prefix-trim only, no suffix-trim. CAT/CCT → AT/CT.trim_sequences_ensembl(allele.rs:118): full minimizer used by Perlminimal=1. CAT/CCT → A/C with pos+1 / end+1.The test
pvcf_23_a2_minimal_outcome_via_always_on_trimmingasserts BOTH outcomes — documenting the API split and pinning the semantic equivalence with Perlminimal=1.Related
port-parser-vcf-redispatch-plan-2026-05-28)/" + 12 misc cluster entries (all already in place; no future-work-vepyr.md modification required by this port)🤖 Generated with Claude Code