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

Function test_builder_statistics

atomic-core/tests/crdt_integration_test.rs:704–733  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

702/// Test that the builder correctly tracks statistics.
703#[test]
704fn test_builder_statistics() {
705 let change_id = NodeId::new(1);
706 let mut builder = CrdtChangeBuilder::new(change_id);
707
708 // Add multiple files
709 let trunk_1 = builder.add_file("file1.rs", Some(Encoding::Utf8));
710 let trunk_2 = builder.add_file("file2.rs", Some(Encoding::Utf8));
711
712 // Add lines to first file
713 let branch_1 = builder.add_line(trunk_1, None);
714 let branch_2 = builder.add_line(trunk_1, None);
715
716 // Add lines to second file
717 let branch_3 = builder.add_line(trunk_2, None);
718
719 // Add tokens
720 builder.add_token(branch_1, None, TokenKind::Word, b"hello");
721 builder.add_token(branch_1, None, TokenKind::Whitespace, b" ");
722 builder.add_token(branch_2, None, TokenKind::Word, b"world");
723 builder.add_token(branch_3, None, TokenKind::Number, b"42");
724
725 let result = builder.finish();
726
727 // Verify statistics
728 assert_eq!(result.stats().files_added, 2);
729 assert_eq!(result.stats().lines_added, 3);
730 assert_eq!(result.stats().tokens_added, 4);
731 assert!(result.stats().content_bytes > 0);
732 assert!(result.stats().has_changes());
733}
734
735/// Test inode allocation works correctly.
736#[test]

Callers

nothing calls this directly

Calls 4

add_fileMethod · 0.45
add_lineMethod · 0.45
add_tokenMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected