@@ -3034,6 +3034,87 @@ func TestNumber10(t *testing.T) {
30343034 assert .Equal (6 , character .UnlockedTitles )
30353035}
30363036
3037+ func TestNumber11 (t * testing.T ) {
3038+ file , err := static .TestFiles .Open ("testdata/characters/Orca Kaoksh.html" )
3039+ if err != nil {
3040+ t .Fatalf ("file opening error: %s" , err )
3041+ }
3042+ defer file .Close ()
3043+
3044+ data , err := io .ReadAll (file )
3045+ if err != nil {
3046+ t .Fatalf ("File reading error: %s" , err )
3047+ }
3048+
3049+ characterJson , err := TibiaCharactersCharacterImpl (string (data ))
3050+ if err != nil {
3051+ t .Fatal (err )
3052+ }
3053+
3054+ assert := assert .New (t )
3055+ character := characterJson .Character .CharacterInfo
3056+
3057+ assert .Equal ("Orca Kaoksh" , character .Name )
3058+
3059+ //validate death data
3060+ assert .Equal (2 , len (characterJson .Character .Deaths ))
3061+ deaths := characterJson .Character .Deaths
3062+
3063+ for idx , tc := range []struct {
3064+ Assists []Killers
3065+ Killers []Killers
3066+ Level int
3067+ Reason string
3068+ Time string
3069+ }{
3070+ {
3071+ Assists : []Killers {},
3072+ Killers : []Killers {
3073+ {Name : "fire" , Player : false , Traded : false , Summon : "" },
3074+ },
3075+ Level : 10 ,
3076+ Reason : "Died at Level 10 by fire." ,
3077+ Time : "2023-10-08T16:19:35Z" ,
3078+ },
3079+ {
3080+ Assists : []Killers {},
3081+ Killers : []Killers {
3082+ {Name : "wasp" , Player : false , Traded : false , Summon : "" },
3083+ },
3084+ Level : 8 ,
3085+ Reason : "Died at Level 8 by wasp." ,
3086+ Time : "2023-10-07T00:27:38Z" ,
3087+ },
3088+ } {
3089+ assert .True (
3090+ reflect .DeepEqual (deaths [idx ].Assists , tc .Assists ),
3091+ "Wrong assists\n idx: %d\n want: %#v\n \n got: %#v" ,
3092+ idx , tc .Assists , deaths [idx ].Assists ,
3093+ )
3094+ assert .True (
3095+ reflect .DeepEqual (deaths [idx ].Killers , tc .Killers ),
3096+ "Wrong killers\n idx: %d\n want: %#v\n \n got: %#v" ,
3097+ idx , tc .Killers , deaths [idx ].Killers ,
3098+ )
3099+ assert .Equal (
3100+ deaths [idx ].Level , tc .Level ,
3101+ "Wrong Level\n idx: %d\n want: %d\n \n got: %d" ,
3102+ idx , tc .Level , deaths [idx ].Level ,
3103+ )
3104+ assert .Equal (
3105+ deaths [idx ].Reason , tc .Reason ,
3106+ "Wrong Reason\n idx: %d\n want: %s\n \n got: %s" ,
3107+ idx , tc .Reason , deaths [idx ].Reason ,
3108+ )
3109+ assert .Equal (
3110+ deaths [idx ].Time , tc .Time ,
3111+ "Wrong Time\n idx: %d\n want: %s\n \n got: %s" ,
3112+ idx , tc .Time , deaths [idx ].Time ,
3113+ )
3114+ }
3115+
3116+ }
3117+
30373118func BenchmarkNumber1 (b * testing.B ) {
30383119 file , err := static .TestFiles .Open ("testdata/characters/Darkside Rafa.html" )
30393120 if err != nil {
0 commit comments