MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / empty_vertices_produce_auto_merge

Function empty_vertices_produce_auto_merge

atomic-core/src/merge/engine.rs:631–657  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

629
630 #[test]
631 fn empty_vertices_produce_auto_merge() {
632 let mut txn = MockTxn::new();
633 let store = MemoryChangeStore::new();
634
635 // All three are empty content (structural inodes).
636 let hash = make_change(&store, b"");
637 let id = NodeId::new(1);
638 txn.register(id, hash);
639
640 let engine = SemanticMergeEngine::new(&txn, &store);
641
642 // Empty vertices: start == end.
643 let v1 = GraphNode::new(id, ChangePosition::new(0), ChangePosition::new(0));
644 let v2 = GraphNode::new(id, ChangePosition::new(0), ChangePosition::new(0));
645 let ancestor = GraphNode::new(id, ChangePosition::new(0), ChangePosition::new(0));
646
647 let group = ConflictGroup::new(vec![v1, v2]).with_ancestor(ancestor);
648 let outcome = engine.try_merge(&group).unwrap();
649
650 // Empty tokens on all sides → trivially merged.
651 assert!(
652 outcome.is_auto_merged(),
653 "expected AutoMerged for empty, got {:?}",
654 outcome
655 );
656 assert!(outcome.content().is_empty());
657 }
658
659 // ---- SemanticMergeEngine: exposes references ---------------------------
660

Callers

nothing calls this directly

Calls 5

with_ancestorMethod · 0.80
make_changeFunction · 0.70
registerMethod · 0.45
unwrapMethod · 0.45
try_mergeMethod · 0.45

Tested by

no test coverage detected