minor modernizations

This commit is contained in:
Sky Johnson 2025-08-01 16:54:53 -05:00
parent 249bb4f3c1
commit 9fd69fba38

View File

@ -1,11 +1,9 @@
package classes package classes
import ( import (
"math/rand"
"strings" "strings"
"sync" "sync"
"testing" "testing"
"time"
) )
// Mock entity implementations for testing // Mock entity implementations for testing
@ -733,7 +731,7 @@ func TestGetClassStatistics(t *testing.T) {
adventureClasses := stats["adventure_classes"].(int) adventureClasses := stats["adventure_classes"].(int)
tradeskillClasses := stats["tradeskill_classes"].(int) tradeskillClasses := stats["tradeskill_classes"].(int)
if totalClasses != adventureClasses + tradeskillClasses { if totalClasses != adventureClasses+tradeskillClasses {
t.Errorf("Total classes (%d) should equal adventure (%d) + tradeskill (%d)", t.Errorf("Total classes (%d) should equal adventure (%d) + tradeskill (%d)",
totalClasses, adventureClasses, tradeskillClasses) totalClasses, adventureClasses, tradeskillClasses)
} }
@ -1545,7 +1543,7 @@ func TestClassesConcurrency(t *testing.T) {
var wg sync.WaitGroup var wg sync.WaitGroup
// Concurrent reads // Concurrent reads
for i := 0; i < 100; i++ { for i := range 100 {
wg.Add(1) wg.Add(1)
go func(classID int8) { go func(classID int8) {
defer wg.Done() defer wg.Done()
@ -1571,7 +1569,7 @@ func TestClassManagerConcurrency(t *testing.T) {
var wg sync.WaitGroup var wg sync.WaitGroup
// Concurrent usage registration // Concurrent usage registration
for i := 0; i < 100; i++ { for i := range 100 {
wg.Add(1) wg.Add(1)
go func(classID int8) { go func(classID int8) {
defer wg.Done() defer wg.Done()
@ -1580,7 +1578,7 @@ func TestClassManagerConcurrency(t *testing.T) {
} }
// Concurrent stats reading // Concurrent stats reading
for i := 0; i < 50; i++ { for range 50 {
wg.Add(1) wg.Add(1)
go func() { go func() {
defer wg.Done() defer wg.Done()
@ -1609,7 +1607,7 @@ func TestMockEntitiesConcurrency(t *testing.T) {
var wg sync.WaitGroup var wg sync.WaitGroup
// Concurrent reads and writes // Concurrent reads and writes
for i := 0; i < 100; i++ { for i := range 100 {
wg.Add(1) wg.Add(1)
go func(classID int8) { go func(classID int8) {
defer wg.Done() defer wg.Done()
@ -1631,64 +1629,56 @@ func TestMockEntitiesConcurrency(t *testing.T) {
// Benchmarks // Benchmarks
func BenchmarkGetClassID(b *testing.B) { func BenchmarkGetClassID(b *testing.B) {
classes := NewClasses() classes := NewClasses()
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
classes.GetClassID("WARRIOR") classes.GetClassID("WARRIOR")
} }
} }
func BenchmarkGetClassName(b *testing.B) { func BenchmarkGetClassName(b *testing.B) {
classes := NewClasses() classes := NewClasses()
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
classes.GetClassName(ClassWarrior) classes.GetClassName(ClassWarrior)
} }
} }
func BenchmarkGetBaseClass(b *testing.B) { func BenchmarkGetBaseClass(b *testing.B) {
classes := NewClasses() classes := NewClasses()
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
classes.GetBaseClass(ClassGuardian) classes.GetBaseClass(ClassGuardian)
} }
} }
func BenchmarkGetAllClasses(b *testing.B) { func BenchmarkGetAllClasses(b *testing.B) {
classes := NewClasses() classes := NewClasses()
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
classes.GetAllClasses() classes.GetAllClasses()
} }
} }
func BenchmarkParseClassName(b *testing.B) { func BenchmarkParseClassName(b *testing.B) {
utils := NewClassUtils() utils := NewClassUtils()
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
utils.ParseClassName("WARRIOR") utils.ParseClassName("WARRIOR")
} }
} }
func BenchmarkGetRandomClassByType(b *testing.B) { func BenchmarkGetRandomClassByType(b *testing.B) {
utils := NewClassUtils() utils := NewClassUtils()
rand.Seed(time.Now().UnixNano())
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
utils.GetRandomClassByType(ClassTypeAdventure) utils.GetRandomClassByType(ClassTypeAdventure)
} }
} }
func BenchmarkRegisterClassUsage(b *testing.B) { func BenchmarkRegisterClassUsage(b *testing.B) {
manager := NewClassManager() manager := NewClassManager()
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
manager.RegisterClassUsage(ClassWarrior) manager.RegisterClassUsage(ClassWarrior)
} }
} }
@ -1696,18 +1686,16 @@ func BenchmarkRegisterClassUsage(b *testing.B) {
func BenchmarkValidateEntityClass(b *testing.B) { func BenchmarkValidateEntityClass(b *testing.B) {
integration := NewClassIntegration() integration := NewClassIntegration()
entity := NewMockClassAware(ClassWarrior) entity := NewMockClassAware(ClassWarrior)
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
integration.ValidateEntityClass(entity) integration.ValidateEntityClass(entity)
} }
} }
func BenchmarkMockClassAwareGetSet(b *testing.B) { func BenchmarkMockClassAwareGetSet(b *testing.B) {
entity := NewMockClassAware(ClassWarrior) entity := NewMockClassAware(ClassWarrior)
b.ResetTimer()
for i := 0; i < b.N; i++ { for b.Loop() {
entity.SetClass(ClassCleric) entity.SetClass(ClassCleric)
entity.GetClass() entity.GetClass()
} }