This commit is contained in:
adman
2026-07-16 01:13:31 +02:00
parent b966925212
commit 5c5c391aa6
14 changed files with 441 additions and 120 deletions
+42
View File
@@ -1,6 +1,7 @@
package data
import (
"math"
"testing"
)
@@ -32,3 +33,44 @@ func TestMultiNoiseLookup_NetherOrigin(t *testing.T) {
t.Errorf("nether origin = %s, want minecraft:nether_wastes", biome)
}
}
func TestMultiNoiseLookup_BVHMatchesBruteForce(t *testing.T) {
data, err := LoadMultiNoise("1.21.11")
if err != nil {
t.Fatalf("LoadMultiNoise: %v", err)
}
brute := func(preset string, q point6) (string, int64) {
best := result{dist: int64(math.MaxInt64)}
for _, p := range data.Presets[preset] {
d := q.dist(p)
if d < best.dist {
best.dist = d
best.biome = p.Biome
}
}
return best.biome, best.dist
}
presets := []string{MultiNoiseOverworld, MultiNoiseNether}
for _, preset := range presets {
for i := 0; i < 1000; i++ {
q := point6{
t: int64(i%20000 - 10000),
h: int64((i*7)%20000 - 10000),
c: int64((i*13)%20000 - 10000),
e: int64((i*17)%20000 - 10000),
d: int64((i*3)%20000 - 10000),
w: int64((i*11)%20000 - 10000),
}
wantBiome, wantDist := brute(preset, q)
gotBiome, err := data.Lookup(preset, q.t, q.h, q.c, q.e, q.d, q.w)
if err != nil {
t.Fatalf("Lookup(%s): %v", preset, err)
}
if gotBiome != wantBiome {
t.Errorf("preset=%s query=%+v got=%s want=%s dist=%d", preset, q, gotBiome, wantBiome, wantDist)
}
}
}
}