public void implicitly_convert_from_difficulty_rating_to_int()
        {
            var difficultyRating = new DifficultyRating(50);

            int percentage = difficultyRating;
            Assert.That(percentage, Is.EqualTo(difficultyRating.Percentage));
        }
예제 #2
0
        private void assertTooShort(List <HitObject> hitObjects, DifficultyRating difficultyRating = DifficultyRating.Easy)
        {
            var issues = check.Run(getContext(hitObjects, difficultyRating)).ToList();

            Assert.That(issues, Has.Count.EqualTo(1));
            Assert.That(issues.First().Template is CheckTooShortSliders.IssueTemplateTooShort);
        }
예제 #3
0
        public void implicitly_convert_from_byte_to_difficulty_rating()
        {
            byte             percentage       = 65;
            DifficultyRating difficultyRating = percentage;

            Assert.That(difficultyRating.Percentage, Is.EqualTo(percentage));
        }
예제 #4
0
        /// <summary>
        /// Retrieves the colour for a <see cref="DifficultyRating"/>.
        /// </summary>
        /// <remarks>
        /// Sourced from the @diff-{rating} variables in https://github.com/ppy/osu-web/blob/71fbab8936d79a7929d13854f5e854b4f383b236/resources/assets/less/variables.less.
        /// </remarks>
        public Color4 ForDifficultyRating(DifficultyRating difficulty, bool useLighterColour = false)
        {
            switch (difficulty)
            {
            case DifficultyRating.Easy:
                return(Color4Extensions.FromHex("4ebfff"));

            case DifficultyRating.Normal:
                return(Color4Extensions.FromHex("66ff91"));

            case DifficultyRating.Hard:
                return(Color4Extensions.FromHex("f7e85d"));

            case DifficultyRating.Insane:
                return(Color4Extensions.FromHex("ff7e68"));

            case DifficultyRating.Expert:
                return(Color4Extensions.FromHex("fe3c71"));

            case DifficultyRating.ExpertPlus:
                return(Color4Extensions.FromHex("6662dd"));

            default:
                throw new ArgumentOutOfRangeException(nameof(difficulty));
            }
        }
예제 #5
0
        public void implicitly_convert_from_difficulty_rating_to_int()
        {
            var difficultyRating = new DifficultyRating(50);

            int percentage = difficultyRating;

            Assert.That(percentage, Is.EqualTo(difficultyRating.Percentage));
        }
예제 #6
0
        private BeatmapVerifierContext getContext(List <HitObject> hitObjects, DifficultyRating difficultyRating)
        {
            var beatmap = new Beatmap <HitObject> {
                HitObjects = hitObjects
            };

            return(new BeatmapVerifierContext(beatmap, new TestWorkingBeatmap(beatmap), difficultyRating));
        }
예제 #7
0
        private void assertTooShortSpinnerEnd(IBeatmap beatmap, DifficultyRating difficultyRating)
        {
            var context = new BeatmapVerifierContext(beatmap, new TestWorkingBeatmap(beatmap), difficultyRating);
            var issues  = check.Run(context).ToList();

            Assert.That(issues, Has.Count.EqualTo(1));
            Assert.That(issues.All(issue => issue.Template is CheckBananaShowerGap.IssueTemplateBananaShowerEndGap));
        }
        public void difficulty_can_not_be_less_than_0()
        {
            var item     = new ReviewItemBuilder().Due().WithDifficultyRating(0).Build();
            var strategy = new SuperMemo2ReviewStrategy();

            var actualDifficulty = strategy.AdjustDifficulty(item, ReviewOutcome.Perfect);

            var expectedDifficulty = new DifficultyRating(0);

            Assert.That(actualDifficulty, Is.EqualTo(expectedDifficulty));
        }
        public void hesitant_review_leaves_difficulty_the_same()
        {
            var item     = new ReviewItemBuilder().Due().WithDifficultyRating(50).Build();
            var strategy = new SuperMemo2ReviewStrategy();

            var actualDifficulty = strategy.AdjustDifficulty(item, ReviewOutcome.Hesitant);

            var expectedDifficulty = new DifficultyRating(50);

            Assert.That(actualDifficulty, Is.EqualTo(expectedDifficulty));
        }
        public void perfect_review_lowers_difficulty()
        {
            var item     = new ReviewItemBuilder().Due().WithDifficultyRating(50).Build();
            var strategy = new SuperMemo2ReviewStrategy();

            var actualDifficulty = strategy.AdjustDifficulty(item, ReviewOutcome.Perfect);

            var expectedDifficulty = new DifficultyRating(41);

            Assert.That(actualDifficulty, Is.EqualTo(expectedDifficulty));
        }
예제 #11
0
        public static List <UnitType> UnitsWithDifficulty(DifficultyRating rating)
        {
            var result = new List <UnitType>();

            foreach (UnitType unitType in System.Enum.GetValues(typeof(UnitType)).Cast <UnitType>())
            {
                if (_staticUnitInfo[unitType].difficultyRating == rating)
                {
                    result.Add(unitType);
                }
            }

            return(result);
        }
