Skip to content

Improve test coverage to match Julia UnitDiskMapping #17

@GiggleLiu

Description

@GiggleLiu

Summary

Analysis of test coverage comparing Rust implementation with Julia's UnitDiskMapping reveals several gaps and failing tests that need attention.

Missing Tests (from Julia)

High Priority

  1. Logic Gates (logicgates.jl)

    • NOT, XOR, AND, OR, NOR, NXOR gate gadgets
    • Truth table verification for each gate
  2. Multiplier/Factoring (multiplier.jl)

    • Multiplier gadget construction
    • Factoring (2×2, 2×3 bits)
    • Completeness verification (all inputs reachable)
    • Soundness verification (correct arithmetic)
  3. Boundary Config Extraction (extracting_results.jl)

    • mapped_entry_to_compact
    • source_entry_to_configs
    • mapped_boundary_config
    • source_boundary_config

Low Priority (Visualization)

  • Drag and drop tests
  • Visualization tests

Failing Tests (Need Investigation)

Triangular map_config_back

These tests verify solution extraction from the grid graph:

  • test_triangular_map_config_back_path_graph
  • test_triangular_map_config_back_bull
  • test_triangular_map_config_back_diamond
  • test_triangular_map_config_back_house
  • test_triangular_map_config_back_petersen

Gadget MIS Equivalence

These test individual gadget correctness via MIS solving:

  • test_triturn_mis_equivalence
  • test_tricross_connected_weighted_mis_equivalence
  • test_tricross_disconnected_weighted_mis_equivalence
  • test_tribranch_mis_equivalence

Interface Tests

  • test_triangular_interface_full - MIS overhead formula with random weights

Current Status

Category Rust Julia Notes
Total tests 160 ~50 Rust has more basic coverage
Alpha tensor ✅ 11/11 N/A Gadget verification
MIS overhead ✅ 9/9 Formula: overhead == mapped_MIS
map_config_back ❌ 5 failing Triangular mode broken
Logic gates ❌ Missing Not implemented
Multiplier ❌ Missing Not implemented

Reference

Julia test files: ~/.julia/dev/UnitDiskMapping/test/

  • triangular.jl - Triangular lattice tests
  • weighted.jl - Weighted mode tests
  • logicgates.jl - Logic gate tests
  • multiplier.jl - Multiplier/factoring tests
  • extracting_results.jl - Boundary config tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions