diff --git a/tests/internal/test_map.odin b/tests/internal/test_map.odin index 597f3ea1c..781fbad74 100644 --- a/tests/internal/test_map.odin +++ b/tests/internal/test_map.odin @@ -201,6 +201,120 @@ map_delete_random_key_value :: proc(t: ^testing.T) { } } +@test +set_insert_random_key_value :: proc(t: ^testing.T) { + seed_incr := u64(0) + for entries in ENTRY_COUNTS { + fmt.printf("[set_insert_random_key_value] Testing %v entries.\n", entries) + m: map[i64]struct{} + 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 value. Expected m[%v] to exist", k)) + } + } + seed_incr += 1 + } +} + +@test +set_delete_random_key_value :: proc(t: ^testing.T) { + seed_incr := u64(0) + for entries in ENTRY_COUNTS { + fmt.printf("[set_delete_random_key_value] Testing %v entries.\n", entries) + m: map[i64]struct{} + 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", 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] to exist", k)) + } + } + } + seed_incr += 1 + } +} + // -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- main :: proc() { @@ -219,6 +333,9 @@ main :: proc() { mem_track_test(&t, map_update_random_key_value) mem_track_test(&t, map_delete_random_key_value) + mem_track_test(&t, set_insert_random_key_value) + mem_track_test(&t, set_delete_random_key_value) + fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) if TEST_fail > 0 { os.exit(1)