Ejemplo n.º 1
0
        public void PerformanceTest()
        {
            TestLevelCompletionResults results           = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers         = new TestGameplayModifiers();
            TestDifficultyBeatmap      difficultyBeatmap = TestDifficultyBeatmap.Default;

            results.GameplayModifiers    = modifiers;
            difficultyBeatmap.SongName   = "<TestSongName>";
            modifiers.DisappearingArrows = true;
            modifiers.FastNotes          = true;
            modifiers.SongSpeed          = SongSpeed.Slower;
            results.LevelEndStateType    = LevelEndState.Failed;
            results.MaxCombo             = results.TotalNotes - 1;
            int           expectedLength = LevelDataSubstitutions.Keys.Count * 7 * 3;
            StringBuilder stringBuilder  = new StringBuilder(expectedLength);

            foreach (var ch in LevelDataSubstitutions.Keys)
            {
                stringBuilder.Append("|" + LevelDataSubstitutions[ch] + "-?" + ch + "__");
            }
            string    baseString = stringBuilder.ToString();
            int       iterations = 100;
            Stopwatch sw         = new Stopwatch();

            sw.Start();
            for (int i = 0; i < iterations; i++)
            {
                _ = GetFilenameString(baseString, difficultyBeatmap, results);
            }
            sw.Stop();
            Console.WriteLine($"Average: {(float)sw.ElapsedMilliseconds / iterations}ms |  {sw.ElapsedMilliseconds}ms for {iterations} iterations.");
        }
Ejemplo n.º 2
0
        public void AllArguments()
        {
            TestLevelCompletionResults results   = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers = new TestGameplayModifiers();

            results.GameplayModifiers = modifiers;
            TestDifficultyBeatmap difficultyBeatmap = TestDifficultyBeatmap.Default;

            modifiers.DisappearingArrows = true;
            modifiers.FastNotes          = true;
            modifiers.SongSpeed          = SongSpeed.Slower;
            results.LevelEndStateType    = LevelEndState.Failed;
            results.MaxCombo             = results.TotalNotes;
            int           expectedLength = LevelDataSubstitutions.Keys.Count * 7 * 3;
            StringBuilder stringBuilder  = new StringBuilder(expectedLength);

            foreach (var ch in LevelDataSubstitutions.Keys)
            {
                stringBuilder.Append("|" + LevelDataSubstitutions[ch] + "-?" + ch + "__");
            }
            string baseString = stringBuilder.ToString();

            Console.WriteLine("Format: " + baseString.Replace("__", "\n        "));
            string result = GetFilenameString(baseString, difficultyBeatmap, results);

            Console.WriteLine(result.Replace("__", "\n"));
        }
Ejemplo n.º 3
0
        public void InvalidFilenameCharacters()
        {
            TestLevelCompletionResults results   = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers = new TestGameplayModifiers();
            TestDifficultyBeatmap      b         = TestDifficultyBeatmap.Default;

            results.GameplayModifiers = modifiers;
            b.SongName = "<?Test?S%ongName>";
            modifiers.DisappearingArrows = true;
            modifiers.FastNotes          = true;
            modifiers.SongSpeed          = SongSpeed.Slower;
            results.LevelEndStateType    = LevelEndState.Failed;
            results.MaxCombo             = results.TotalNotes - 1;
            string baseString = "?N-?A_?%<_[?M]><-?F><-?e>";

            Console.WriteLine("Format: " + baseString);
            string result         = GetFilenameString(baseString, b, results);
            string scoreStr       = Math.Round(results.ScorePercent, 2, MidpointRounding.ToZero).ToString("F2");
            string expectedResult = $"{b.SongName}-{b.LevelAuthorName}_{scoreStr}_[{modifiers}]-Failed";

            expectedResult = Utilities.GetSafeFilename(expectedResult);
            Console.WriteLine($"  '{expectedResult}'");
            Console.WriteLine($"  '{result}'");
            Assert.AreEqual(expectedResult, result);
        }
