diff --git a/tests/internal/test_map.odin b/tests/internal/test_map.odin index c318b6bdc..597f3ea1c 100644 --- a/tests/internal/test_map.odin +++ b/tests/internal/test_map.odin @@ -9,16 +9,18 @@ import "core:testing" seed: u64 -ENTRY_COUNTS := []int{11, 101} // , 1_001, 10_001, 100_001, 1_000_001} +ENTRY_COUNTS := []int{11, 101, 1_001, 10_001, 100_001, 1_000_001} @test map_insert_random_key_value :: proc(t: ^testing.T) { + seed_incr := u64(0) for entries in ENTRY_COUNTS { fmt.printf("[map_insert_random_key_value] Testing %v entries.\n", entries) m: map[i64]i64 + defer delete(m) unique_keys := 0 - r := rand.create(seed) + r := rand.create(seed + seed_incr) for _ in 0.. 5 { + fmt.println("... and more") + break + } + expect(t, false, fmt.tprintf("Unexpected value. Expected m[%v] = %v, got %v", k, v, m[k])) + } + } + seed_incr += 1 + } +} + +@test +map_delete_random_key_value :: proc(t: ^testing.T) { + seed_incr := u64(0) + for entries in ENTRY_COUNTS { + fmt.printf("[map_delete_random_key_value] Testing %v entries.\n", entries) + m: map[i64]i64 + defer delete(m) + + unique_keys := 0 + r := rand.create(seed + seed_incr) + for _ in 0.. 5 { + fmt.println("... and more") + break + } + expect(t, false, fmt.tprintf("Unexpected key present. Expected m[%v] to have been deleted, got %v", k, m[k])) + } + } else { + if k not_in m { + num_fails += 1 + if num_fails > 5 { + fmt.println("... and more") + break + } + expect(t, false, fmt.tprintf("Expected key not present. Expected m[%v] = %v", k, v)) + } else if m[k] != v { + num_fails += 1 + if num_fails > 5 { + fmt.println("... and more") + break + } + expect(t, false, fmt.tprintf("Unexpected value. Expected m[%v] = %v, got %v", k, v, m[k])) + } + } + } + seed_incr += 1 } } @@ -75,6 +216,8 @@ main :: proc() { fmt.println("Initialized seed to", seed) mem_track_test(&t, map_insert_random_key_value) + mem_track_test(&t, map_update_random_key_value) + mem_track_test(&t, map_delete_random_key_value) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) if TEST_fail > 0 {