@@ -4075,6 +4075,96 @@ func TestNumber17(t *testing.T) {
40754075 }
40764076}
40774077
4078+ func TestNumber18 (t * testing.T ) {
4079+ file , err := static .TestFiles .Open ("testdata/characters/Tirador Azteca.html" )
4080+ if err != nil {
4081+ t .Fatalf ("file opening error: %s" , err )
4082+ }
4083+ defer file .Close ()
4084+
4085+ data , err := io .ReadAll (file )
4086+ if err != nil {
4087+ t .Fatalf ("File reading error: %s" , err )
4088+ }
4089+
4090+ characterJson , err := TibiaCharactersCharacterImpl (string (data ), "" )
4091+ if err != nil {
4092+ t .Fatal (err )
4093+ }
4094+
4095+ assert := assert .New (t )
4096+ character := characterJson .Character .CharacterInfo
4097+
4098+ assert .Equal ("Tirador Azteca" , character .Name )
4099+ assert .False (characterJson .Character .DeathsTruncated )
4100+
4101+ // validate death data
4102+ assert .Equal (3 , len (characterJson .Character .Deaths ))
4103+ deaths := characterJson .Character .Deaths
4104+
4105+ for idx , tc := range []struct {
4106+ Assists []Killers
4107+ Killers []Killers
4108+ Level int
4109+ Reason string
4110+ Time string
4111+ }{
4112+ {
4113+ Assists : []Killers {},
4114+ Killers : []Killers {
4115+ {Name : "retainer of Baeloc" , Player : false , Traded : false , Summon : "" },
4116+ },
4117+ Level : 500 ,
4118+ Reason : "Died at Level 500 by retainer of Baeloc." ,
4119+ Time : "2025-09-14T20:29:01Z" ,
4120+ },
4121+ {
4122+ Assists : []Killers {},
4123+ Killers : []Killers {
4124+ {Name : "terrorsleep" , Player : false , Traded : false , Summon : "" },
4125+ },
4126+ Level : 494 ,
4127+ Reason : "Died at Level 494 by terrorsleep." ,
4128+ Time : "2025-09-07T02:39:55Z" ,
4129+ },
4130+ {
4131+ Assists : []Killers {},
4132+ Killers : []Killers {
4133+ {Name : "headwalker" , Player : false , Traded : false , Summon : "" },
4134+ },
4135+ Level : 487 ,
4136+ Reason : "Died at Level 487 by headwalker." ,
4137+ Time : "2025-08-29T19:09:51Z" ,
4138+ },
4139+ } {
4140+ assert .True (
4141+ reflect .DeepEqual (deaths [idx ].Assists , tc .Assists ),
4142+ "Wrong assists\n idx: %d\n want: %#v\n \n got: %#v" ,
4143+ idx , tc .Assists , deaths [idx ].Assists ,
4144+ )
4145+ assert .True (
4146+ reflect .DeepEqual (deaths [idx ].Killers , tc .Killers ),
4147+ "Wrong killers\n idx: %d\n want: %#v\n \n got: %#v" ,
4148+ idx , tc .Killers , deaths [idx ].Killers ,
4149+ )
4150+ assert .Equal (
4151+ deaths [idx ].Level , tc .Level ,
4152+ "Wrong Level\n idx: %d\n want: %d\n \n got: %d" ,
4153+ idx , tc .Level , deaths [idx ].Level ,
4154+ )
4155+ assert .Equal (
4156+ deaths [idx ].Reason , tc .Reason ,
4157+ "Wrong Reason\n idx: %d\n want: %s\n \n got: %s" ,
4158+ idx , tc .Reason , deaths [idx ].Reason ,
4159+ )
4160+ assert .Equal (
4161+ tc .Time , deaths [idx ].Time ,
4162+ "Wrong Time\n idx: %d\n want: %s\n \n got: %s" ,
4163+ idx , tc .Time , deaths [idx ].Time ,
4164+ )
4165+ }
4166+ }
4167+
40784168func BenchmarkNumber1 (b * testing.B ) {
40794169 file , err := static .TestFiles .Open ("testdata/characters/Darkside Rafa.html" )
40804170 if err != nil {
0 commit comments