yes
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user