public static void Test_Player_Strategy_Doesnt_Throw_On_Valid_Input()
        {
            //arrange
            PlayerSectionIdCalculatorStrategy strat = new PlayerSectionIdCalculatorStrategy();

            //assert
            Assert.DoesNotThrow(() => strat.Compute("Hello", CharacterClassRace.FOmar));
        }
        public static void Test_Player_Strategy_Throws_On_AltCode_Characters()
        {
            //arrange
            PlayerSectionIdCalculatorStrategy strat = new PlayerSectionIdCalculatorStrategy();

            //assert
            Assert.Throws <ArgumentException>(() => strat.Compute("Hellá", CharacterClassRace.FOmar));
        }
        public static void Test_Player_Strategy_Throws_On_Invalid_ClassRace()
        {
            //arrange
            PlayerSectionIdCalculatorStrategy strat = new PlayerSectionIdCalculatorStrategy();

            //assert
            Assert.Throws <InvalidEnumArgumentException>(() => strat.Compute("Hello", CharacterClassRace.FOmar + 500));
        }
        public static void Test_Player_Strategy_Produces_PSOBB_Expected_SectionId_Values(SectionId expectedId, string name, CharacterClassRace classRace)
        {
            //arrange
            PlayerSectionIdCalculatorStrategy strat = new PlayerSectionIdCalculatorStrategy();

            //act
            SectionId sectionId = strat.Compute(name, classRace);

            //assert
            Assert.AreEqual(expectedId, sectionId, $"Expected {expectedId} for {name} {classRace} but computed {sectionId}.");
        }