mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 14:03:23 -05:00
53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
"""Same-named candidates are ordered by the size the entry declares.
|
|
|
|
ScummVM declares MT32_PCM.ROM at 524288 bytes; the name step took the 1 MB
|
|
CM-32L PCM ROM that sorted first. Ordering rejects nothing, so a size
|
|
without `validation: [size]` keeps its informative status.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(REPO_ROOT / "scripts"))
|
|
|
|
from common import _by_affinity # noqa: E402
|
|
|
|
|
|
class DeclaredSizeOrders(unittest.TestCase):
|
|
def test_the_fitting_size_comes_first(self):
|
|
with tempfile.TemporaryDirectory(dir=REPO_ROOT / "tmp") as tmp:
|
|
big = Path(tmp) / "a" / "pcm.rom"
|
|
small = Path(tmp) / "b" / "pcm.rom"
|
|
for path, size in ((big, 1024), (small, 512)):
|
|
path.parent.mkdir()
|
|
path.write_bytes(b"x" * size)
|
|
ordered = _by_affinity([str(big), str(small)], {"size": 512}, "")
|
|
self.assertEqual(ordered[0], str(small))
|
|
kept = _by_affinity([str(big), str(small)], {}, "")
|
|
self.assertEqual(kept, [str(big), str(small)])
|
|
|
|
|
|
|
|
class OwnerOutranksSharedTree(unittest.TestCase):
|
|
def test_the_owners_copy_beats_two_matching_segments(self):
|
|
"""armsx2's fxaa.fx lost to NetherSX2's under shaders/common/."""
|
|
from common import _by_affinity # noqa: PLC0415
|
|
|
|
paths = [
|
|
"bios/Other/nethersx2/assets/shaders/common/fxaa.fx",
|
|
"bios/Other/armsx2/fxaa.fx",
|
|
]
|
|
ordered = _by_affinity(
|
|
paths, {"name": "fxaa.fx", "source_profile": "armsx2"},
|
|
"pcsx2/resources/shaders/common/fxaa.fx",
|
|
)
|
|
self.assertEqual(ordered[0], "bios/Other/armsx2/fxaa.fx")
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|