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

Function test_kg_edge_crud

atomic-core/src/pristine/txn/write/triples.rs:484–524  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

482
483 #[test]
484 fn test_kg_edge_crud() {
485 let dir = tempdir().unwrap();
486 let pristine = Pristine::open(dir.path().join("db")).unwrap();
487 let mut txn = pristine.write_txn().unwrap();
488 txn.init_kg().unwrap();
489
490 // Create nodes
491 txn.upsert_kg_node(&KgNode::new("change:abc", "change", "abc", "graph"))
492 .unwrap();
493 txn.upsert_kg_node(&KgNode::new("file:auth.rs", "file", "auth.rs", "graph"))
494 .unwrap();
495 txn.upsert_kg_node(&KgNode::new("file:main.rs", "file", "main.rs", "graph"))
496 .unwrap();
497
498 // Create edges
499 txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:auth.rs", "MODIFIES"))
500 .unwrap();
501 txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:main.rs", "MODIFIES"))
502 .unwrap();
503
504 // Query outgoing
505 let outgoing = txn.get_kg_edges_from("change:abc").unwrap();
506 assert_eq!(outgoing.len(), 2);
507
508 // Query incoming
509 let incoming = txn.get_kg_edges_to("file:auth.rs").unwrap();
510 assert_eq!(incoming.len(), 1);
511 assert_eq!(incoming[0].from_id, "change:abc");
512
513 // Delete edge
514 assert!(txn
515 .del_kg_edge("change:abc", "file:auth.rs", "MODIFIES")
516 .unwrap());
517 assert_eq!(txn.get_kg_edges_from("change:abc").unwrap().len(), 1);
518
519 // Counts
520 assert_eq!(txn.count_kg_nodes().unwrap(), 3);
521 assert_eq!(txn.count_kg_edges().unwrap(), 1);
522
523 txn.commit().unwrap();
524 }
525
526 #[test]
527 fn test_kg_neighbors() {

Callers

nothing calls this directly

Calls 9

write_txnMethod · 0.80
upsert_kg_nodeMethod · 0.80
upsert_kg_edgeMethod · 0.80
commitMethod · 0.80
unwrapMethod · 0.45
pathMethod · 0.45
init_kgMethod · 0.45
get_kg_edges_fromMethod · 0.45
get_kg_edges_toMethod · 0.45

Tested by

no test coverage detected