@@ -3738,6 +3738,96 @@ func TestNumber14(t *testing.T) {
37383738 }
37393739}
37403740
3741+ func TestNumber15 (t * testing.T ) {
3742+ file , err := static .TestFiles .Open ("testdata/characters/Sir Dumbas.html" )
3743+ if err != nil {
3744+ t .Fatalf ("file opening error: %s" , err )
3745+ }
3746+ defer file .Close ()
3747+
3748+ data , err := io .ReadAll (file )
3749+ if err != nil {
3750+ t .Fatalf ("File reading error: %s" , err )
3751+ }
3752+
3753+ characterJson , err := TibiaCharactersCharacterImpl (string (data ), "" )
3754+ if err != nil {
3755+ t .Fatal (err )
3756+ }
3757+
3758+ assert := assert .New (t )
3759+ character := characterJson .Character .CharacterInfo
3760+
3761+ assert .Equal ("Sir Dumbas" , character .Name )
3762+ assert .False (characterJson .Character .DeathsTruncated )
3763+
3764+ // validate death data
3765+ assert .Equal (3 , len (characterJson .Character .Deaths ))
3766+ deaths := characterJson .Character .Deaths
3767+
3768+ for idx , tc := range []struct {
3769+ Assists []Killers
3770+ Killers []Killers
3771+ Level int
3772+ Reason string
3773+ Time string
3774+ }{
3775+ {
3776+ Assists : []Killers {},
3777+ Killers : []Killers {
3778+ {Name : "Corruption Toxic" , Player : true , Traded : false , Summon : "fire elemental" },
3779+ },
3780+ Level : 43 ,
3781+ Reason : "Killed at Level 43 by fire elemental of Corruption Toxic." ,
3782+ Time : "2025-02-02T23:08:13Z" ,
3783+ },
3784+ {
3785+ Assists : []Killers {},
3786+ Killers : []Killers {
3787+ {Name : "cave rat" , Player : false , Traded : false , Summon : "" },
3788+ },
3789+ Level : 44 ,
3790+ Reason : "Died at Level 44 by cave rat." ,
3791+ Time : "2025-02-02T22:47:32Z" ,
3792+ },
3793+ {
3794+ Assists : []Killers {},
3795+ Killers : []Killers {
3796+ {Name : "cave rat" , Player : false , Traded : false , Summon : "" },
3797+ },
3798+ Level : 45 ,
3799+ Reason : "Died at Level 45 by cave rat." ,
3800+ Time : "2025-02-02T22:46:11Z" ,
3801+ },
3802+ } {
3803+ assert .True (
3804+ reflect .DeepEqual (deaths [idx ].Assists , tc .Assists ),
3805+ "Wrong assists\n idx: %d\n want: %#v\n \n got: %#v" ,
3806+ idx , tc .Assists , deaths [idx ].Assists ,
3807+ )
3808+ assert .True (
3809+ reflect .DeepEqual (deaths [idx ].Killers , tc .Killers ),
3810+ "Wrong killers\n idx: %d\n want: %#v\n \n got: %#v" ,
3811+ idx , tc .Killers , deaths [idx ].Killers ,
3812+ )
3813+ assert .Equal (
3814+ deaths [idx ].Level , tc .Level ,
3815+ "Wrong Level\n idx: %d\n want: %d\n \n got: %d" ,
3816+ idx , tc .Level , deaths [idx ].Level ,
3817+ )
3818+ assert .Equal (
3819+ deaths [idx ].Reason , tc .Reason ,
3820+ "Wrong Reason\n idx: %d\n want: %s\n \n got: %s" ,
3821+ idx , tc .Reason , deaths [idx ].Reason ,
3822+ )
3823+ assert .Equal (
3824+ tc .Time , deaths [idx ].Time ,
3825+ "Wrong Time\n idx: %d\n want: %s\n \n got: %s" ,
3826+ idx , tc .Time , deaths [idx ].Time ,
3827+ )
3828+ }
3829+ }
3830+
37413831func BenchmarkNumber1 (b * testing.B ) {
37423832 file , err := static .TestFiles .Open ("testdata/characters/Darkside Rafa.html" )
37433833 if err != nil {
0 commit comments