Commit Graph

483 Commits

Author SHA1 Message Date
Dean Herbert ef258122d2 Move `GetDifficultyRating` helper method to `StarDifficulty` 2022-06-23 19:51:58 +09:00
Dan Balasescu f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu 9259aa94f1 Fix Catmull slider parsing with duplicate initial point 2022-05-24 11:47:42 +09:00
Dan Balasescu fe49a7e678 Add failing tests 2022-05-18 17:10:19 +09:00
Dan Balasescu 478174dd58
Merge pull request #17416 from peppy/skin-fuck
Refactor skin construction
2022-03-25 15:36:06 +09:00
Dean Herbert d6fc53579e Split out shared code for encode-decode cycle (and remove unrelated culture set) 2022-03-24 17:00:49 +09:00
Dean Herbert a7554dcdf7 Use a constant for the early version timing offset 2022-03-24 16:43:41 +09:00
Dean Herbert 2efae031c9 Add test coverage of decode specifically 2022-03-24 16:39:56 +09:00
Dean Herbert 59a7eb5322 Add test coverage ensuring offsets are correct before and after legacy replay encode 2022-03-24 16:34:21 +09:00
Dean Herbert 7a1909bf97 Change parameter order of `LegacySkin` to put `IStorageResourceProvider` first
The optional resource store should not be before the (basically)
required resource provider.
2022-03-23 15:02:04 +09:00
Dan Balasescu bda3cdc9a7 Add tests 2022-01-28 19:29:30 +09:00
Bartłomiej Dach 7dc3940dee
Add test coverage for preserving legacy beatmap info defaults 2022-01-27 21:49:26 +01:00
Dean Herbert 5288eedd31 Update all usages of `RulesetID` and `Ruleset.ID` to use `Ruleset.OnlineID` 2022-01-27 15:38:03 +09:00
Dean Herbert 6eb2c28e41 Rename `RealmContextFactory` to `RealmAccess` 2022-01-24 20:38:07 +09:00
Bartłomiej Dach 735414bc49
Replace `TimeSignatures` enum with struct for storage of arbitrary meter 2022-01-22 20:50:31 +01:00
Dean Herbert 114c9e8c1f Update all usages of `CreateContext` to use either `Run` or `Write` 2022-01-21 17:27:08 +09:00
Dean Herbert bb6f40d16e Add test coverage of all mod storages containing classic mod post-import 2022-01-19 14:34:27 +09:00
Dean Herbert 7f65f3a47f Remove all usage of `BaseDifficulty` (and access `Difficulty` instead) 2022-01-18 22:57:39 +09:00
Dean Herbert b2d09b7b10 Fix further warnings 2022-01-12 23:42:12 +09:00
Dean Herbert 51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert b5975eee33 This file should have been deleted in a previous commit (rebase failure) 2022-01-12 17:49:11 +09:00
Dean Herbert ba4ef0926f Remove incorrect test fixture specification 2022-01-12 17:00:17 +09:00
Dean Herbert 31a3161189 Make tests compile again 2022-01-12 17:00:16 +09:00
Dean Herbert 53792811b2 more fixes (almost compiles, except ruleset and manager) 2022-01-12 16:57:27 +09:00
Dean Herbert fda529de26 Update usages of `APIUser` to `RealmUser` 2022-01-12 16:39:36 +09:00
Dean Herbert e6f6558ddf Update mock model usage to set `GUID`s instead of `int`s 2022-01-12 16:39:36 +09:00
Dean Herbert c383f26729 Remove EF specific tests that have since been replaced 2022-01-12 16:39:36 +09:00
Dan Balasescu af9fad00c3 Merge branch 'master' into async-deadlock-safety 2022-01-10 16:11:09 +09:00
Dean Herbert 3d14511286 Remove MD5 comparison also 2022-01-10 12:17:32 +09:00
Dean Herbert f6f24220c2 Fix `LegacyScoreDecoderTest` incorrectly comparing unset beatmap IDs
This has been wrong from the outside, but hidden by the fact that the
default values are equal. I've changed to MD5Hash which actually asserts
that the correct beatmap has likely arrived.

Found this in my realm changes, where it fails due to the beatmap ID
being a differing Guid in each case.
2022-01-08 15:28:13 +09:00
Dean Herbert 00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert f3e889d0f6 Fix incorrect nested result retrieval in `ImportBeatmapTest` 2022-01-04 11:51:41 +09:00
Dean Herbert 73b40e6833 Replace usage of `.Result` with `.WaitSafelyForResult` 2022-01-04 11:51:41 +09:00
Dean Herbert 4b88e257e5 Update usages of `CleanRunHeadlessGameHost` to match new signature 2021-12-24 20:17:34 +09:00
Dean Herbert b0d14526ea Move test `ScoreInfo` creation to `TestResources`
The main goal here is to remove the inheritance, since realm doesn't
like that. Unfortunate that we can't use object initialisers in a few of
these places, but no real way around that.
2021-12-13 16:34:50 +09:00
Dean Herbert dbb08f7d46 Use `OnlineID` for set operations 2021-12-10 16:11:48 +09:00
Bartłomiej Dach ea6766d940
Add failing test case 2021-12-04 17:13:43 +01:00
Dean Herbert 1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert 306e13fa7b Remove all usages of `FileStore.QueryFiles` 2021-11-25 14:06:02 +09:00
Dean Herbert 183b95cbc2 Rename `BeatmapSetOnlineStatus` to `BeatmapOnlineStatus`
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dan Balasescu 74b6c33fab
Merge pull request #15778 from peppy/ruleset-info-id-usage
Update usages of `RulesetInfo.ID` to use `OnlineID` instead
2021-11-24 16:55:28 +09:00
Dean Herbert bbd3ea5b77 Update all actual usages of `RulesetInfo.ID` to use `OnlineID` instead 2021-11-24 15:50:26 +09:00
Dean Herbert f283770f34 Update mock `RulesetInfo` usage to set `OnlineID` instead of `ID` 2021-11-24 15:50:26 +09:00
Dean Herbert 8c60f37508 Fix cases of dynamically assigning `Beatmap`s to `BeatmapSetInfo` using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert 63642450a4
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 15:50:07 +09:00
Dan Balasescu a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Bartłomiej Dach 6100bf66a6
Clean up cancellation handling in `WorkingBeatmap`
After the recent changes introducing cancellation support to
`WorkingBeatmap`, it turned out that if the cancellation support was
used, `GetPlayableBeatmap()` would raise timeout exceptions rather than
the expected `OperationCanceledException`.

To that end, split off a separate overload for the typical usage, that
catches `OperationCanceledException` and converts them to beatmap load
timeout exceptions, and use normal `OperationCanceledException`s in the
overload that requires a cancellation token to work.
2021-11-20 17:23:55 +01:00
Bartłomiej Dach 15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Dean Herbert 59e763467f Move `StoragePath` implementation to an extension method 2021-11-19 16:08:38 +09:00
Bartłomiej Dach 8528cab40b
Add test coverage for ruleset load failure scenario 2021-11-17 22:10:45 +01:00