public void Calculate_PassCentreForwardAndValidSet_ShouldReturn90PctRating()
        {
            // arrange
            GlobalRatingCalculator grc = new GlobalRatingCalculator();
            PhysicalFeatureSet     set = PhysicalFeatureSet.ForwardFeatureSet;

            foreach (PhysicalFeature feat in set.PhysicalFeatures)
            {
                feat.ChangeRating(Rating.FromInt(90));
            }

            // act
            Rating generalRating = grc.Calculate(PlayerPosition.CentreForward, set);

            // assert
            Assert.IsNotNull(generalRating);
            Assert.AreEqual(Rating.FromInt(90), generalRating);
        }
        public void Calculate_PassCentreForwardAndValidSet_ShouldReturnRatingOf96()
        {
            // arrange
            GlobalRatingCalculator grc = new GlobalRatingCalculator();
            PhysicalFeatureSet     set = PhysicalFeatureSet.ForwardFeatureSet;


            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Finishing).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Header).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Power).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Composure).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.ReactionSpeed).ChangeRating(Rating.Max);

            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Agility).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.FightingSpirit).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Acceleration).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Focus).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.PenaltyKick).ChangeRating(Rating.Max);

            //set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Morale).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Stamina).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.TopSpeed).ChangeRating(Rating.Max);
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Vista).ChangeRating(Rating.Max);

            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.PassingSpeed).ChangeRating(Rating.FromInt(50));
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.FreeKick).ChangeRating(Rating.FromInt(50));
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.PassingAccuracy).ChangeRating(Rating.FromInt(50));
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Cross).ChangeRating(Rating.FromInt(50));
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Interception).ChangeRating(Rating.FromInt(50));
            set.PhysicalFeatures.Single(f => f.FeatureType == FeatureType.Tackling).ChangeRating(Rating.FromInt(50));

            // act
            Rating generalRating = grc.Calculate(PlayerPosition.CentreForward, set);

            // assert
            Assert.IsNotNull(generalRating);
            Assert.AreEqual(Rating.FromInt(96), generalRating);
        }