33
44using NUnit . Framework ;
55using osu . Game . Rulesets . Catch . Mods ;
6+ using osu . Game . Rulesets . Mods ;
67using osu . Game . Tests . Rulesets ;
78
89namespace osu . Game . Rulesets . Catch . Tests
@@ -14,28 +15,141 @@ public CatchScoreMultiplierTest()
1415 {
1516 }
1617
17- [ Test ]
18- public void TestFlashlightOnNonDefaultSettings ( )
19- => TestModCombination ( [ new CatchModFlashlight { ComboBasedSize = { Value = false } } ] ) ;
18+ private static readonly object [ ] [ ] test_cases =
19+ [
20+ #region Difficulty Reduction
2021
21- [ Test ]
22- public void TestHalfTimeSpeeds ( [ Values ( 0.5 , 0.55 , 0.6 , 0.65 , 0.7 , 0.75 , 0.8 , 0.85 , 0.9 , 0.95 , 0.99 ) ] double speedChange )
23- => TestModCombination ( [ new CatchModHalfTime { SpeedChange = { Value = speedChange } } ] ) ;
22+ [ new Mod [ ] { new CatchModEasy ( ) } , 0.5 ] ,
23+ [ new Mod [ ] { new CatchModNoFail ( ) } , 0.5 ] ,
2424
25- [ Test ]
26- public void TestDaycoreSpeeds ( [ Values ( 0.5 , 0.55 , 0.6 , 0.65 , 0.7 , 0.75 , 0.8 , 0.85 , 0.9 , 0.95 , 0.99 ) ] double speedChange )
27- => TestModCombination ( [ new CatchModDaycore { SpeedChange = { Value = speedChange } } ] ) ;
25+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.50 } } } , 0.1 ] ,
26+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.55 } } } , 0.1 ] ,
27+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.60 } } } , 0.2 ] ,
28+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.65 } } } , 0.2 ] ,
29+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.70 } } } , 0.3 ] ,
30+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.75 } } } , 0.3 ] ,
31+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.80 } } } , 0.4 ] ,
32+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.85 } } } , 0.4 ] ,
33+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.90 } } } , 0.5 ] ,
34+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.95 } } } , 0.5 ] ,
35+ [ new Mod [ ] { new CatchModHalfTime { SpeedChange = { Value = 0.99 } } } , 0.5 ] ,
2836
29- [ Test ]
30- public void TestDoubleTimeSpeeds ( [ Values ( 1.01 , 1.05 , 1.1 , 1.15 , 1.2 , 1.25 , 1.3 , 1.35 , 1.4 , 1.45 , 1.5 , 1.55 , 1.6 , 1.65 , 1.7 , 1.75 , 1.8 , 1.85 , 1.9 , 1.95 , 2 ) ] double speedChange )
31- => TestModCombination ( [ new CatchModDoubleTime { SpeedChange = { Value = speedChange } } ] ) ;
37+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.50 } } } , 0.1 ] ,
38+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.55 } } } , 0.1 ] ,
39+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.60 } } } , 0.2 ] ,
40+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.65 } } } , 0.2 ] ,
41+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.70 } } } , 0.3 ] ,
42+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.75 } } } , 0.3 ] ,
43+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.80 } } } , 0.4 ] ,
44+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.85 } } } , 0.4 ] ,
45+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.90 } } } , 0.5 ] ,
46+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.95 } } } , 0.5 ] ,
47+ [ new Mod [ ] { new CatchModDaycore { SpeedChange = { Value = 0.99 } } } , 0.5 ] ,
3248
33- [ Test ]
34- public void TestNightcoreSpeeds ( [ Values ( 1.01 , 1.05 , 1.1 , 1.15 , 1.2 , 1.25 , 1.3 , 1.35 , 1.4 , 1.45 , 1.5 , 1.55 , 1.6 , 1.65 , 1.7 , 1.75 , 1.8 , 1.85 , 1.9 , 1.95 , 2 ) ] double speedChange )
35- => TestModCombination ( [ new CatchModNightcore { SpeedChange = { Value = speedChange } } ] ) ;
49+ #endregion
3650
37- [ Test ]
38- public void TestMultiplicativeCombination ( )
39- => TestModCombination ( [ new CatchModHidden ( ) , new CatchModHardRock ( ) ] ) ;
51+ #region Difficulty Increase
52+
53+ [ new Mod [ ] { new CatchModHardRock ( ) } , 1.12 ] ,
54+ [ new Mod [ ] { new CatchModSuddenDeath ( ) } , 1 ] ,
55+ [ new Mod [ ] { new CatchModPerfect ( ) } , 1 ] ,
56+
57+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.01 } } } , 1.00 ] ,
58+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.05 } } } , 1.00 ] ,
59+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.10 } } } , 1.02 ] ,
60+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.15 } } } , 1.02 ] ,
61+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.20 } } } , 1.04 ] ,
62+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.25 } } } , 1.04 ] ,
63+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.30 } } } , 1.06 ] ,
64+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.35 } } } , 1.06 ] ,
65+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.40 } } } , 1.08 ] ,
66+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.45 } } } , 1.08 ] ,
67+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.50 } } } , 1.10 ] ,
68+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.55 } } } , 1.10 ] ,
69+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.60 } } } , 1.12 ] ,
70+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.65 } } } , 1.12 ] ,
71+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.70 } } } , 1.14 ] ,
72+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.75 } } } , 1.14 ] ,
73+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.80 } } } , 1.16 ] ,
74+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.85 } } } , 1.16 ] ,
75+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.90 } } } , 1.18 ] ,
76+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 1.95 } } } , 1.18 ] ,
77+ [ new Mod [ ] { new CatchModDoubleTime { SpeedChange = { Value = 2.00 } } } , 1.20 ] ,
78+
79+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.01 } } } , 1.00 ] ,
80+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.05 } } } , 1.00 ] ,
81+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.10 } } } , 1.02 ] ,
82+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.15 } } } , 1.02 ] ,
83+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.20 } } } , 1.04 ] ,
84+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.25 } } } , 1.04 ] ,
85+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.30 } } } , 1.06 ] ,
86+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.35 } } } , 1.06 ] ,
87+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.40 } } } , 1.08 ] ,
88+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.45 } } } , 1.08 ] ,
89+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.50 } } } , 1.10 ] ,
90+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.55 } } } , 1.10 ] ,
91+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.60 } } } , 1.12 ] ,
92+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.65 } } } , 1.12 ] ,
93+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.70 } } } , 1.14 ] ,
94+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.75 } } } , 1.14 ] ,
95+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.80 } } } , 1.16 ] ,
96+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.85 } } } , 1.16 ] ,
97+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.90 } } } , 1.18 ] ,
98+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 1.95 } } } , 1.18 ] ,
99+ [ new Mod [ ] { new CatchModNightcore { SpeedChange = { Value = 2.00 } } } , 1.20 ] ,
100+
101+ [ new Mod [ ] { new CatchModHidden ( ) } , 1.06 ] ,
102+
103+ [ new Mod [ ] { new CatchModFlashlight ( ) } , 1.12 ] ,
104+ [ new Mod [ ] { new CatchModFlashlight { ComboBasedSize = { Value = false } } } , 1 ] ,
105+
106+ [ new Mod [ ] { new ModAccuracyChallenge ( ) } , 1 ] ,
107+
108+ #endregion
109+
110+ #region Conversion
111+
112+ [ new Mod [ ] { new CatchModDifficultyAdjust ( ) } , 0.5 ] ,
113+ [ new Mod [ ] { new CatchModClassic ( ) } , 0.96 ] ,
114+ [ new Mod [ ] { new CatchModMirror ( ) } , 1 ] ,
115+
116+ #endregion
117+
118+ #region Automation
119+
120+ [ new Mod [ ] { new CatchModAutoplay ( ) } , 1 ] ,
121+ [ new Mod [ ] { new CatchModCinema ( ) } , 1 ] ,
122+ [ new Mod [ ] { new CatchModRelax ( ) } , 0.1 ] ,
123+
124+ #endregion
125+
126+ #region Fun
127+
128+ [ new Mod [ ] { new ModWindUp ( ) } , 0.5 ] ,
129+ [ new Mod [ ] { new ModWindDown ( ) } , 0.5 ] ,
130+ [ new Mod [ ] { new CatchModFloatingFruits ( ) } , 1 ] ,
131+ [ new Mod [ ] { new CatchModMuted ( ) } , 1 ] ,
132+ [ new Mod [ ] { new CatchModNoScope ( ) } , 1 ] ,
133+ [ new Mod [ ] { new CatchModMovingFast ( ) } , 1 ] ,
134+ [ new Mod [ ] { new CatchModSynesthesia ( ) } , 0.8 ] ,
135+
136+ #endregion
137+
138+ #region System
139+
140+ [ new Mod [ ] { new ModScoreV2 ( ) } , 1 ] ,
141+
142+ #endregion
143+
144+ #region Combinations
145+
146+ [ new Mod [ ] { new CatchModHidden ( ) , new CatchModHardRock ( ) } , 1.06 * 1.12 ]
147+
148+ #endregion
149+ ] ;
150+
151+ [ TestCaseSource ( nameof ( test_cases ) ) ]
152+ public void TestMultipliers ( Mod [ ] mods , double expectedMultiplier )
153+ => TestModCombination ( mods , expectedMultiplier ) ;
40154 }
41155}
0 commit comments