1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-21 15:45:09 +08:00
Commit Graph

1586 Commits

Author SHA1 Message Date
Dean Herbert
e1445fcc65 Adjust health display test scene's background colour to better visualise background fill 2023-10-03 17:17:42 +09:00
Dean Herbert
622cbc3af7 Adjust test scene to actually make HP bars fit 2023-10-02 16:07:45 +09:00
Salman Ahmed
9e2b8254d9 Add argon-specific health display test scene 2023-10-01 13:26:47 +03:00
Salman Ahmed
776536e816 Add "Argon" health display implementation 2023-10-01 00:56:16 +03:00
Salman Ahmed
869f8e5e1b Adjust test scene to apply miss judgements as well 2023-10-01 00:21:24 +03:00
Salman Ahmed
314ecec65b Refactor player max dimensions test scene to actually upscale textures 2023-09-30 01:34:49 +03:00
Dean Herbert
a7237e48aa Merge branch 'master' into fix-storyboard-skin-textures-lookup 2023-09-27 17:17:51 +09:00
Dean Herbert
40a548d372 Adjust new test scene to not be super broken 2023-09-26 17:30:49 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions 2023-09-26 16:40:32 +09:00
Dean Herbert
b1561b650f Rename test scene, add xmldoc and increase scale factor to something absurdly high 2023-09-26 16:39:36 +09:00
Dean Herbert
2ca1c684bb
Merge branch 'master' into fix-storyboard-skin-textures-lookup 2023-09-26 14:05:27 +09:00
Dean Herbert
c40bd74138 Update usages of GameplayClockContainer not using an adjustable source 2023-09-22 16:22:36 +09:00
Dean Herbert
8367bb6bee Don't apply decoupling to SpectatorPlayerClocks
See inline comment for reasoning. It's a bit complicated.
2023-09-22 16:22:35 +09:00
Dean Herbert
3f27be1f33 Replace most usages of DecoupleableInterpolatingFramedClock
Except `FramedBeatmapClock`, which is the high-effort one.
2023-09-22 12:49:25 +09:00
Bartłomiej Dach
e45d456324
Fix TestFriendScore intermittently failing due to randomness
If `createRandomScore()` happened to randomly pick the highest total
score when called with `friend` as the sole argument, that particular
score would not be pink.

`GetScoreByUsername()` would arbitrarily pick the first score for the
user, so in this particular case where a friend had the number 1 score,
the test would wrongly fail.