예제 #12
0
 public override string ToString() =>
 $"\nSetId: {Id}\n" +
 $"RankedStatus: {RankedStatus}\n" +
 $"Artist: {Artist}\n" +
 $"Title: {Title}\n" +
 $"Creator: {Creator}\n" +
 $"Tags: [{Tags.Join(", ")}]\n" +
 $"Modes: [{Mode.Select(s => s.ToString()).Join(", ")}]\n" +
 $"DiffNames: [{DiffName.Join(", ")}]\n" +
 $"Cs: [{Cs.Select(s => s.ToString()).Join(", ")}]\n" +
 $"Ar: [{Ar.Select(s => s.ToString()).Join(", ")}]\n" +
 $"Od: [{Od.Select(s => s.ToString()).Join(", ")}]\n" +
 $"Hp: [{Hp.Select(s => s.ToString()).Join(", ")}]\n" +
 $"DifficultyRating: [{DifficultyRating.Select(s => s.ToString(CultureInfo.InvariantCulture)).Join(", ")}]\n" +
 $"Bpm: [{Bpm.Select(s => s.ToString()).Join(", ")}]\n" +
 $"TotalLength: [{TotalLength.Select(s => s.ToString()).Join(", ")}]\n" +
 $"Genre: {Genre}\n" +
 $"Language: {Language}\n" +
 $"DiffName: [{Mode.Select(s => s.ToString()).Join(", ")}]\n" +
 $"ApprovedDate: {ApprovedDate}";
예제 #13
0
파일: OsuColour.cs 프로젝트: Juliankun/osu
        public Color4 ForDifficultyRating(DifficultyRating difficulty, bool useLighterColour = false)
        {
            switch (difficulty)
            {
            case DifficultyRating.Easy:
                return(Green);

            default:
            case DifficultyRating.Normal:
                return(Blue);

            case DifficultyRating.Hard:
                return(Yellow);

            case DifficultyRating.Insane:
                return(Pink);

            case DifficultyRating.Expert:
                return(useLighterColour ? PurpleLight : Purple);

            case DifficultyRating.ExpertPlus:
                return(useLighterColour ? Gray9 : Gray0);
            }
        }
예제 #14
0
파일: OsuColour.cs 프로젝트: kj415j45/osu
        public Color4 ForDifficultyRating(DifficultyRating difficulty, bool useLighterColour = false)
        {
            switch (difficulty)
            {
            case DifficultyRating.Easy:
                return(Green);

            default:
            case DifficultyRating.Normal:
                return(Blue);

            case DifficultyRating.Hard:
                return(Yellow);

            case DifficultyRating.Insane:
                return(Pink);

            case DifficultyRating.Expert:
                return(PurpleLight);

            case DifficultyRating.ExpertPlus:
                return(useLighterColour ? Gray9 : Color4Extensions.FromHex("#121415"));
            }
        }
예제 #15
0
        public Color4 ForDifficultyRating(DifficultyRating difficulty)
        {
            switch (difficulty)
            {
            case DifficultyRating.Easy:
                return(Green);

            default:
            case DifficultyRating.Normal:
                return(Blue);

            case DifficultyRating.Hard:
                return(Yellow);

            case DifficultyRating.Insane:
                return(Pink);

            case DifficultyRating.Expert:
                return(Purple);

            case DifficultyRating.ExpertPlus:
                return(Gray0);
            }
        }
예제 #16
0
        public void TestDifficultyRatingMapping(double starRating, DifficultyRating expectedBracket)
        {
            var actualBracket = BeatmapDifficultyManager.GetDifficultyRating(starRating);

            Assert.AreEqual(expectedBracket, actualBracket);
        }
        public void hesitant_review_leaves_difficulty_the_same()
        {
            var item = new ReviewItemBuilder().Due().WithDifficultyRating(50).Build();
            var strategy = new SuperMemo2ReviewStrategy();

            var actualDifficulty = strategy.AdjustDifficulty(item, ReviewOutcome.Hesitant);

            var expectedDifficulty = new DifficultyRating(50);
            Assert.That(actualDifficulty, Is.EqualTo(expectedDifficulty));
        }
예제 #18
0
 public BeatmapVerifierContext(IBeatmap beatmap, IWorkingBeatmap workingBeatmap, DifficultyRating difficultyRating = DifficultyRating.ExpertPlus)
 {
     Beatmap               = beatmap;
     WorkingBeatmap        = workingBeatmap;
     InterpretedDifficulty = difficultyRating;
 }
        public void difficulty_can_not_be_less_than_0()
        {
            var item = new ReviewItemBuilder().Due().WithDifficultyRating(0).Build();
            var strategy = new SuperMemo2ReviewStrategy();

            var actualDifficulty = strategy.AdjustDifficulty(item, ReviewOutcome.Perfect);

            var expectedDifficulty = new DifficultyRating(0);
            Assert.That(actualDifficulty, Is.EqualTo(expectedDifficulty));
        }
        public void perfect_review_lowers_difficulty()
        {
            var item = new ReviewItemBuilder().Due().WithDifficultyRating(50).Build();
            var strategy = new SuperMemo2ReviewStrategy();

            var actualDifficulty = strategy.AdjustDifficulty(item, ReviewOutcome.Perfect);

            var expectedDifficulty = new DifficultyRating(41);
            Assert.That(actualDifficulty, Is.EqualTo(expectedDifficulty));
        }
예제 #21
0
        private void assertOk(IBeatmap beatmap, DifficultyRating difficultyRating)
        {
            var context = new BeatmapVerifierContext(beatmap, new TestWorkingBeatmap(beatmap), difficultyRating);

            Assert.That(check.Run(context), Is.Empty);
        }
 public ReviewItemBuilder WithDifficultyRating(DifficultyRating difficulty)
 {
     _item.DifficultyRating = difficulty;
     return(this);
 }
 public ReviewItemBuilder WithDifficultyRating(DifficultyRating difficulty)
 {
     _item.DifficultyRating = difficulty;
     return this;
 }
예제 #24
0
 private void assertOk(List <HitObject> hitObjects, DifficultyRating difficultyRating = DifficultyRating.Easy)
 {
     Assert.That(check.Run(getContext(hitObjects, difficultyRating)), Is.Empty);
 }