@@ -3997,6 +3997,84 @@ func TestNumber16(t *testing.T) {
39973997 }
39983998}
39993999
4000+ func TestNumber17 (t * testing.T ) {
4001+ file , err := static .TestFiles .Open ("testdata/characters/Akayev.html" )
4002+ if err != nil {
4003+ t .Fatalf ("file opening error: %s" , err )
4004+ }
4005+ defer file .Close ()
4006+
4007+ data , err := io .ReadAll (file )
4008+ if err != nil {
4009+ t .Fatalf ("File reading error: %s" , err )
4010+ }
4011+
4012+ characterJson , err := TibiaCharactersCharacterImpl (string (data ), "" )
4013+ if err != nil {
4014+ t .Fatal (err )
4015+ }
4016+
4017+ assert := assert .New (t )
4018+ character := characterJson .Character .CharacterInfo
4019+
4020+ assert .Equal ("Akayev" , character .Name )
4021+ assert .False (characterJson .Character .DeathsTruncated )
4022+
4023+ // validate death data
4024+ assert .Equal (1 , len (characterJson .Character .Deaths ))
4025+ deaths := characterJson .Character .Deaths
4026+
4027+ for idx , tc := range []struct {
4028+ Assists []Killers
4029+ Killers []Killers
4030+ Level int
4031+ Reason string
4032+ Time string
4033+ }{
4034+ {
4035+ Assists : []Killers {},
4036+ Killers : []Killers {
4037+ {Name : "Shooter Scotty" , Player : true , Traded : false , Summon : "" },
4038+ {Name : "Simpkan" , Player : true , Traded : false , Summon : "" },
4039+ {Name : "Spektrozz" , Player : true , Traded : false , Summon : "" },
4040+ {Name : "Toxic Raksoo" , Player : true , Traded : false , Summon : "" },
4041+ {Name : "Delerioo" , Player : true , Traded : false , Summon : "" },
4042+ {Name : "Gugu Lurifax" , Player : true , Traded : false , Summon : "" },
4043+ {Name : "Viniciao Novamente" , Player : true , Traded : false , Summon : "" },
4044+ },
4045+ Level : 645 ,
4046+ Reason : "Slain at Level 645 by Shooter Scotty, Simpkan, Spektrozz, Toxic Raksoo, Delerioo, Gugu Lurifax and Viniciao Novamente." ,
4047+ Time : "2025-03-25T11:08:07Z" ,
4048+ },
4049+ } {
4050+ assert .True (
4051+ reflect .DeepEqual (deaths [idx ].Assists , tc .Assists ),
4052+ "Wrong assists\n idx: %d\n want: %#v\n \n got: %#v" ,
4053+ idx , tc .Assists , deaths [idx ].Assists ,
4054+ )
4055+ assert .True (
4056+ reflect .DeepEqual (deaths [idx ].Killers , tc .Killers ),
4057+ "Wrong killers\n idx: %d\n want: %#v\n \n got: %#v" ,
4058+ idx , tc .Killers , deaths [idx ].Killers ,
4059+ )
4060+ assert .Equal (
4061+ deaths [idx ].Level , tc .Level ,
4062+ "Wrong Level\n idx: %d\n want: %d\n \n got: %d" ,
4063+ idx , tc .Level , deaths [idx ].Level ,
4064+ )
4065+ assert .Equal (
4066+ deaths [idx ].Reason , tc .Reason ,
4067+ "Wrong Reason\n idx: %d\n want: %s\n \n got: %s" ,
4068+ idx , tc .Reason , deaths [idx ].Reason ,
4069+ )
4070+ assert .Equal (
4071+ tc .Time , deaths [idx ].Time ,
4072+ "Wrong Time\n idx: %d\n want: %s\n \n got: %s" ,
4073+ idx , tc .Time , deaths [idx ].Time ,
4074+ )
4075+ }
4076+ }
4077+
40004078func BenchmarkNumber1 (b * testing.B ) {
40014079 file , err := static .TestFiles .Open ("testdata/characters/Darkside Rafa.html" )
40024080 if err != nil {
0 commit comments