@@ -3389,6 +3389,353 @@ func TestNumber13(t *testing.T) {
33893389 }
33903390}
33913391
3392+ func TestNumber14 (t * testing.T ) {
3393+ file , err := static .TestFiles .Open ("testdata/characters/Nannorka.html" )
3394+ if err != nil {
3395+ t .Fatalf ("file opening error: %s" , err )
3396+ }
3397+ defer file .Close ()
3398+
3399+ data , err := io .ReadAll (file )
3400+ if err != nil {
3401+ t .Fatalf ("File reading error: %s" , err )
3402+ }
3403+
3404+ characterJson , err := TibiaCharactersCharacterImpl (string (data ), "" )
3405+ if err != nil {
3406+ t .Fatal (err )
3407+ }
3408+
3409+ assert := assert .New (t )
3410+ character := characterJson .Character .CharacterInfo
3411+
3412+ assert .Equal ("Nannorka" , character .Name )
3413+ assert .False (characterJson .Character .DeathsTruncated )
3414+
3415+ // validate death data
3416+ assert .Equal (35 , len (characterJson .Character .Deaths ))
3417+ deaths := characterJson .Character .Deaths
3418+
3419+ for idx , tc := range []struct {
3420+ Assists []Killers
3421+ Killers []Killers
3422+ Level int
3423+ Reason string
3424+ Time string
3425+ }{
3426+ {
3427+ Assists : []Killers {
3428+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3429+ },
3430+ Killers : []Killers {},
3431+ Reason : "Assisted by Miquudalajarab." ,
3432+ Time : "2025-02-27T16:20:06Z" ,
3433+ },
3434+ {
3435+ Assists : []Killers {},
3436+ Killers : []Killers {
3437+ {Name : "Satashi Xuuu" , Player : true , Traded : false , Summon : "" },
3438+ },
3439+ Level : 791 ,
3440+ Reason : "Killed at Level 791 by Satashi Xuuu." ,
3441+ Time : "2025-02-27T03:46:47Z" ,
3442+ },
3443+ {
3444+ Assists : []Killers {
3445+ {Name : "Basilicata" , Player : true , Traded : false , Summon : "" },
3446+ },
3447+ Killers : []Killers {},
3448+ Reason : "Assisted by Basilicata." ,
3449+ Time : "2025-02-25T14:11:42Z" ,
3450+ },
3451+ {
3452+ Assists : []Killers {
3453+ {Name : "Tainerd Ruero" , Player : true , Traded : false , Summon : "" },
3454+ },
3455+ Killers : []Killers {},
3456+ Reason : "Assisted by Tainerd Ruero." ,
3457+ Time : "2025-02-15T10:35:03Z" ,
3458+ },
3459+ {
3460+ Assists : []Killers {
3461+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3462+ },
3463+ Killers : []Killers {},
3464+ Reason : "Assisted by Miquudalajarab." ,
3465+ Time : "2025-02-15T09:45:37Z" ,
3466+ },
3467+ {
3468+ Assists : []Killers {
3469+ {Name : "Basilicata" , Player : true , Traded : false , Summon : "" },
3470+ },
3471+ Killers : []Killers {},
3472+ Reason : "Assisted by Basilicata." ,
3473+ Time : "2025-02-14T16:56:53Z" ,
3474+ },
3475+ {
3476+ Assists : []Killers {},
3477+ Killers : []Killers {
3478+ {Name : "Satashi Xuuu" , Player : true , Traded : false , Summon : "" },
3479+ },
3480+ Level : 826 ,
3481+ Reason : "Killed at Level 826 by Satashi Xuuu." ,
3482+ Time : "2025-02-14T14:56:33Z" ,
3483+ },
3484+ {
3485+ Assists : []Killers {
3486+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3487+ },
3488+ Killers : []Killers {},
3489+ Reason : "Assisted by Miquudalajarab." ,
3490+ Time : "2025-02-14T13:24:43Z" ,
3491+ },
3492+ {
3493+ Assists : []Killers {
3494+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3495+ },
3496+ Killers : []Killers {},
3497+ Reason : "Assisted by Miquudalajarab." ,
3498+ Time : "2025-02-14T08:19:51Z" ,
3499+ },
3500+ {
3501+ Assists : []Killers {
3502+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3503+ },
3504+ Killers : []Killers {},
3505+ Reason : "Assisted by Miquudalajarab." ,
3506+ Time : "2025-02-12T19:38:28Z" ,
3507+ },
3508+ {
3509+ Assists : []Killers {
3510+ {Name : "Tikozera To Calmo" , Player : true , Traded : false , Summon : "" },
3511+ },
3512+ Killers : []Killers {},
3513+ Reason : "Assisted by Tikozera To Calmo." ,
3514+ Time : "2025-02-12T17:37:04Z" ,
3515+ },
3516+ {
3517+ Assists : []Killers {
3518+ {Name : "Basilicata" , Player : true , Traded : false , Summon : "" },
3519+ },
3520+ Killers : []Killers {},
3521+ Reason : "Assisted by Basilicata." ,
3522+ Time : "2025-02-12T17:02:27Z" ,
3523+ },
3524+ {
3525+ Assists : []Killers {
3526+ {Name : "Du nken" , Player : true , Traded : false , Summon : "" },
3527+ },
3528+ Killers : []Killers {},
3529+ Reason : "Assisted by Du nken." ,
3530+ Time : "2025-02-12T16:56:42Z" ,
3531+ },
3532+ {
3533+ Assists : []Killers {},
3534+ Killers : []Killers {},
3535+ Level : 878 ,
3536+ Reason : "Killed at Level 878 by Satashi Xuuu." ,
3537+ Time : "2025-02-11T20:00:44Z" ,
3538+ },
3539+ {
3540+ Assists : []Killers {
3541+ {Name : "Basilicata" , Player : true , Traded : false , Summon : "" },
3542+ },
3543+ Killers : []Killers {},
3544+ Reason : "Assisted by Basilicata." ,
3545+ Time : "2025-02-11T16:21:46Z" ,
3546+ },
3547+ {
3548+ Assists : []Killers {
3549+ {Name : "Whiskin" , Player : true , Traded : false , Summon : "" },
3550+ },
3551+ Killers : []Killers {},
3552+ Reason : "Assisted by Whiskin." ,
3553+ Time : "2025-02-11T16:18:28Z" ,
3554+ },
3555+ {
3556+ Assists : []Killers {
3557+ {Name : "Fjunkes" , Player : true , Traded : false , Summon : "" },
3558+ },
3559+ Killers : []Killers {},
3560+ Reason : "Assisted by Fjunkes." ,
3561+ Time : "2025-02-11T16:16:29Z" ,
3562+ },
3563+ {
3564+ Assists : []Killers {
3565+ {Name : "Fjunkes" , Player : true , Traded : false , Summon : "" },
3566+ },
3567+ Killers : []Killers {},
3568+ Reason : "Assisted by Fjunkes." ,
3569+ Time : "2025-02-10T14:57:44Z" ,
3570+ },
3571+ {
3572+ Assists : []Killers {
3573+ {Name : "Whiskin" , Player : true , Traded : false , Summon : "" },
3574+ },
3575+ Killers : []Killers {},
3576+ Reason : "Assisted by Whiskin." ,
3577+ Time : "2025-02-10T14:55:03Z" ,
3578+ },
3579+ {
3580+ Assists : []Killers {
3581+ {Name : "Kaos Mest" , Player : true , Traded : false , Summon : "" },
3582+ },
3583+ Killers : []Killers {},
3584+ Reason : "Assisted by Kaos Mest." ,
3585+ Time : "2025-02-09T12:13:57Z" ,
3586+ },
3587+ {
3588+ Assists : []Killers {
3589+ {Name : "Whiskin" , Player : true , Traded : false , Summon : "" },
3590+ },
3591+ Killers : []Killers {},
3592+ Reason : "Assisted by Whiskin." ,
3593+ Time : "2025-02-09T10:26:48Z" ,
3594+ },
3595+ {
3596+ Assists : []Killers {
3597+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3598+ },
3599+ Killers : []Killers {},
3600+ Reason : "Assisted by Miquudalajarab." ,
3601+ Time : "2025-02-09T10:09:39Z" ,
3602+ },
3603+ {
3604+ Assists : []Killers {
3605+ {Name : "Guzik Szef" , Player : true , Traded : false , Summon : "" },
3606+ },
3607+ Killers : []Killers {},
3608+ Reason : "Assisted by Guzik Szef." ,
3609+ Time : "2025-02-09T10:06:43Z" ,
3610+ },
3611+ {
3612+ Assists : []Killers {
3613+ {Name : "Whiskin" , Player : true , Traded : false , Summon : "" },
3614+ },
3615+ Killers : []Killers {},
3616+ Reason : "Assisted by Whiskin." ,
3617+ Time : "2025-02-08T18:06:49Z" ,
3618+ },
3619+ {
3620+ Assists : []Killers {
3621+ {Name : "Shensz Khalifa" , Player : true , Traded : false , Summon : "" },
3622+ },
3623+ Killers : []Killers {},
3624+ Reason : "Assisted by Shensz Khalifa." ,
3625+ Time : "2025-02-08T09:19:19Z" ,
3626+ },
3627+ {
3628+ Assists : []Killers {
3629+ {Name : "Taiimo" , Player : true , Traded : false , Summon : "" },
3630+ },
3631+ Killers : []Killers {},
3632+ Reason : "Assisted by Taiimo." ,
3633+ Time : "2025-02-07T17:13:05Z" ,
3634+ },
3635+ {
3636+ Assists : []Killers {
3637+ {Name : "Shensz Khalifa" , Player : true , Traded : false , Summon : "" },
3638+ },
3639+ Killers : []Killers {},
3640+ Reason : "Assisted by Shensz Khalifa." ,
3641+ Time : "2025-02-06T17:51:50Z" ,
3642+ },
3643+ {
3644+ Assists : []Killers {
3645+ {Name : "Miquudalajarab" , Player : true , Traded : false , Summon : "" },
3646+ },
3647+ Killers : []Killers {},
3648+ Reason : "Assisted by Miquudalajarab." ,
3649+ Time : "2025-02-06T17:50:03Z" ,
3650+ },
3651+ {
3652+ Assists : []Killers {
3653+ {Name : "Taiimo" , Player : true , Traded : false , Summon : "" },
3654+ },
3655+ Killers : []Killers {},
3656+ Reason : "Assisted by Taiimo." ,
3657+ Time : "2025-02-06T17:15:54Z" ,
3658+ },
3659+ {
3660+ Assists : []Killers {},
3661+ Killers : []Killers {
3662+ {Name : "Sephea" , Player : true , Traded : false , Summon : "" },
3663+ },
3664+ Level : 1007 ,
3665+ Reason : "Killed at Level 1007 by Sephea." ,
3666+ Time : "2025-02-05T17:03:08Z" ,
3667+ },
3668+ {
3669+ Assists : []Killers {},
3670+ Killers : []Killers {
3671+ {Name : "Satashi Xuuu" , Player : true , Traded : false , Summon : "" },
3672+ },
3673+ Level : 1016 ,
3674+ Reason : "Killed at Level 1016 by Satashi Xuuu." ,
3675+ Time : "2025-02-04T03:42:41Z" ,
3676+ },
3677+ {
3678+ Assists : []Killers {
3679+ {Name : "Rodmago Aesir" , Player : true , Traded : false , Summon : "" },
3680+ },
3681+ Killers : []Killers {},
3682+ Reason : "Assisted by Rodmago Aesir." ,
3683+ Time : "2025-02-03T16:14:53Z" ,
3684+ },
3685+ {
3686+ Assists : []Killers {
3687+ {Name : "Zain Malek" , Player : true , Traded : false , Summon : "" },
3688+ },
3689+ Killers : []Killers {},
3690+ Reason : "Assisted by Zain Malek." ,
3691+ Time : "2025-02-02T10:19:05Z" ,
3692+ },
3693+ {
3694+ Assists : []Killers {},
3695+ Killers : []Killers {
3696+ {Name : "Itzz Xed" , Player : true , Traded : false , Summon : "" },
3697+ },
3698+ Level : 1042 ,
3699+ Reason : "Killed at Level 1042 by Itzz Xed." ,
3700+ Time : "2025-02-02T10:17:25Z" ,
3701+ },
3702+ {
3703+ Assists : []Killers {
3704+ {Name : "Rauxzin" , Player : true , Traded : false , Summon : "" },
3705+ },
3706+ Killers : []Killers {},
3707+ Reason : "Assisted by Rauxzin." ,
3708+ Time : "2025-02-02T10:11:07Z" ,
3709+ },
3710+ } {
3711+ assert .True (
3712+ reflect .DeepEqual (deaths [idx ].Assists , tc .Assists ),
3713+ "Wrong assists\n idx: %d\n want: %#v\n \n got: %#v" ,
3714+ idx , tc .Assists , deaths [idx ].Assists ,
3715+ )
3716+ assert .True (
3717+ reflect .DeepEqual (deaths [idx ].Killers , tc .Killers ),
3718+ "Wrong killers\n idx: %d\n want: %#v\n \n got: %#v" ,
3719+ idx , tc .Killers , deaths [idx ].Killers ,
3720+ )
3721+ assert .Equal (
3722+ deaths [idx ].Level , tc .Level ,
3723+ "Wrong Level\n idx: %d\n want: %d\n \n got: %d" ,
3724+ idx , tc .Level , deaths [idx ].Level ,
3725+ )
3726+ assert .Equal (
3727+ deaths [idx ].Reason , tc .Reason ,
3728+ "Wrong Reason\n idx: %d\n want: %s\n \n got: %s" ,
3729+ idx , tc .Reason , deaths [idx ].Reason ,
3730+ )
3731+ assert .Equal (
3732+ tc .Time , deaths [idx ].Time ,
3733+ "Wrong Time\n idx: %d\n want: %s\n \n got: %s" ,
3734+ idx , tc .Time , deaths [idx ].Time ,
3735+ )
3736+ }
3737+ }
3738+
33923739func BenchmarkNumber1 (b * testing.B ) {
33933740 file , err := static .TestFiles .Open ("testdata/characters/Darkside Rafa.html" )
33943741 if err != nil {
0 commit comments