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

Source from the content-addressed store, hash-verified

348
349 #[test]
350 fn test_kg_edge_crud() {
351 let dir = tempdir().unwrap();
352 let pristine = Pristine::open(dir.path().join("db")).unwrap();
353 let mut txn = pristine.write_txn().unwrap();
354 txn.init_kg().unwrap();
355
356 // Create nodes
357 txn.upsert_kg_node(&KgNode::new("change:abc", "change", "abc", "graph"))
358 .unwrap();
359 txn.upsert_kg_node(&KgNode::new("file:auth.rs", "file", "auth.rs", "graph"))
360 .unwrap();
361 txn.upsert_kg_node(&KgNode::new("file:main.rs", "file", "main.rs", "graph"))
362 .unwrap();
363
364 // Create edges
365 txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:auth.rs", "MODIFIES"))
366 .unwrap();
367 txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:main.rs", "MODIFIES"))
368 .unwrap();
369
370 // Query outgoing
371 let outgoing = txn.get_kg_edges_from("change:abc").unwrap();
372 assert_eq!(outgoing.len(), 2);
373
374 // Query incoming
375 let incoming = txn.get_kg_edges_to("file:auth.rs").unwrap();
376 assert_eq!(incoming.len(), 1);
377 assert_eq!(incoming[0].from_id, "change:abc");
378
379 // Delete edge
380 assert!(txn
381 .del_kg_edge("change:abc", "file:auth.rs", "MODIFIES")
382 .unwrap());
383 assert_eq!(txn.get_kg_edges_from("change:abc").unwrap().len(), 1);
384
385 // Counts
386 assert_eq!(txn.count_kg_nodes().unwrap(), 3);
387 assert_eq!(txn.count_kg_edges().unwrap(), 1);
388
389 txn.commit().unwrap();
390 }
391
392 #[test]
393 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