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:502–542  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

500
501 #[test]
502 fn test_kg_edge_crud() {
503 let dir = tempdir().unwrap();
504 let pristine = Pristine::open(dir.path().join("db")).unwrap();
505 let mut txn = pristine.write_txn().unwrap();
506 txn.init_kg().unwrap();
507
508 // Create nodes
509 txn.upsert_kg_node(&KgNode::new("change:abc", "change", "abc", "graph"))
510 .unwrap();
511 txn.upsert_kg_node(&KgNode::new("file:auth.rs", "file", "auth.rs", "graph"))
512 .unwrap();
513 txn.upsert_kg_node(&KgNode::new("file:main.rs", "file", "main.rs", "graph"))
514 .unwrap();
515
516 // Create edges
517 txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:auth.rs", "MODIFIES"))
518 .unwrap();
519 txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:main.rs", "MODIFIES"))
520 .unwrap();
521
522 // Query outgoing
523 let outgoing = txn.get_kg_edges_from("change:abc").unwrap();
524 assert_eq!(outgoing.len(), 2);
525
526 // Query incoming
527 let incoming = txn.get_kg_edges_to("file:auth.rs").unwrap();
528 assert_eq!(incoming.len(), 1);
529 assert_eq!(incoming[0].from_id, "change:abc");
530
531 // Delete edge
532 assert!(txn
533 .del_kg_edge("change:abc", "file:auth.rs", "MODIFIES")
534 .unwrap());
535 assert_eq!(txn.get_kg_edges_from("change:abc").unwrap().len(), 1);
536
537 // Counts
538 assert_eq!(txn.count_kg_nodes().unwrap(), 3);
539 assert_eq!(txn.count_kg_edges().unwrap(), 1);
540
541 txn.commit().unwrap();
542 }
543
544 #[test]
545 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