Fix by checking whether any of the 3 added friend scores have received
the pink colour. Because there is more than 1 friend score in the test,
doing so ensures that at least one of those should eventually become
pink (because, obviously, you can't have two scores at number 1).
2023-09-21 21:12:44 +02:00
Bartłomiej Dach
9301a1907a
Rewrite TestFriendScore assertions to constraint model
Allows to clearly see what the failure is:

	TearDown : System.TimeoutException : "friend score is pink" timed out: Expected: some item equal to "#FF549A"
	  But was:  < "#FFFFFF", "#7FCC33", "#444444" >

The #7FCC33 colour is used for the first score on the leaderboard.
2023-09-21 21:05:41 +02:00
Bartłomiej Dach
69ed99dfd5
Merge branch 'master' into mania-edit-disable-sv 2023-09-21 09:13:27 +02:00
Bartłomiej Dach
d7129da8ea
Fix TestSceneDrawableStoryboardSprite not displaying anything 2023-09-20 12:05:23 +02:00
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv 2023-09-20 14:23:07 +09:00
Dean Herbert
1927b524db
Merge branch 'master' into leaderboard-friend-highlight 2023-09-20 14:14:08 +09:00
Dean Herbert
1316403180 Fix inspection in new test scene 2023-09-20 13:02:40 +09:00
Dean Herbert
2f020f8682 Add test coverage of storyboard preferring skin when specified 2023-09-19 20:20:20 +09:00
Salman Ahmed
8e992de763 Fix crash when loading player instance without exiting previous instance 2023-09-19 05:09:01 +03:00
Salman Ahmed
a373d71b3e Add basic test scene upscaling all skin elements 2023-09-19 03:40:31 +03:00
Salman Ahmed
57dc76b345 Revert "Update GetTexture signature rather than creating new overload"
This reverts commit 96f12cfbaa.
2023-09-19 03:21:19 +03:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
7c65a9de75
Fix Score V1 simulation in scoring test scene incorrectly applying multiplier
`TestSceneScoring` included a local simulation of stable's Score V1
algorithm. One of the parts of said algorithm is a mysterious
"score multiplier", influenced by - among others - the beatmap's drain
rate, overall difficulty, circle size, object count, drain length,
and active mods. (An implementation of this already exists in lazer
source, in `OsuLegacyScoreSimulator`, but more on this later.)

However, `TestSceneScoring` had this multiplier in _two_ places, with
_two_ distinct values, one of which being 1 (i.e. basically off).
Unfortunately, the place that had 1 as the multiplier was the wrong one.

Stable calculates the score increase for every hit in two stages;
first, it takes the raw numerical value of the judgement, but then
applies a combo-based bonus on top of it:

    scoreIncrease += (int)(Math.Max(0, ComboCounter.HitCombo - 1) * (scoreIncrease / 25 * ScoreMultiplier));

On the face of it, it may appear that the `ScoreMultiplier` factor
can be factored out and applied at the end only when returning total
score. However, once the above formula is rewritten as:

    scoreIncrease = scoreIncrease + (int)(Math.Max(0, ComboCounter.HitCombo - 1) * (scoreIncrease / 25 * ScoreMultiplier));
                  = scoreIncrease * (1 + (Math.Max(0, ComboCounter.HitCombo - 1) / 25 * ScoreMultiplier))

it becomes clear that that assumption is actually _incorrect_,
and the `ScoreMultiplier` _must_ be applied to every score increase
individually.

The above was cross-checked experimentally against stable source
on an example test map with 100 objects, and a replay hitting them
perfectly.
2023-09-12 21:33:26 +02:00
Bartłomiej Dach
3981e2e957
Only show visible graph values in tooltip 2023-09-12 13:29:02 +02:00
Bartłomiej Dach
15708ee465
Add toggle for showing relative/absolute score values 2023-09-12 13:27:40 +02:00
Bartłomiej Dach
607ceeccb9
Persist visibility state of graphs 2023-09-12 12:19:50 +02:00
Bartłomiej Dach
3cf8082aa7
Add capability to toggle visibility of graph 2023-09-12 12:07:12 +02:00
Bartłomiej Dach
95d15a703e
Improve legibility of scoring test scene
- Add black background to avoid clashes with background images.
- Use sorta-tetradic colours for the four plots.
2023-09-12 11:36:41 +02:00
Dean Herbert
87ec33bb66 Tidy up test 2023-09-07 14:50:22 +09:00
cdwcgt
68752f95e5
color friend score to pink 2023-09-06 22:58:03 +09:00
Dean Herbert
96f12cfbaa Update GetTexture signature rather than creating new overload 2023-09-05 18:01:19 +09:00
Dean Herbert
0f5eff1230 Merge branch 'master' into mania-edit-disable-sv 2023-09-01 19:08:48 +09:00
Bartłomiej Dach
479c463751
Explain why segment end positions are not recovered in test 2023-08-21 08:29:51 +02:00
Bartłomiej Dach
2b09594823
Use nunit constraints in test for better debug experience 2023-08-19 14:33:26 +02:00
OliBomby
fbf4d3ac81 Add test 2023-08-18 12:36:34 +02:00
Dan Balasescu
a2fd7707a1 Allow toggling SVs in the editor 2023-08-18 18:55:24 +09:00
Bartłomiej Dach
aca8310cd1
Fix non-compiling test
To be fair, currently the test is a bit pointless (as it has no reason
to be a `SkinnableTestScene`, it gains precisely nothing from it - all
that is shown there is some generic components on song select). But that
is no worse then `master`, so look away for now.
2023-07-28 23:36:57 +02:00
Dean Herbert
e702e0a23e Avoid intercepting temporary files in new test 2023-07-27 17:44:36 +09:00
Bartłomiej Dach
7bc3edb05a
Fix code quality inspection 2023-07-26 20:52:03 +02:00
Dean Herbert
2dace742a3 Add test coverage of score arriving on disk when exporting from results screen after play 2023-07-26 15:21:43 +09:00
Bartłomiej Dach
653f01f4ce
Merge pull request #24359 from peppy/fix-unknown-mod-test-failure
Fix `TestSceneUnknownMod` failing due to null reference
2023-07-25 22:40:03 +02:00
Dean Herbert
c1d93607e0 Fix TestSceneUnknownMod failing due to null reference 2023-07-25 19:06:13 +09:00
Dean Herbert
b29a2081ac Merge branch 'master' into menu-star-fountains 2023-07-21 14:21:16 +09:00
Bartłomiej Dach
210e114f7d
Merge branch 'master' into editor-prefer-closest 2023-07-20 19:16:09 +02:00
Dan Balasescu
733ce4c382 Fix incorrect dependency caching
These are tested framework-side to throw exceptions, but the
test is ignored for the source generated version because it quietly
allows this scenario.

The source gen project should eventually have an analyser for these
unsupported cases, or we could consider relaxing this particular case.
2023-07-20 22:30:49 +09:00
Dean Herbert
9d46d00294 Update skin editor cyclic test to match expectations better 2023-07-19 16:56:16 +09:00
Dean Herbert
2e3d1fe950 Fix regression in time jumping behaviour 2023-07-19 13:38:04 +09:00
Zyf
82364b4f9f Use OsuScoreProcessor in the scoring test scene 2023-07-11 02:46:32 +02:00
Bartłomiej Dach
055e4a78f0
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-08 18:10:04 +02:00
Bartłomiej Dach
832c1c0009
Merge branch 'master' into fix-gameplay-samepl-trigger-source-rewind 2023-07-08 13:33:04 +02:00
Dean Herbert
2e98ab0a48 Expose rewinding state of IGameplayClocks
The implementation of this requires a bit of a special case
for 0, so makes sense to implement in a central place.
2023-07-06 19:08:42 +09:00
Dean Herbert
7a3a14e50d Add sample trigger tests covering rewinding of gameplay 2023-07-06 19:08:42 +09:00
Dean Herbert
af3f9086e5 Expose rewinding state of IGameplayClocks
The implementation of this requires a bit of a special case
for 0, so makes sense to implement in a central place.
2023-07-06 14:16:31 +09:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Dean Herbert
51b0d18c04 Fix weird test assertion output 2023-07-05 18:44:27 +09:00
Bartłomiej Dach
b0f6b22fa7
Add assertions covering correctness of judged flags on entry 2023-07-04 23:48:46 +02:00
Bartłomiej Dach
2b098bdf61
Add test coverage for mixed pooled/non-pooled usages 2023-07-04 23:41:06 +02:00
Bartłomiej Dach
7052f87eb8
Add even more safety against unloaded components 2023-06-27 21:21:14 +02:00
Bartłomiej Dach
9681ee7eeb
Fix broken test step 2023-06-27 20:29:27 +02:00
Bartłomiej Dach
ada9c48bde
Attempt to fix more test failures 2023-06-27 20:17:58 +02:00
Dean Herbert
8bd6f7a46a Rename ClicksPerSecondCalculator to ClicksPerSecondController 2023-06-27 16:38:46 +09:00
Dean Herbert
e21583ff1b Refactor InputCountController to not require being added to foreign body via Attach
I've made the flow match `ClicksPerSecondCalculator` as close as
possible. Hopefully this reads better.
2023-06-27 16:36:00 +09:00
Dean Herbert
e99de0eb5d Add safety to tests to ensure loaded 2023-06-27 16:04:34 +09:00
Bartłomiej Dach
9c87d42f2b
Attempt to remedy HUD overlay test failure by waiting more 2023-06-26 22:41:31 +02:00
Bartłomiej Dach
7200855d46
Rename Judgement{Tally -> CountController} 2023-06-26 19:30:04 +02:00
Bartłomiej Dach
8d91580dc1
Rename {KeyCounter -> InputCount}Controller 2023-06-26 19:27:42 +02:00
tsrk
350d722c8d
Merge branch 'master' into hud/kc-skinnable 2023-06-25 15:42:08 +02:00
Bartłomiej Dach
25842105ce
Merge pull request #23976 from peppy/gameplay-sample-trigger-source-correctness
Adjust `GameplaySampleTriggerSource` to only switch samples when close enough to the next hit object
2023-06-25 08:23:55 +02:00
Bartłomiej Dach
d7ae430ec2
Merge branch 'master' into framework-update 2023-06-24 18:47:52 +02:00
Dean Herbert
3585c3f1d5 Apply required nullability changes 2023-06-24 09:58:36 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Bartłomiej Dach
2f77675fe7
Fix errors in tests due to mismatching NRT annotations 2023-06-20 21:57:32 +02:00
Dean Herbert
92e89c7df7 Update test expectations 2023-06-20 21:02:34 +09:00
Dean Herbert
04dad6c6e8 Use IGameplayClock to ensure our clock source is correct 2023-06-20 20:47:56 +09:00
tsrk
61101335cc
test: fix KeyCounterController not provided as a dependency 2023-06-16 19:00:09 +02:00
tsrk
f9321a24d9
test: change hideTarget drawable and testing logic
Doesn't change what it needs to test conceptually
2023-06-16 17:24:40 +02:00
Ruki
aba8219d06
Merge branch 'master' into hud/kc-skinnable 2023-06-15 15:48:43 +02:00
tsrk
7e70598773
test: move back key counter tests in ctor 2023-06-15 12:02:30 +02:00
tsrk
42b740a175
Merge branch 'master' into hud/kc-skinnable 2023-06-14 22:19:45 +02:00
tsrk
c637fddf73
refactor: decouple Trigger logic from KeyCounterDisplay
This allows to keep a coeherent state regardless of the progress of the play
2023-06-14 21:13:35 +02:00
tsrk
758831b983
test: remove hard usages of KeyCounterDisplay 2023-06-14 13:25:24 +02:00
Dean Herbert
062fd58602 Add test to known time 2023-06-12 16:43:28 +09:00
Dean Herbert
c9f9569e4a Add ability to change background colour in song progress test scene 2023-06-12 16:22:40 +09:00
Bartłomiej Dach
f51b8a6a05
Fix code quality inspection 2023-06-06 21:11:24 +02:00
Bartłomiej Dach
7694aa7219
Add test coverage 2023-06-06 20:36:44 +02:00
Dean Herbert
1558723420 Merge branch 'master' into scorev2 2023-05-29 20:06:32 +09:00
Dan Balasescu
6d9ba9248d Massage tests a bit more 2023-05-25 16:38:22 +09:00
Dean Herbert
e68ba6366c Update new usages of "soft" to use the new constant 2023-05-24 14:04:10 +09:00
Dean Herbert
298989ffd2 Merge branch 'master' into sample-set-controls 2023-05-24 14:03:04 +09:00
Dan Balasescu
fee3d43596 Merge branch 'master' into scorev2 2023-05-23 19:07:54 +09:00
Dan Balasescu
7cbf48ffcf Fix TestSceneScoring and incorrect combo calculations 2023-05-19 14:09:19 +09:00
Joseph Madamba
caa79704ac
Add test coverage for failing case 2023-05-17 20:23:37 -07:00
Bartłomiej Dach
59ece64d25
Merge branch 'master' into skin-editor-change-handler-improvement 2023-05-03 19:42:42 +02:00
Terochi
4d52ce769b Revert SaveState() calling on initialization 2023-05-01 12:53:58 +02:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
Terochi
8f02bd80f9 Addressed changes 2023-04-30 16:11:52 +02:00
Terochi
949dc1c0f9 Improved logic 2023-04-30 12:05:55 +02:00
Terochi
585318400c Refactor tests 2023-04-30 02:32:20 +02:00
Terochi
9a9e02b110 Added tests 2023-04-30 02:00:35 +02:00
OliBomby
c6fc180659 remove all test usages of SampleControlPoint 2023-04-26 14:21:52 +02:00
Bartłomiej Dach
196b5b41eb
Also disable counting on argon display in test
Mostly for my own peace of mind.
2023-04-25 20:17:57 +02:00
Bartłomiej Dach
753fa09356
Fix test failures due to type mismatch 2023-04-25 20:10:11 +02:00
Dean Herbert
0c3a015953 Fix key counter test not testing the full binding of IsCounting 2023-04-25 21:37:19 +09:00
Dean Herbert
d8b4db3a13
Merge branch 'master' into gameplay/argon-key-counter_le-retour 2023-04-25 19:54:31 +09:00
Bartłomiej Dach
0cc92ce5f9
Add failing test case
Covering nested object reverts not firing the parent's `RevertResult`
event in accordance with what the xmldoc of the event states.
2023-04-11 18:24:34 +02:00
Dean Herbert
0c71fa1bbd
Merge branch 'master' into gameplay/argon-key-counter_le-retour 2023-04-06 23:39:57 +09:00
Dean Herbert
e6872629f3
Merge pull request #22868 from peppy/no-epilepsy-warning-storyboard-disable
Don't show epilepsy warning when storyboards are disabled
2023-04-06 12:32:38 +09:00
tsrk
809b817e8e
Merge branch 'master' into gameplay/argon-key-counter_le-retour 2023-04-05 22:57:36 +02:00
Bartłomiej Dach
ba753a8aac
Merge branch 'master' into update-skinnable-sound-before-playing 2023-04-05 22:56:25 +02:00
Bartłomiej Dach
6df7614b9d
Add tests for suppressing epilepsy warning when storyboard disabled 2023-04-05 20:56:50 +02:00
Bartłomiej Dach
02c6126be7
Ensure storyboards are enabled in existing epilepsy warning tests 2023-04-05 20:53:54 +02:00
Bartłomiej Dach
432f698697
Merge branch 'master' into gameplay/key-counter-abstraction 2023-04-05 19:45:14 +02:00
Bartłomiej Dach
8cc425774b
Merge branch 'master' into fix-replay-fail-on-exit 2023-04-03 21:23:23 +02:00
Dean Herbert
6239789188 Fix missing using statements in multiple test scenes 2023-04-03 15:37:10 +09:00
Dean Herbert
b0c09df259 Merge branch 'master' into gameplay/key-counter-abstraction 2023-04-03 15:33:35 +09:00
Dean Herbert
9b45591c2f Add failing test coverage of saving failed replay causing progression to results 2023-03-29 14:00:11 +09:00
Terochi
1478a26cc0 Addressed changes 2023-03-21 23:15:49 +01:00
Dean Herbert
fb51221c2b Add test coverage of cyclic selection triggering when more than one item is selected 2023-03-21 21:31:10 +09:00
Dean Herbert
a81408ca06 Add failing test coverage showing that replay will fail on exiting gameplay 2023-03-16 17:12:46 +09:00
Dean Herbert
159c8833c7 Add test coverage of SkinnableSound not updating in time when not present 2023-03-16 15:41:05 +09:00
Dean Herbert
5378cdff20 Apply NRT to TestSceneSkinnableSound 2023-03-16 15:10:35 +09:00
Dean Herbert
5f9b13a775 Rename Add/AddRange methods as they are no longer conflicting with Container 2023-03-15 18:02:41 +09:00
Dean Herbert
8908648f97 Fix super-dodgy cast of IEnumerable to Drawable 2023-03-15 18:01:22 +09:00
Dean Herbert
1cf870d956 Add test coverage and fix fail case where a drag selection ends incorrectly with cyclic selection 2023-03-15 15:16:48 +09:00
Dean Herbert
3c4e2d8700 Add tests covering drag selection 2023-03-14 21:04:51 +09:00
tsrk
d806b85a30
revert: make counters an IEnumerable again
As suggested by bdach as this would make the last two commits useless

Refs: 5d15426
2023-03-09 10:25:03 +00:00
tsrk
44297a7d0a
refactor: make KCD a CompositeDrawable 2023-03-08 00:47:16 +00:00
Dean Herbert
28520414aa Move KeyCounter components to HUD namespace 2023-03-07 16:41:39 +09:00
Dean Herbert
15d65059b5 Tidy up Add method logic 2023-03-07 16:21:57 +09:00
Dean Herbert
8f6df5ea0f
Merge branch 'master' into gameplay/key-counter-abstraction 2023-03-07 16:09:45 +09:00
Dean Herbert
d2fcdf6e0e Add test coverage of cyclic selection in skin editor 2023-03-07 15:11:47 +09:00
Bartłomiej Dach
92edb0f868
Merge branch 'master' into skin-editor-depth-changing 2023-02-27 19:24:53 +01:00
tsrk
6307b3948a
style: use Trigger initialisation 2023-02-22 17:59:39 +00:00
Bartłomiej Dach
d679703fa2
Merge pull request #22659 from peppy/fix-taiko-drum-nested-sample-detection
Fix `GameplaySampleTriggerSource` not considering nested objects when determining the best sample to play
2023-02-22 18:56:59 +01:00
tsrk
1beec71037
refactor(KeyCounterDisplay): apply suggestions
I also took the freedom to add type checking, as we can't limit the
usage of `Add()` since it's a Container. The exception thrown also
advises of using the suggested `AddTrigger()` instead.
2023-02-22 14:58:27 +00:00
Dean Herbert
a8c692a215
Merge pull request #22635 from peppy/use-overlays-container-more
Use `Overlays` container rather than `KeyBindingInputManager` for flashlight
2023-02-22 18:30:21 +09:00
Dean Herbert
32a9c066df Add test coverage of bring-to-front / send-to-back operations 2023-02-22 18:17:20 +09:00
Dean Herbert
90ca635a17 Fix weird nullability in TestSceneSkinEditor 2023-02-22 18:17:20 +09:00
Dean Herbert
f61fbcf3fc Update assertion to also check GameplayClockContainer's current time 2023-02-22 15:26:09 +09:00
Dean Herbert
a511e64fa5 Seek using GameplayClockContainer 2023-02-22 14:41:20 +09:00
Bartłomiej Dach
d59d153654
Fix test compile failures from Audio hoisting 2023-02-21 21:03:00 +01:00
Bartłomiej Dach
3d2fcb0cca
Merge branch 'master' into fix-taiko-drum-nested-sample-detection 2023-02-21 20:53:06 +01:00
Bartłomiej Dach
ec1bf7b0b2
Merge branch 'master' into skin-editor-clipboard 2023-02-21 19:35:58 +01:00
Dean Herbert
9321ec29dc Update slider sample source asserts to match expected behaviour
As pointed out in review, if the current time is after the end of the
slider, the correct hit object to use for sample retrieval is the object
itself, not any nested object.
2023-02-21 14:04:38 +09:00
Dean Herbert
e686b4393e Add wait steps to ensure frame-stable clock has caught up before checking state 2023-02-21 14:04:19 +09:00
Dean Herbert
5ba6059911 Merge branch 'master' into fix-taiko-drum-nested-sample-detection 2023-02-21 13:58:15 +09:00