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."); }
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")); }
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); }
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"); }
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); }
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); }
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); }