public void InstantiationTest()
        {
            CharacterDto dto = new CharacterDto
            {
                Level          = 10,
                ResourcePoints = 1,
                Agility        = 1,
                Endurance      = 1,
                HealthPoints   = 1,
                ExpNextLevel   = 100,
                Intelligence   = 1,
                Strength       = 1,
                Id             = Guid.NewGuid()
            };

            var intelligenceCharacter = new IntelligenceCharacter(dto);
            var strengthCharacter     = new StrengthCharacter(dto);
            var agilityCharacter      = new AgilityCharacter(dto);


            Assert.AreEqual(intelligenceCharacter.MaxHealthPoint, strengthCharacter.MaxHealthPoint);

            Assert.Greater(intelligenceCharacter.MaxResourcePoints, agilityCharacter.MaxResourcePoints);
            Assert.Greater(agilityCharacter.MaxResourcePoints, strengthCharacter.MaxResourcePoints);
        }
        public void SimpleAttack1vs1Test()
        {
            const int battlesToPeform = 1000;

            var strengthCharacter = new StrengthCharacter(new CharacterDto
            {
                Level = 13,

                Agility      = 13,
                Endurance    = 13,
                Intelligence = 13,
                Strength     = 8,

                Id = Guid.NewGuid()
            });


            var agilityCharacter = new AgilityCharacter(new CharacterDto
            {
                Level = 21,

                Agility      = 10,
                Endurance    = 17,
                Intelligence = 13,
                Strength     = 13,

                Id = Guid.NewGuid()
            });

            var intelligenceCharacter = new IntelligenceCharacter(new CharacterDto
            {
                Level = 26,

                Agility      = 15,
                Endurance    = 19,
                Intelligence = 19,
                Strength     = 14,

                Id = Guid.NewGuid()
            });


            var strVsAgl = SimulteBattles(battlesToPeform, strengthCharacter, agilityCharacter);
            var intVsStr = SimulteBattles(battlesToPeform, intelligenceCharacter, strengthCharacter);
            var aglVsInt = SimulteBattles(battlesToPeform, agilityCharacter, intelligenceCharacter);

            Debug.WriteLine("Str wins {0} times vs over Agl with avg Hp remaining of {1}", strVsAgl.Count(c => c.WinningTeam == Team.Blue), strVsAgl.Average(c => c.HpRemaining));
            Debug.WriteLine("Int wins {0} times vs over Str with avg Hp remaining of {1}", intVsStr.Count(c => c.WinningTeam == Team.Blue), intVsStr.Average(c => c.HpRemaining));
            Debug.WriteLine("Agl wins {0} times vs over Ing with avg Hp remaining of {1}", aglVsInt.Count(c => c.WinningTeam == Team.Blue), aglVsInt.Average(c => c.HpRemaining));
        }