Ejemplo n.º 4
0
        public void Group_OneSubstituteEmpty()
        {
            TestLevelCompletionResults results   = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers = new TestGameplayModifiers();
            TestDifficultyBeatmap      b         = TestDifficultyBeatmap.Default;

            results.GameplayModifiers = modifiers;
            b.SongName = "<TestSongName>";
            modifiers.DisappearingArrows = true;
            modifiers.FastNotes          = true;
            modifiers.SongSpeed          = SongSpeed.Slower;
            results.LevelEndStateType    = LevelEndState.Failed;
            results.MaxCombo             = results.TotalNotes - 1;
            string baseString             = "?N<_?F>";
            string expectedModifierString = modifiers.ToString();
            string expectedResult         = OBSControl.Utilities.Utilities.GetSafeFilename($"{b.SongName}");

            Console.WriteLine("Format: " + baseString);
            string result = GetFilenameString(baseString, b, results);

            Assert.AreEqual(expectedResult, result);
            Console.WriteLine("  " + result + ".mkv");
            baseString = "?N-?A_[?M]<-?F>-?e";
            Console.WriteLine("Format: " + baseString);
            result         = GetFilenameString(baseString, b, results);
            expectedResult = OBSControl.Utilities.Utilities.GetSafeFilename($"{b.SongName}-{b.LevelAuthorName}_[{expectedModifierString}]-Failed");
            Assert.AreEqual(expectedResult, result);
            Console.WriteLine("  " + result + ".mkv");
        }
Ejemplo n.º 5
0
        public void EmptyFormat()
        {
            TestLevelCompletionResults results   = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers = new TestGameplayModifiers();
            TestDifficultyBeatmap      b         = TestDifficultyBeatmap.Default;

            results.GameplayModifiers = modifiers;
            string?baseString = string.Empty;

            Console.WriteLine($"Format: '{baseString}'");
            string expectedResult = string.Empty;
            string result         = GetFilenameString(baseString, b, results);

            Console.WriteLine($"Result: '{result}'");
            Assert.AreEqual(expectedResult, result);
        }
Ejemplo n.º 6
0
        public void DateAtEnd_Test()
        {
            TestLevelCompletionResults results   = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers = new TestGameplayModifiers();
            TestDifficultyBeatmap      b         = TestDifficultyBeatmap.Default;

            results.GameplayModifiers = modifiers;
            string dateFormat = "yyyyMMdd";
            string baseString = $"?N-?A_?@{{{dateFormat}}}";

            Console.WriteLine("Format: " + baseString);
            string expectedResult = OBSControl.Utilities.Utilities.GetSafeFilename($"{b.SongName}-{b.LevelAuthorName}_{DateTime.Now.ToString(dateFormat)}");
            string result         = GetFilenameString(baseString, b, results);

            Console.WriteLine($"Result: '{result}'");
            Assert.AreEqual(expectedResult, result);
        }
Ejemplo n.º 7
0
        public void SongAndAuthorLimits()
        {
            TestLevelCompletionResults results   = TestLevelCompletionResults.DefaultCompletionResults;
            TestGameplayModifiers      modifiers = new TestGameplayModifiers();
            TestDifficultyBeatmap      b         = TestDifficultyBeatmap.Default;

            results.GameplayModifiers = modifiers;
            string dateFormat  = "yyyyMMdd";
            int    authorLimit = 5;
            int    songLimit   = 3;
            string baseString  = $"?N{{{songLimit}}}-?A{{{authorLimit}}}_?@{{{dateFormat}}}-?D";

            Console.WriteLine("Format: " + baseString);
            string expectedResult = $"{b.SongName.Substring(0, songLimit)}-{b.LevelAuthorName.Substring(0, authorLimit)}_{DateTime.Now.ToString(dateFormat)}-{b.Difficulty}";

            expectedResult = OBSControl.Utilities.Utilities.GetSafeFilename(expectedResult);
            string result = GetFilenameString(baseString, b, results);

            Console.WriteLine($"Result: '{result}'");
            Assert.AreEqual(expectedResult, result);
        }