test_harness/
test_harness.rs1use embeddenator_testkit::*;
6
7fn main() {
8 println!("=== Embeddenator TestKit - Test Harness ===\n");
9
10 println!("1. Creating test harness...");
12 let harness = TestHarness::new();
13 println!(" Temp directory: {:?}", harness.temp_dir());
14
15 println!("\n2. Creating test file...");
17 let file_path = harness.create_file("test.txt", b"Hello, World!");
18 println!(" Created: {:?}", file_path);
19 println!(" Exists: {}", file_path.exists());
20
21 println!("\n3. Creating test dataset (5MB)...");
23 let dataset_path = harness.create_dataset(5);
24 println!(" Dataset directory: {:?}", dataset_path);
25
26 let files: Vec<_> = std::fs::read_dir(&dataset_path)
28 .unwrap()
29 .filter_map(|e| e.ok())
30 .collect();
31 println!(" Files created: {}", files.len());
32
33 if let Some(first_file) = files.first() {
34 let metadata = first_file.metadata().unwrap();
35 println!(" First file size: {} bytes", metadata.len());
36 }
37
38 println!("\n4. Creating large file with pattern...");
40 let large_file = harness.create_large_file(
41 "sequential.bin",
42 10, TestDataPattern::Sequential,
44 );
45 let metadata = std::fs::metadata(&large_file).unwrap();
46 println!(" Created: {:?}", large_file);
47 println!(
48 " Size: {} bytes ({} MB)",
49 metadata.len(),
50 metadata.len() / 1024 / 1024
51 );
52
53 println!("\n5. Creating directory structure...");
55 let dir_structure = harness.create_directory_structure("project");
56 println!(" Base: {:?}", dir_structure);
57 println!(" Contains dir1: {}", dir_structure.join("dir1").exists());
58 println!(
59 " Contains dir2/nested: {}",
60 dir_structure.join("dir2/nested").exists()
61 );
62
63 println!("\n6. Recording performance metrics...");
65 harness.record_metric(
66 "dataset_creation",
67 std::time::Duration::from_secs(1),
68 5120, 5.0, );
71
72 let metrics = harness.metrics();
73 if let Some(avg_time) = metrics.avg_time("dataset_creation") {
74 println!(" Average time: {:?}", avg_time);
75 }
76 if let Some(avg_throughput) = metrics.avg_throughput("dataset_creation") {
77 println!(" Average throughput: {:.2} MB/s", avg_throughput);
78 }
79
80 println!("\n✅ Test harness example complete!");
81 println!(" (Temp directory will be automatically cleaned up)");
82}