This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.
So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.
This should be preferred over `workingBeatmap.Beatmap`.
This allows us to use the same method of checking for other files that should exist, for example the audio file.
By using the same method, they all share test cases too.
Makes use of the new `BeatmapSet.GetPathForFile` method and removes dependency on `WorkingBeatmap` specifically, allowing us to switch to `IWorkingBeatmap` later.
This is used in several places, and so should probably have a function rather than remaining as duplicated code.
Also applies this together with the previous commit to `BeatmapManagerWorkingBeatmap`.
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.
Also improves the structure of the `CheckBackgroundTest` class in the process.
`IdleTracker` in its construction quietly assumed that the clock it
receives from its parent starts ticking from 0 at the point at which it
is passed down. This is not necessarily the case when headless
executions are involved, which means that the initial state of the
tracker could be computed as idle incorrectly.
Resolve by explicitly reading the clock time at the point of
`LoadComplete()`.