mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Finish writing ConvertToMetadata and making fixes related
This commit is contained in:
@@ -453,7 +453,7 @@ namespace SabreTools.DatFiles.Test
|
||||
[Models.Metadata.Device.FixedImageKey] = "fixedimage",
|
||||
[Models.Metadata.Device.InstanceKey] = CreateMetadataInstance(),
|
||||
[Models.Metadata.Device.InterfaceKey] = "interface",
|
||||
[Models.Metadata.Device.MandatoryKey] = 1,
|
||||
[Models.Metadata.Device.MandatoryKey] = 1L,
|
||||
[Models.Metadata.Device.TagKey] = "tag",
|
||||
[Models.Metadata.Device.DeviceTypeKey] = "punchtape",
|
||||
};
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.DatItems.Formats;
|
||||
using SabreTools.Hashing;
|
||||
@@ -79,7 +81,7 @@ namespace SabreTools.DatFiles.Test
|
||||
Models.Metadata.MetadataFile? actual = datFile.ConvertToMetadata();
|
||||
Assert.NotNull(actual);
|
||||
|
||||
Models.Metadata.Machine[]? machines = actual.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
|
||||
Models.Metadata.Machine[]? machines = actual.ReadItemArray<Models.Metadata.Machine>(Models.Metadata.MetadataFile.MachineKey);
|
||||
Assert.NotNull(machines);
|
||||
Models.Metadata.Machine actualMachine = Assert.Single(machines);
|
||||
ValidateMetadataMachine(actualMachine);
|
||||
@@ -418,7 +420,6 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal("version", header.ReadString(Models.Metadata.Header.VersionKey));
|
||||
}
|
||||
|
||||
// TODO: Add reading all item types here
|
||||
private static void ValidateMetadataMachine(Models.Metadata.Machine machine)
|
||||
{
|
||||
Assert.Equal("board", machine.ReadString(Models.Metadata.Machine.BoardKey));
|
||||
@@ -471,105 +472,149 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal("tags", machine.ReadString(Models.Metadata.Machine.TagsKey));
|
||||
Assert.Equal("year", machine.ReadString(Models.Metadata.Machine.YearKey));
|
||||
|
||||
Models.Metadata.Adjuster[]? adjusters = machine.Read<Models.Metadata.Adjuster[]>(Models.Metadata.Machine.AdjusterKey);
|
||||
Models.Metadata.Adjuster[]? adjusters = machine.ReadItemArray<Models.Metadata.Adjuster>(Models.Metadata.Machine.AdjusterKey);
|
||||
Assert.NotNull(adjusters);
|
||||
Models.Metadata.Adjuster adjuster = Assert.Single(adjusters);
|
||||
ValidateMetadataAdjuster(adjuster);
|
||||
|
||||
Models.Metadata.Archive[]? archives = machine.Read<Models.Metadata.Archive[]>(Models.Metadata.Machine.ArchiveKey);
|
||||
Models.Metadata.Archive[]? archives = machine.ReadItemArray<Models.Metadata.Archive>(Models.Metadata.Machine.ArchiveKey);
|
||||
Assert.NotNull(archives);
|
||||
Models.Metadata.Archive archive = Assert.Single(archives);
|
||||
ValidateMetadataArchive(archive);
|
||||
|
||||
Models.Metadata.BiosSet[]? biosSets = machine.Read<Models.Metadata.BiosSet[]>(Models.Metadata.Machine.BiosSetKey);
|
||||
Models.Metadata.BiosSet[]? biosSets = machine.ReadItemArray<Models.Metadata.BiosSet>(Models.Metadata.Machine.BiosSetKey);
|
||||
Assert.NotNull(biosSets);
|
||||
Models.Metadata.BiosSet biosSet = Assert.Single(biosSets);
|
||||
ValidateMetadataBiosSet(biosSet);
|
||||
|
||||
Models.Metadata.Chip[]? chips = machine.Read<Models.Metadata.Chip[]>(Models.Metadata.Machine.ChipKey);
|
||||
Models.Metadata.Chip[]? chips = machine.ReadItemArray<Models.Metadata.Chip>(Models.Metadata.Machine.ChipKey);
|
||||
Assert.NotNull(chips);
|
||||
Models.Metadata.Chip chip = Assert.Single(chips);
|
||||
ValidateMetadataChip(chip);
|
||||
|
||||
Models.Metadata.Configuration[]? configurations = machine.Read<Models.Metadata.Configuration[]>(Models.Metadata.Machine.ConfigurationKey);
|
||||
Models.Metadata.Configuration[]? configurations = machine.ReadItemArray<Models.Metadata.Configuration>(Models.Metadata.Machine.ConfigurationKey);
|
||||
Assert.NotNull(configurations);
|
||||
Models.Metadata.Configuration configuration = Assert.Single(configurations);
|
||||
ValidateMetadataConfiguration(configuration);
|
||||
|
||||
Models.Metadata.Device[]? devices = machine.Read<Models.Metadata.Device[]>(Models.Metadata.Machine.DeviceKey);
|
||||
Models.Metadata.Device[]? devices = machine.ReadItemArray<Models.Metadata.Device>(Models.Metadata.Machine.DeviceKey);
|
||||
Assert.NotNull(devices);
|
||||
Models.Metadata.Device device = Assert.Single(devices);
|
||||
ValidateMetadataDevice(device);
|
||||
|
||||
Models.Metadata.DeviceRef[]? deviceRefs = machine.Read<Models.Metadata.DeviceRef[]>(Models.Metadata.Machine.DeviceRefKey);
|
||||
Models.Metadata.DeviceRef[]? deviceRefs = machine.ReadItemArray<Models.Metadata.DeviceRef>(Models.Metadata.Machine.DeviceRefKey);
|
||||
Assert.NotNull(deviceRefs);
|
||||
Models.Metadata.DeviceRef deviceRef = Assert.Single(deviceRefs);
|
||||
ValidateMetadataDeviceRef(deviceRef);
|
||||
|
||||
Models.Metadata.DipSwitch[]? dipSwitches = machine.Read<Models.Metadata.DipSwitch[]>(Models.Metadata.Machine.DipSwitchKey);
|
||||
Models.Metadata.DipSwitch[]? dipSwitches = machine.ReadItemArray<Models.Metadata.DipSwitch>(Models.Metadata.Machine.DipSwitchKey);
|
||||
Assert.NotNull(dipSwitches);
|
||||
Models.Metadata.DipSwitch dipSwitch = Assert.Single(dipSwitches);
|
||||
Assert.Equal(2, dipSwitches.Length);
|
||||
Models.Metadata.DipSwitch dipSwitch = dipSwitches[0];
|
||||
ValidateMetadataDipSwitch(dipSwitch);
|
||||
|
||||
Models.Metadata.Disk[]? disks = machine.Read<Models.Metadata.Disk[]>(Models.Metadata.Machine.DiskKey);
|
||||
Models.Metadata.Disk[]? disks = machine.ReadItemArray<Models.Metadata.Disk>(Models.Metadata.Machine.DiskKey);
|
||||
Assert.NotNull(disks);
|
||||
Models.Metadata.Disk disk = Assert.Single(disks);
|
||||
Assert.Equal(2, disks.Length);
|
||||
Models.Metadata.Disk disk = disks[0];
|
||||
ValidateMetadataDisk(disk);
|
||||
|
||||
Models.Metadata.Display[]? displays = machine.Read<Models.Metadata.Display[]>(Models.Metadata.Machine.DisplayKey);
|
||||
Models.Metadata.Display[]? displays = machine.ReadItemArray<Models.Metadata.Display>(Models.Metadata.Machine.DisplayKey);
|
||||
Assert.NotNull(displays);
|
||||
Models.Metadata.Display display = Assert.Single(displays);
|
||||
Assert.Equal(2, displays.Length);
|
||||
Models.Metadata.Display? display = Array.Find(displays, d => !d.ContainsKey(Models.Metadata.Video.AspectXKey));
|
||||
ValidateMetadataDisplay(display);
|
||||
|
||||
Models.Metadata.Driver? driver = machine.Read<Models.Metadata.Driver>(Models.Metadata.Machine.DriverKey);
|
||||
Models.Metadata.Driver[]? drivers = machine.ReadItemArray<Models.Metadata.Driver>(Models.Metadata.Machine.DriverKey);
|
||||
Assert.NotNull(drivers);
|
||||
Models.Metadata.Driver driver = Assert.Single(drivers);
|
||||
ValidateMetadataDriver(driver);
|
||||
|
||||
// TODO: Implement this validation
|
||||
// Models.Metadata.Dump[]? dumps = machine.Read<Models.Metadata.Dump[]>(Models.Metadata.Machine.DumpKey);
|
||||
// Models.Metadata.Dump[]? dumps = machine.ReadItemArray<Models.Metadata.Dump>(Models.Metadata.Machine.DumpKey);
|
||||
// Assert.NotNull(dumps);
|
||||
// Models.Metadata.Dump dump = Assert.Single(dumps);
|
||||
// ValidateMetadataDump(dump);
|
||||
|
||||
Models.Metadata.Feature[]? features = machine.Read<Models.Metadata.Feature[]>(Models.Metadata.Machine.FeatureKey);
|
||||
Models.Metadata.Feature[]? features = machine.ReadItemArray<Models.Metadata.Feature>(Models.Metadata.Machine.FeatureKey);
|
||||
Assert.NotNull(features);
|
||||
Models.Metadata.Feature feature = Assert.Single(features);
|
||||
Assert.Equal(2, features.Length);
|
||||
Models.Metadata.Feature feature = features[0];
|
||||
ValidateMetadataFeature(feature);
|
||||
|
||||
Models.Metadata.Info[]? infos = machine.Read<Models.Metadata.Info[]>(Models.Metadata.Machine.InfoKey);
|
||||
Models.Metadata.Info[]? infos = machine.ReadItemArray<Models.Metadata.Info>(Models.Metadata.Machine.InfoKey);
|
||||
Assert.NotNull(infos);
|
||||
Models.Metadata.Info info = Assert.Single(infos);
|
||||
ValidateMetadataInfo(info);
|
||||
|
||||
Models.Metadata.Input? input = machine.Read<Models.Metadata.Input>(Models.Metadata.Machine.InputKey);
|
||||
Models.Metadata.Input[]? inputs = machine.ReadItemArray<Models.Metadata.Input>(Models.Metadata.Machine.InputKey);
|
||||
Assert.NotNull(inputs);
|
||||
Models.Metadata.Input input = Assert.Single(inputs);
|
||||
ValidateMetadataInput(input);
|
||||
|
||||
Models.Metadata.Media[]? media = machine.Read<Models.Metadata.Media[]>(Models.Metadata.Machine.MediaKey);
|
||||
Models.Metadata.Media[]? media = machine.ReadItemArray<Models.Metadata.Media>(Models.Metadata.Machine.MediaKey);
|
||||
Assert.NotNull(media);
|
||||
Models.Metadata.Media medium = Assert.Single(media);
|
||||
ValidateMetadataMedia(medium);
|
||||
|
||||
Models.Metadata.Part[]? parts = machine.Read<Models.Metadata.Part[]>(Models.Metadata.Machine.PartKey);
|
||||
Models.Metadata.Part[]? parts = machine.ReadItemArray<Models.Metadata.Part>(Models.Metadata.Machine.PartKey);
|
||||
Assert.NotNull(parts);
|
||||
Models.Metadata.Part part = Assert.Single(parts);
|
||||
ValidateMetadataPart(part);
|
||||
|
||||
Models.Metadata.Port[]? ports = machine.Read<Models.Metadata.Port[]>(Models.Metadata.Machine.PortKey);
|
||||
Models.Metadata.Port[]? ports = machine.ReadItemArray<Models.Metadata.Port>(Models.Metadata.Machine.PortKey);
|
||||
Assert.NotNull(ports);
|
||||
Models.Metadata.Port port = Assert.Single(ports);
|
||||
ValidateMetadataPort(port);
|
||||
|
||||
Models.Metadata.RamOption[]? ramOptions = machine.Read<Models.Metadata.RamOption[]>(Models.Metadata.Machine.RamOptionKey);
|
||||
Models.Metadata.RamOption[]? ramOptions = machine.ReadItemArray<Models.Metadata.RamOption>(Models.Metadata.Machine.RamOptionKey);
|
||||
Assert.NotNull(ramOptions);
|
||||
Models.Metadata.RamOption ramOption = Assert.Single(ramOptions);
|
||||
ValidateMetadataRamOption(ramOption);
|
||||
|
||||
Models.Metadata.Release[]? releases = machine.Read<Models.Metadata.Release[]>(Models.Metadata.Machine.ReleaseKey);
|
||||
Models.Metadata.Release[]? releases = machine.ReadItemArray<Models.Metadata.Release>(Models.Metadata.Machine.ReleaseKey);
|
||||
Assert.NotNull(releases);
|
||||
Models.Metadata.Release release = Assert.Single(releases);
|
||||
ValidateMetadataRelease(release);
|
||||
|
||||
Models.Metadata.Rom[]? roms = machine.ReadItemArray<Models.Metadata.Rom>(Models.Metadata.Machine.RomKey);
|
||||
Assert.NotNull(roms);
|
||||
Assert.Equal(2, roms.Length);
|
||||
Models.Metadata.Rom rom = roms[0];
|
||||
ValidateMetadataRom(rom);
|
||||
|
||||
Models.Metadata.Sample[]? samples = machine.ReadItemArray<Models.Metadata.Sample>(Models.Metadata.Machine.SampleKey);
|
||||
Assert.NotNull(samples);
|
||||
Models.Metadata.Sample sample = Assert.Single(samples);
|
||||
ValidateMetadataSample(sample);
|
||||
|
||||
Models.Metadata.SharedFeat[]? sharedFeats = machine.ReadItemArray<Models.Metadata.SharedFeat>(Models.Metadata.Machine.SharedFeatKey);
|
||||
Assert.NotNull(sharedFeats);
|
||||
Models.Metadata.SharedFeat sharedFeat = Assert.Single(sharedFeats);
|
||||
ValidateMetadataSharedFeat(sharedFeat);
|
||||
|
||||
Models.Metadata.Slot[]? slots = machine.ReadItemArray<Models.Metadata.Slot>(Models.Metadata.Machine.SlotKey);
|
||||
Assert.NotNull(slots);
|
||||
Models.Metadata.Slot slot = Assert.Single(slots);
|
||||
ValidateMetadataSlot(slot);
|
||||
|
||||
Models.Metadata.SoftwareList[]? softwareLists = machine.ReadItemArray<Models.Metadata.SoftwareList>(Models.Metadata.Machine.SoftwareListKey);
|
||||
Assert.NotNull(softwareLists);
|
||||
Models.Metadata.SoftwareList softwareList = Assert.Single(softwareLists);
|
||||
ValidateMetadataSoftwareList(softwareList);
|
||||
|
||||
Models.Metadata.Sound[]? sounds = machine.ReadItemArray<Models.Metadata.Sound>(Models.Metadata.Machine.SoundKey);
|
||||
Assert.NotNull(sounds);
|
||||
Models.Metadata.Sound sound = Assert.Single(sounds);
|
||||
ValidateMetadataSound(sound);
|
||||
|
||||
Models.Logiqx.Trurip? trurip = machine.Read<Models.Logiqx.Trurip>(Models.Metadata.Machine.TruripKey);
|
||||
ValidateMetadataTrurip(trurip);
|
||||
|
||||
Models.Metadata.Video[]? videos = machine.ReadItemArray<Models.Metadata.Video>(Models.Metadata.Machine.VideoKey);
|
||||
Assert.NotNull(videos);
|
||||
Models.Metadata.Video video = Assert.Single(videos);
|
||||
ValidateMetadataVideo(video);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataAdjuster(Models.Metadata.Adjuster? adjuster)
|
||||
@@ -632,12 +677,12 @@ namespace SabreTools.DatFiles.Test
|
||||
Models.Metadata.Condition? condition = configuration.Read<Models.Metadata.Condition>(Models.Metadata.Configuration.ConditionKey);
|
||||
ValidateMetadataCondition(condition);
|
||||
|
||||
Models.Metadata.ConfLocation[]? confLocations = configuration.Read<Models.Metadata.ConfLocation[]>(Models.Metadata.Configuration.ConfLocationKey);
|
||||
Models.Metadata.ConfLocation[]? confLocations = configuration.ReadItemArray<Models.Metadata.ConfLocation>(Models.Metadata.Configuration.ConfLocationKey);
|
||||
Assert.NotNull(confLocations);
|
||||
Models.Metadata.ConfLocation? confLocation = Assert.Single(confLocations);
|
||||
ValidateMetadataConfLocation(confLocation);
|
||||
|
||||
Models.Metadata.ConfSetting[]? confSettings = configuration.Read<Models.Metadata.ConfSetting[]>(Models.Metadata.Configuration.ConfSettingKey);
|
||||
Models.Metadata.ConfSetting[]? confSettings = configuration.ReadItemArray<Models.Metadata.ConfSetting>(Models.Metadata.Configuration.ConfSettingKey);
|
||||
Assert.NotNull(confSettings);
|
||||
Models.Metadata.ConfSetting? confSetting = Assert.Single(confSettings);
|
||||
ValidateMetadataConfSetting(confSetting);
|
||||
@@ -679,14 +724,19 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal("ways3", control.ReadString(Models.Metadata.Control.Ways3Key));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataDataArea(DataArea? dataArea)
|
||||
// {
|
||||
// Assert.NotNull(dataArea);
|
||||
// Assert.Equal("big", dataArea.ReadString(Models.Metadata.DataArea.EndiannessKey));
|
||||
// Assert.Equal("name", dataArea.ReadString(Models.Metadata.DataArea.NameKey));
|
||||
// Assert.Equal(12345, dataArea.ReadLong(Models.Metadata.DataArea.SizeKey));
|
||||
// Assert.Equal(64, dataArea.ReadLong(Models.Metadata.DataArea.WidthKey));
|
||||
// }
|
||||
private static void ValidateMetadataDataArea(Models.Metadata.DataArea? dataArea)
|
||||
{
|
||||
Assert.NotNull(dataArea);
|
||||
Assert.Equal("big", dataArea.ReadString(Models.Metadata.DataArea.EndiannessKey));
|
||||
Assert.Equal("name", dataArea.ReadString(Models.Metadata.DataArea.NameKey));
|
||||
Assert.Equal(12345, dataArea.ReadLong(Models.Metadata.DataArea.SizeKey));
|
||||
Assert.Equal(64, dataArea.ReadLong(Models.Metadata.DataArea.WidthKey));
|
||||
|
||||
Models.Metadata.Rom[]? roms = dataArea.ReadItemArray<Models.Metadata.Rom>(Models.Metadata.DataArea.RomKey);
|
||||
Assert.NotNull(roms);
|
||||
Models.Metadata.Rom? rom = Assert.Single(roms);
|
||||
ValidateMetadataRom(rom);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataDevice(Models.Metadata.Device? device)
|
||||
{
|
||||
@@ -697,7 +747,7 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal("tag", device.ReadString(Models.Metadata.Device.TagKey));
|
||||
Assert.Equal("punchtape", device.ReadString(Models.Metadata.Device.DeviceTypeKey));
|
||||
|
||||
Models.Metadata.Extension[]? extensions = device.Read<Models.Metadata.Extension[]>(Models.Metadata.Device.ExtensionKey);
|
||||
Models.Metadata.Extension[]? extensions = device.ReadItemArray<Models.Metadata.Extension>(Models.Metadata.Device.ExtensionKey);
|
||||
Assert.NotNull(extensions);
|
||||
Models.Metadata.Extension? extension = Assert.Single(extensions);
|
||||
ValidateMetadataExtension(extension);
|
||||
@@ -731,12 +781,12 @@ namespace SabreTools.DatFiles.Test
|
||||
Models.Metadata.Condition? condition = dipSwitch.Read<Models.Metadata.Condition>(Models.Metadata.DipSwitch.ConditionKey);
|
||||
ValidateMetadataCondition(condition);
|
||||
|
||||
Models.Metadata.DipLocation[]? dipLocations = dipSwitch.Read<Models.Metadata.DipLocation[]>(Models.Metadata.DipSwitch.DipLocationKey);
|
||||
Models.Metadata.DipLocation[]? dipLocations = dipSwitch.ReadItemArray<Models.Metadata.DipLocation>(Models.Metadata.DipSwitch.DipLocationKey);
|
||||
Assert.NotNull(dipLocations);
|
||||
Models.Metadata.DipLocation? dipLocation = Assert.Single(dipLocations);
|
||||
ValidateMetadataDipLocation(dipLocation);
|
||||
|
||||
Models.Metadata.DipValue[]? dipValues = dipSwitch.Read<Models.Metadata.DipValue[]>(Models.Metadata.DipSwitch.DipValueKey);
|
||||
Models.Metadata.DipValue[]? dipValues = dipSwitch.ReadItemArray<Models.Metadata.DipValue>(Models.Metadata.DipSwitch.DipValueKey);
|
||||
Assert.NotNull(dipValues);
|
||||
Models.Metadata.DipValue? dipValue = Assert.Single(dipValues);
|
||||
ValidateMetadataDipValue(dipValue);
|
||||
@@ -772,11 +822,16 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.True(disk.ReadBool(Models.Metadata.Disk.WritableKey));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataDiskArea(Models.Metadata.DiskArea? diskArea)
|
||||
// {
|
||||
// Assert.NotNull(diskArea);
|
||||
// Assert.Equal("name", diskArea.ReadString(Models.Metadata.DiskArea.NameKey));
|
||||
// }
|
||||
private static void ValidateMetadataDiskArea(Models.Metadata.DiskArea? diskArea)
|
||||
{
|
||||
Assert.NotNull(diskArea);
|
||||
Assert.Equal("name", diskArea.ReadString(Models.Metadata.DiskArea.NameKey));
|
||||
|
||||
Models.Metadata.Disk[]? disks = diskArea.ReadItemArray<Models.Metadata.Disk>(Models.Metadata.DiskArea.DiskKey);
|
||||
Assert.NotNull(disks);
|
||||
Models.Metadata.Disk? disk = Assert.Single(disks);
|
||||
ValidateMetadataDisk(disk);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataDisplay(Models.Metadata.Display? display)
|
||||
{
|
||||
@@ -846,7 +901,7 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.True(input.ReadBool(Models.Metadata.Input.ServiceKey));
|
||||
Assert.True(input.ReadBool(Models.Metadata.Input.TiltKey));
|
||||
|
||||
Models.Metadata.Control[]? controls = input.Read<Models.Metadata.Control[]>(Models.Metadata.Input.ControlKey);
|
||||
Models.Metadata.Control[]? controls = input.ReadItemArray<Models.Metadata.Control>(Models.Metadata.Input.ControlKey);
|
||||
Assert.NotNull(controls);
|
||||
Models.Metadata.Control? control = Assert.Single(controls);
|
||||
ValidateMetadataControl(control);
|
||||
@@ -869,33 +924,39 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal(ZeroHash.SpamSumStr, media.ReadString(Models.Metadata.Media.SpamSumKey));
|
||||
}
|
||||
|
||||
// TODO: Ensure type arrays are validated
|
||||
private static void ValidateMetadataPart(Models.Metadata.Part? part)
|
||||
{
|
||||
Assert.NotNull(part);
|
||||
Assert.Equal("interface", part.ReadString(Models.Metadata.Part.InterfaceKey));
|
||||
Assert.Equal("name", part.ReadString(Models.Metadata.Part.NameKey));
|
||||
|
||||
Models.Metadata.DataArea[]? dataAreas = part.ReadItemArray<Models.Metadata.DataArea>(Models.Metadata.Part.DataAreaKey);
|
||||
Assert.NotNull(dataAreas);
|
||||
Models.Metadata.DataArea? dataArea = Assert.Single(dataAreas);
|
||||
ValidateMetadataDataArea(dataArea);
|
||||
|
||||
Models.Metadata.DiskArea[]? diskAreas = part.ReadItemArray<Models.Metadata.DiskArea>(Models.Metadata.Part.DiskAreaKey);
|
||||
Assert.NotNull(diskAreas);
|
||||
Models.Metadata.DiskArea? diskArea = Assert.Single(diskAreas);
|
||||
ValidateMetadataDiskArea(diskArea);
|
||||
|
||||
Models.Metadata.DipSwitch[]? dipSwitches = part.ReadItemArray<Models.Metadata.DipSwitch>(Models.Metadata.Part.DipSwitchKey);
|
||||
Assert.NotNull(dipSwitches);
|
||||
Models.Metadata.DipSwitch? dipSwitch = Assert.Single(dipSwitches);
|
||||
ValidateMetadataDipSwitch(dipSwitch);
|
||||
|
||||
Models.Metadata.Feature[]? features = part.ReadItemArray<Models.Metadata.Feature>(Models.Metadata.Part.FeatureKey);
|
||||
Assert.NotNull(features);
|
||||
Models.Metadata.Feature? feature = Assert.Single(features);
|
||||
ValidateMetadataFeature(feature);
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataPartFeature(Models.Metadata.PartFeature? partFeature)
|
||||
// {
|
||||
// Assert.NotNull(partFeature);
|
||||
// Assert.Equal("name", partFeature.ReadString(Models.Metadata.Feature.NameKey));
|
||||
// Assert.Equal("imperfect", partFeature.ReadString(Models.Metadata.Feature.OverallKey));
|
||||
// Assert.Equal("imperfect", partFeature.ReadString(Models.Metadata.Feature.StatusKey));
|
||||
// Assert.Equal("protection", partFeature.ReadString(Models.Metadata.Feature.FeatureTypeKey));
|
||||
// Assert.Equal("value", partFeature.ReadString(Models.Metadata.Feature.ValueKey));
|
||||
|
||||
// Part? part = partFeature.Read<Part>(PartFeature.PartKey);
|
||||
// ValidateMetadataPart(part);
|
||||
// }
|
||||
|
||||
private static void ValidateMetadataPort(Models.Metadata.Port? port)
|
||||
{
|
||||
Assert.NotNull(port);
|
||||
Assert.Equal("tag", port.ReadString(Models.Metadata.Port.TagKey));
|
||||
|
||||
Models.Metadata.Analog[]? dipValues = port.Read<Models.Metadata.Analog[]>(Models.Metadata.Port.AnalogKey);
|
||||
Models.Metadata.Analog[]? dipValues = port.ReadItemArray<Models.Metadata.Analog>(Models.Metadata.Port.AnalogKey);
|
||||
Assert.NotNull(dipValues);
|
||||
Models.Metadata.Analog? dipValue = Assert.Single(dipValues);
|
||||
ValidateMetadataAnalog(dipValue);
|
||||
@@ -919,152 +980,153 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal("region", release.ReadString(Models.Metadata.Release.RegionKey));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataRom(Models.Metadata.Rom? rom)
|
||||
// {
|
||||
// Assert.NotNull(rom);
|
||||
// Assert.Equal("album", rom.ReadString(Models.Metadata.Rom.AlbumKey));
|
||||
// Assert.Equal("alt_romname", rom.ReadString(Models.Metadata.Rom.AltRomnameKey));
|
||||
// Assert.Equal("alt_title", rom.ReadString(Models.Metadata.Rom.AltTitleKey));
|
||||
// Assert.Equal("artist", rom.ReadString(Models.Metadata.Rom.ArtistKey));
|
||||
// Assert.Equal("asr_detected_lang", rom.ReadString(Models.Metadata.Rom.ASRDetectedLangKey));
|
||||
// Assert.Equal("asr_detected_lang_conf", rom.ReadString(Models.Metadata.Rom.ASRDetectedLangConfKey));
|
||||
// Assert.Equal("asr_transcribed_lang", rom.ReadString(Models.Metadata.Rom.ASRTranscribedLangKey));
|
||||
// Assert.Equal("bios", rom.ReadString(Models.Metadata.Rom.BiosKey));
|
||||
// Assert.Equal("bitrate", rom.ReadString(Models.Metadata.Rom.BitrateKey));
|
||||
// Assert.Equal("btih", rom.ReadString(Models.Metadata.Rom.BitTorrentMagnetHashKey));
|
||||
// Assert.Equal("cloth_cover_detection_module_version", rom.ReadString(Models.Metadata.Rom.ClothCoverDetectionModuleVersionKey));
|
||||
// Assert.Equal("collection-catalog-number", rom.ReadString(Models.Metadata.Rom.CollectionCatalogNumberKey));
|
||||
// Assert.Equal("comment", rom.ReadString(Models.Metadata.Rom.CommentKey));
|
||||
// Assert.Equal(ZeroHash.CRC32Str, rom.ReadString(Models.Metadata.Rom.CRCKey));
|
||||
// Assert.Equal("creator", rom.ReadString(Models.Metadata.Rom.CreatorKey));
|
||||
// Assert.Equal("date", rom.ReadString(Models.Metadata.Rom.DateKey));
|
||||
// Assert.True(rom.ReadBool(Models.Metadata.Rom.DisposeKey));
|
||||
// Assert.Equal("extension", rom.ReadString(Models.Metadata.Rom.ExtensionKey));
|
||||
// Assert.Equal(12345, rom.ReadLong(Models.Metadata.Rom.FileCountKey));
|
||||
// Assert.True(rom.ReadBool(Models.Metadata.Rom.FileIsAvailableKey));
|
||||
// Assert.Equal("flags", rom.ReadString(Models.Metadata.Rom.FlagsKey));
|
||||
// Assert.Equal("format", rom.ReadString(Models.Metadata.Rom.FormatKey));
|
||||
// Assert.Equal("header", rom.ReadString(Models.Metadata.Rom.HeaderKey));
|
||||
// Assert.Equal("height", rom.ReadString(Models.Metadata.Rom.HeightKey));
|
||||
// Assert.Equal("hocr_char_to_word_hocr_version", rom.ReadString(Models.Metadata.Rom.hOCRCharToWordhOCRVersionKey));
|
||||
// Assert.Equal("hocr_char_to_word_module_version", rom.ReadString(Models.Metadata.Rom.hOCRCharToWordModuleVersionKey));
|
||||
// Assert.Equal("hocr_fts_text_hocr_version", rom.ReadString(Models.Metadata.Rom.hOCRFtsTexthOCRVersionKey));
|
||||
// Assert.Equal("hocr_fts_text_module_version", rom.ReadString(Models.Metadata.Rom.hOCRFtsTextModuleVersionKey));
|
||||
// Assert.Equal("hocr_pageindex_hocr_version", rom.ReadString(Models.Metadata.Rom.hOCRPageIndexhOCRVersionKey));
|
||||
// Assert.Equal("hocr_pageindex_module_version", rom.ReadString(Models.Metadata.Rom.hOCRPageIndexModuleVersionKey));
|
||||
// Assert.True(rom.ReadBool(Models.Metadata.Rom.InvertedKey));
|
||||
// Assert.Equal("mtime", rom.ReadString(Models.Metadata.Rom.LastModifiedTimeKey));
|
||||
// Assert.Equal("length", rom.ReadString(Models.Metadata.Rom.LengthKey));
|
||||
// Assert.Equal("load16_byte", rom.ReadString(Models.Metadata.Rom.LoadFlagKey));
|
||||
// Assert.Equal("matrix_number", rom.ReadString(Models.Metadata.Rom.MatrixNumberKey));
|
||||
// Assert.Equal(ZeroHash.GetString(HashType.MD2), rom.ReadString(Models.Metadata.Rom.MD2Key));
|
||||
// Assert.Equal(ZeroHash.GetString(HashType.MD4), rom.ReadString(Models.Metadata.Rom.MD4Key));
|
||||
// Assert.Equal(ZeroHash.MD5Str, rom.ReadString(Models.Metadata.Rom.MD5Key));
|
||||
// Assert.Null(rom.ReadString(Models.Metadata.Rom.OpenMSXMediaType)); // Omit due to other test
|
||||
// Assert.Equal("merge", rom.ReadString(Models.Metadata.Rom.MergeKey));
|
||||
// Assert.True(rom.ReadBool(Models.Metadata.Rom.MIAKey));
|
||||
// Assert.Equal("name", rom.ReadString(Models.Metadata.Rom.NameKey));
|
||||
// Assert.Equal("ocr", rom.ReadString(Models.Metadata.Rom.TesseractOCRKey));
|
||||
// Assert.Equal("ocr_converted", rom.ReadString(Models.Metadata.Rom.TesseractOCRConvertedKey));
|
||||
// Assert.Equal("ocr_detected_lang", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedLangKey));
|
||||
// Assert.Equal("ocr_detected_lang_conf", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedLangConfKey));
|
||||
// Assert.Equal("ocr_detected_script", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedScriptKey));
|
||||
// Assert.Equal("ocr_detected_script_conf", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedScriptConfKey));
|
||||
// Assert.Equal("ocr_module_version", rom.ReadString(Models.Metadata.Rom.TesseractOCRModuleVersionKey));
|
||||
// Assert.Equal("ocr_parameters", rom.ReadString(Models.Metadata.Rom.TesseractOCRParametersKey));
|
||||
// Assert.Equal("offset", rom.ReadString(Models.Metadata.Rom.OffsetKey));
|
||||
// Assert.True(rom.ReadBool(Models.Metadata.Rom.OptionalKey));
|
||||
// Assert.Equal("original", rom.ReadString(Models.Metadata.Rom.OriginalKey));
|
||||
// Assert.Equal("pdf_module_version", rom.ReadString(Models.Metadata.Rom.PDFModuleVersionKey));
|
||||
// Assert.Equal("preview-image", rom.ReadString(Models.Metadata.Rom.PreviewImageKey));
|
||||
// Assert.Equal("publisher", rom.ReadString(Models.Metadata.Rom.PublisherKey));
|
||||
// Assert.Equal("region", rom.ReadString(Models.Metadata.Rom.RegionKey));
|
||||
// Assert.Equal("remark", rom.ReadString(Models.Metadata.Rom.RemarkKey));
|
||||
// Assert.Equal("rotation", rom.ReadString(Models.Metadata.Rom.RotationKey));
|
||||
// Assert.Equal("serial", rom.ReadString(Models.Metadata.Rom.SerialKey));
|
||||
// Assert.Equal(ZeroHash.SHA1Str, rom.ReadString(Models.Metadata.Rom.SHA1Key));
|
||||
// Assert.Equal(ZeroHash.SHA256Str, rom.ReadString(Models.Metadata.Rom.SHA256Key));
|
||||
// Assert.Equal(ZeroHash.SHA384Str, rom.ReadString(Models.Metadata.Rom.SHA384Key));
|
||||
// Assert.Equal(ZeroHash.SHA512Str, rom.ReadString(Models.Metadata.Rom.SHA512Key));
|
||||
// Assert.Equal(12345, rom.ReadLong(Models.Metadata.Rom.SizeKey));
|
||||
// Assert.True(rom.ReadBool(Models.Metadata.Rom.SoundOnlyKey));
|
||||
// Assert.Equal("source", rom.ReadString(Models.Metadata.Rom.SourceKey));
|
||||
// Assert.Equal(ZeroHash.SpamSumStr, rom.ReadString(Models.Metadata.Rom.SpamSumKey));
|
||||
// Assert.Equal("start", rom.ReadString(Models.Metadata.Rom.StartKey));
|
||||
// Assert.Equal("good", rom.ReadString(Models.Metadata.Rom.StatusKey));
|
||||
// Assert.Equal("summation", rom.ReadString(Models.Metadata.Rom.SummationKey));
|
||||
// Assert.Equal("title", rom.ReadString(Models.Metadata.Rom.TitleKey));
|
||||
// Assert.Equal("track", rom.ReadString(Models.Metadata.Rom.TrackKey));
|
||||
// Assert.Equal("type", rom.ReadString(Models.Metadata.Rom.OpenMSXType));
|
||||
// Assert.Equal("value", rom.ReadString(Models.Metadata.Rom.ValueKey));
|
||||
// Assert.Equal("whisper_asr_module_version", rom.ReadString(Models.Metadata.Rom.WhisperASRModuleVersionKey));
|
||||
// Assert.Equal("whisper_model_hash", rom.ReadString(Models.Metadata.Rom.WhisperModelHashKey));
|
||||
// Assert.Equal("whisper_model_name", rom.ReadString(Models.Metadata.Rom.WhisperModelNameKey));
|
||||
// Assert.Equal("whisper_version", rom.ReadString(Models.Metadata.Rom.WhisperVersionKey));
|
||||
// Assert.Equal("width", rom.ReadString(Models.Metadata.Rom.WidthKey));
|
||||
// Assert.Equal("word_conf_0_10", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval0To10Key));
|
||||
// Assert.Equal("word_conf_11_20", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval11To20Key));
|
||||
// Assert.Equal("word_conf_21_30", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval21To30Key));
|
||||
// Assert.Equal("word_conf_31_40", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval31To40Key));
|
||||
// Assert.Equal("word_conf_41_50", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval41To50Key));
|
||||
// Assert.Equal("word_conf_51_60", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval51To60Key));
|
||||
// Assert.Equal("word_conf_61_70", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval61To70Key));
|
||||
// Assert.Equal("word_conf_71_80", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval71To80Key));
|
||||
// Assert.Equal("word_conf_81_90", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval81To90Key));
|
||||
// Assert.Equal("word_conf_91_100", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval91To100Key));
|
||||
// Assert.Equal(ZeroHash.GetString(HashType.XxHash3), rom.ReadString(Models.Metadata.Rom.xxHash364Key));
|
||||
// Assert.Equal(ZeroHash.GetString(HashType.XxHash128), rom.ReadString(Models.Metadata.Rom.xxHash3128Key));
|
||||
// }
|
||||
private static void ValidateMetadataRom(Models.Metadata.Rom? rom)
|
||||
{
|
||||
Assert.NotNull(rom);
|
||||
Assert.Equal("album", rom.ReadString(Models.Metadata.Rom.AlbumKey));
|
||||
Assert.Equal("alt_romname", rom.ReadString(Models.Metadata.Rom.AltRomnameKey));
|
||||
Assert.Equal("alt_title", rom.ReadString(Models.Metadata.Rom.AltTitleKey));
|
||||
Assert.Equal("artist", rom.ReadString(Models.Metadata.Rom.ArtistKey));
|
||||
Assert.Equal("asr_detected_lang", rom.ReadString(Models.Metadata.Rom.ASRDetectedLangKey));
|
||||
Assert.Equal("asr_detected_lang_conf", rom.ReadString(Models.Metadata.Rom.ASRDetectedLangConfKey));
|
||||
Assert.Equal("asr_transcribed_lang", rom.ReadString(Models.Metadata.Rom.ASRTranscribedLangKey));
|
||||
Assert.Equal("bios", rom.ReadString(Models.Metadata.Rom.BiosKey));
|
||||
Assert.Equal("bitrate", rom.ReadString(Models.Metadata.Rom.BitrateKey));
|
||||
Assert.Equal("btih", rom.ReadString(Models.Metadata.Rom.BitTorrentMagnetHashKey));
|
||||
Assert.Equal("cloth_cover_detection_module_version", rom.ReadString(Models.Metadata.Rom.ClothCoverDetectionModuleVersionKey));
|
||||
Assert.Equal("collection-catalog-number", rom.ReadString(Models.Metadata.Rom.CollectionCatalogNumberKey));
|
||||
Assert.Equal("comment", rom.ReadString(Models.Metadata.Rom.CommentKey));
|
||||
Assert.Equal(ZeroHash.CRC32Str, rom.ReadString(Models.Metadata.Rom.CRCKey));
|
||||
Assert.Equal("creator", rom.ReadString(Models.Metadata.Rom.CreatorKey));
|
||||
Assert.Equal("date", rom.ReadString(Models.Metadata.Rom.DateKey));
|
||||
Assert.True(rom.ReadBool(Models.Metadata.Rom.DisposeKey));
|
||||
Assert.Equal("extension", rom.ReadString(Models.Metadata.Rom.ExtensionKey));
|
||||
Assert.Equal(12345, rom.ReadLong(Models.Metadata.Rom.FileCountKey));
|
||||
Assert.True(rom.ReadBool(Models.Metadata.Rom.FileIsAvailableKey));
|
||||
Assert.Equal("flags", rom.ReadString(Models.Metadata.Rom.FlagsKey));
|
||||
Assert.Equal("format", rom.ReadString(Models.Metadata.Rom.FormatKey));
|
||||
Assert.Equal("header", rom.ReadString(Models.Metadata.Rom.HeaderKey));
|
||||
Assert.Equal("height", rom.ReadString(Models.Metadata.Rom.HeightKey));
|
||||
Assert.Equal("hocr_char_to_word_hocr_version", rom.ReadString(Models.Metadata.Rom.hOCRCharToWordhOCRVersionKey));
|
||||
Assert.Equal("hocr_char_to_word_module_version", rom.ReadString(Models.Metadata.Rom.hOCRCharToWordModuleVersionKey));
|
||||
Assert.Equal("hocr_fts_text_hocr_version", rom.ReadString(Models.Metadata.Rom.hOCRFtsTexthOCRVersionKey));
|
||||
Assert.Equal("hocr_fts_text_module_version", rom.ReadString(Models.Metadata.Rom.hOCRFtsTextModuleVersionKey));
|
||||
Assert.Equal("hocr_pageindex_hocr_version", rom.ReadString(Models.Metadata.Rom.hOCRPageIndexhOCRVersionKey));
|
||||
Assert.Equal("hocr_pageindex_module_version", rom.ReadString(Models.Metadata.Rom.hOCRPageIndexModuleVersionKey));
|
||||
Assert.True(rom.ReadBool(Models.Metadata.Rom.InvertedKey));
|
||||
Assert.Equal("mtime", rom.ReadString(Models.Metadata.Rom.LastModifiedTimeKey));
|
||||
Assert.Equal("length", rom.ReadString(Models.Metadata.Rom.LengthKey));
|
||||
Assert.Equal("load16_byte", rom.ReadString(Models.Metadata.Rom.LoadFlagKey));
|
||||
Assert.Equal("matrix_number", rom.ReadString(Models.Metadata.Rom.MatrixNumberKey));
|
||||
Assert.Equal(ZeroHash.GetString(HashType.MD2), rom.ReadString(Models.Metadata.Rom.MD2Key));
|
||||
Assert.Equal(ZeroHash.GetString(HashType.MD4), rom.ReadString(Models.Metadata.Rom.MD4Key));
|
||||
Assert.Equal(ZeroHash.MD5Str, rom.ReadString(Models.Metadata.Rom.MD5Key));
|
||||
Assert.Null(rom.ReadString(Models.Metadata.Rom.OpenMSXMediaType)); // Omit due to other test
|
||||
Assert.Equal("merge", rom.ReadString(Models.Metadata.Rom.MergeKey));
|
||||
Assert.True(rom.ReadBool(Models.Metadata.Rom.MIAKey));
|
||||
Assert.Equal("name", rom.ReadString(Models.Metadata.Rom.NameKey));
|
||||
Assert.Equal("ocr", rom.ReadString(Models.Metadata.Rom.TesseractOCRKey));
|
||||
Assert.Equal("ocr_converted", rom.ReadString(Models.Metadata.Rom.TesseractOCRConvertedKey));
|
||||
Assert.Equal("ocr_detected_lang", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedLangKey));
|
||||
Assert.Equal("ocr_detected_lang_conf", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedLangConfKey));
|
||||
Assert.Equal("ocr_detected_script", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedScriptKey));
|
||||
Assert.Equal("ocr_detected_script_conf", rom.ReadString(Models.Metadata.Rom.TesseractOCRDetectedScriptConfKey));
|
||||
Assert.Equal("ocr_module_version", rom.ReadString(Models.Metadata.Rom.TesseractOCRModuleVersionKey));
|
||||
Assert.Equal("ocr_parameters", rom.ReadString(Models.Metadata.Rom.TesseractOCRParametersKey));
|
||||
Assert.Equal("offset", rom.ReadString(Models.Metadata.Rom.OffsetKey));
|
||||
Assert.True(rom.ReadBool(Models.Metadata.Rom.OptionalKey));
|
||||
Assert.Equal("original", rom.ReadString(Models.Metadata.Rom.OriginalKey));
|
||||
Assert.Equal("pdf_module_version", rom.ReadString(Models.Metadata.Rom.PDFModuleVersionKey));
|
||||
Assert.Equal("preview-image", rom.ReadString(Models.Metadata.Rom.PreviewImageKey));
|
||||
Assert.Equal("publisher", rom.ReadString(Models.Metadata.Rom.PublisherKey));
|
||||
Assert.Equal("region", rom.ReadString(Models.Metadata.Rom.RegionKey));
|
||||
Assert.Equal("remark", rom.ReadString(Models.Metadata.Rom.RemarkKey));
|
||||
Assert.Equal("rotation", rom.ReadString(Models.Metadata.Rom.RotationKey));
|
||||
Assert.Equal("serial", rom.ReadString(Models.Metadata.Rom.SerialKey));
|
||||
Assert.Equal(ZeroHash.SHA1Str, rom.ReadString(Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal(ZeroHash.SHA256Str, rom.ReadString(Models.Metadata.Rom.SHA256Key));
|
||||
Assert.Equal(ZeroHash.SHA384Str, rom.ReadString(Models.Metadata.Rom.SHA384Key));
|
||||
Assert.Equal(ZeroHash.SHA512Str, rom.ReadString(Models.Metadata.Rom.SHA512Key));
|
||||
Assert.Equal(12345, rom.ReadLong(Models.Metadata.Rom.SizeKey));
|
||||
Assert.True(rom.ReadBool(Models.Metadata.Rom.SoundOnlyKey));
|
||||
Assert.Equal("source", rom.ReadString(Models.Metadata.Rom.SourceKey));
|
||||
Assert.Equal(ZeroHash.SpamSumStr, rom.ReadString(Models.Metadata.Rom.SpamSumKey));
|
||||
Assert.Equal("start", rom.ReadString(Models.Metadata.Rom.StartKey));
|
||||
Assert.Equal("good", rom.ReadString(Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal("summation", rom.ReadString(Models.Metadata.Rom.SummationKey));
|
||||
Assert.Equal("title", rom.ReadString(Models.Metadata.Rom.TitleKey));
|
||||
Assert.Equal("track", rom.ReadString(Models.Metadata.Rom.TrackKey));
|
||||
Assert.Equal("type", rom.ReadString(Models.Metadata.Rom.OpenMSXType));
|
||||
Assert.Equal("value", rom.ReadString(Models.Metadata.Rom.ValueKey));
|
||||
Assert.Equal("whisper_asr_module_version", rom.ReadString(Models.Metadata.Rom.WhisperASRModuleVersionKey));
|
||||
Assert.Equal("whisper_model_hash", rom.ReadString(Models.Metadata.Rom.WhisperModelHashKey));
|
||||
Assert.Equal("whisper_model_name", rom.ReadString(Models.Metadata.Rom.WhisperModelNameKey));
|
||||
Assert.Equal("whisper_version", rom.ReadString(Models.Metadata.Rom.WhisperVersionKey));
|
||||
Assert.Equal("width", rom.ReadString(Models.Metadata.Rom.WidthKey));
|
||||
Assert.Equal("word_conf_0_10", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval0To10Key));
|
||||
Assert.Equal("word_conf_11_20", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval11To20Key));
|
||||
Assert.Equal("word_conf_21_30", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval21To30Key));
|
||||
Assert.Equal("word_conf_31_40", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval31To40Key));
|
||||
Assert.Equal("word_conf_41_50", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval41To50Key));
|
||||
Assert.Equal("word_conf_51_60", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval51To60Key));
|
||||
Assert.Equal("word_conf_61_70", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval61To70Key));
|
||||
Assert.Equal("word_conf_71_80", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval71To80Key));
|
||||
Assert.Equal("word_conf_81_90", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval81To90Key));
|
||||
Assert.Equal("word_conf_91_100", rom.ReadString(Models.Metadata.Rom.WordConfidenceInterval91To100Key));
|
||||
Assert.Equal(ZeroHash.GetString(HashType.XxHash3), rom.ReadString(Models.Metadata.Rom.xxHash364Key));
|
||||
Assert.Equal(ZeroHash.GetString(HashType.XxHash128), rom.ReadString(Models.Metadata.Rom.xxHash3128Key));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataSample(Models.Metadata.Sample? sample)
|
||||
// {
|
||||
// Assert.NotNull(sample);
|
||||
// Assert.Equal("name", sample.ReadString(Models.Metadata.Sample.NameKey));
|
||||
// }
|
||||
private static void ValidateMetadataSample(Models.Metadata.Sample? sample)
|
||||
{
|
||||
Assert.NotNull(sample);
|
||||
Assert.Equal("name", sample.ReadString(Models.Metadata.Sample.NameKey));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataSharedFeat(Models.Metadata.SharedFeat? sharedFeat)
|
||||
// {
|
||||
// Assert.NotNull(sharedFeat);
|
||||
// Assert.Equal("name", sharedFeat.ReadString(Models.Metadata.SharedFeat.NameKey));
|
||||
// Assert.Equal("value", sharedFeat.ReadString(Models.Metadata.SharedFeat.ValueKey));
|
||||
// }
|
||||
private static void ValidateMetadataSharedFeat(Models.Metadata.SharedFeat? sharedFeat)
|
||||
{
|
||||
Assert.NotNull(sharedFeat);
|
||||
Assert.Equal("name", sharedFeat.ReadString(Models.Metadata.SharedFeat.NameKey));
|
||||
Assert.Equal("value", sharedFeat.ReadString(Models.Metadata.SharedFeat.ValueKey));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataSlot(Models.Metadata.Slot? slot)
|
||||
// {
|
||||
// Assert.NotNull(slot);
|
||||
// Assert.Equal("name", slot.ReadString(Models.Metadata.Slot.NameKey));
|
||||
private static void ValidateMetadataSlot(Models.Metadata.Slot? slot)
|
||||
{
|
||||
Assert.NotNull(slot);
|
||||
Assert.Equal("name", slot.ReadString(Models.Metadata.Slot.NameKey));
|
||||
|
||||
// SlotOption[]? slotOptions = slot.Read<SlotOption[]>(Models.Metadata.Slot.SlotOptionKey);
|
||||
// Assert.NotNull(slotOptions);
|
||||
// SlotOption? slotOption = Assert.Single(slotOptions);
|
||||
// ValidateMetadataSlotOption(slotOption);
|
||||
// }
|
||||
Models.Metadata.SlotOption[]? slotOptions = slot.ReadItemArray<Models.Metadata.SlotOption>(Models.Metadata.Slot.SlotOptionKey);
|
||||
Assert.NotNull(slotOptions);
|
||||
Models.Metadata.SlotOption? slotOption = Assert.Single(slotOptions);
|
||||
ValidateMetadataSlotOption(slotOption);
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataSlotOption(Models.Metadata.SlotOption? slotOption)
|
||||
// {
|
||||
// Assert.NotNull(slotOption);
|
||||
// Assert.True(slotOption.ReadBool(Models.Metadata.SlotOption.DefaultKey));
|
||||
// Assert.Equal("devname", slotOption.ReadString(Models.Metadata.SlotOption.DevNameKey));
|
||||
// Assert.Equal("name", slotOption.ReadString(Models.Metadata.SlotOption.NameKey));
|
||||
// }
|
||||
private static void ValidateMetadataSlotOption(Models.Metadata.SlotOption? slotOption)
|
||||
{
|
||||
Assert.NotNull(slotOption);
|
||||
Assert.True(slotOption.ReadBool(Models.Metadata.SlotOption.DefaultKey));
|
||||
Assert.Equal("devname", slotOption.ReadString(Models.Metadata.SlotOption.DevNameKey));
|
||||
Assert.Equal("name", slotOption.ReadString(Models.Metadata.SlotOption.NameKey));
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataSoftwareList(Models.Metadata.SoftwareList? softwareList)
|
||||
// {
|
||||
// Assert.NotNull(softwareList);
|
||||
// Assert.Equal("description", softwareList.ReadString(Models.Metadata.SoftwareList.DescriptionKey));
|
||||
// Assert.Equal("filter", softwareList.ReadString(Models.Metadata.SoftwareList.FilterKey));
|
||||
// Assert.Equal("name", softwareList.ReadString(Models.Metadata.SoftwareList.NameKey));
|
||||
// Assert.Equal("notes", softwareList.ReadString(Models.Metadata.SoftwareList.NotesKey));
|
||||
// // TODO: Figure out why Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
|
||||
// Assert.Equal("original", softwareList.ReadString(Models.Metadata.SoftwareList.StatusKey));
|
||||
// Assert.Equal("tag", softwareList.ReadString(Models.Metadata.SoftwareList.TagKey));
|
||||
// }
|
||||
private static void ValidateMetadataSoftwareList(Models.Metadata.SoftwareList? softwareList)
|
||||
{
|
||||
Assert.NotNull(softwareList);
|
||||
Assert.Equal("description", softwareList.ReadString(Models.Metadata.SoftwareList.DescriptionKey));
|
||||
Assert.Equal("filter", softwareList.ReadString(Models.Metadata.SoftwareList.FilterKey));
|
||||
Assert.Equal("name", softwareList.ReadString(Models.Metadata.SoftwareList.NameKey));
|
||||
Assert.Equal("notes", softwareList.ReadString(Models.Metadata.SoftwareList.NotesKey));
|
||||
Assert.Equal("original", softwareList.ReadString(Models.Metadata.SoftwareList.StatusKey));
|
||||
Assert.Equal("tag", softwareList.ReadString(Models.Metadata.SoftwareList.TagKey));
|
||||
|
||||
// private static void ValidateMetadataSound(Models.Metadata.Sound? sound)
|
||||
// {
|
||||
// Assert.NotNull(sound);
|
||||
// Assert.Equal(12345, sound.ReadLong(Models.Metadata.Sound.ChannelsKey));
|
||||
// }
|
||||
// TODO: Figure out why Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
|
||||
}
|
||||
|
||||
private static void ValidateMetadataSound(Models.Metadata.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal(12345, sound.ReadLong(Models.Metadata.Sound.ChannelsKey));
|
||||
}
|
||||
|
||||
private static void ValidateMetadataTrurip(Models.Logiqx.Trurip? trurip)
|
||||
{
|
||||
@@ -1079,23 +1141,23 @@ namespace SabreTools.DatFiles.Test
|
||||
Assert.Equal("score", trurip.Score);
|
||||
Assert.Equal("players", trurip.Players);
|
||||
Assert.Equal("enabled", trurip.Enabled);
|
||||
Assert.Equal("True", trurip.CRC);
|
||||
Assert.Equal("source", trurip.Source);
|
||||
Assert.Equal("yes", trurip.CRC);
|
||||
Assert.Equal("sourcefile", trurip.Source);
|
||||
Assert.Equal("cloneof", trurip.CloneOf);
|
||||
Assert.Equal("relatedto", trurip.RelatedTo);
|
||||
}
|
||||
|
||||
// private static void ValidateMetadataVideo(Models.Metadata.Video? video)
|
||||
// {
|
||||
// Assert.NotNull(video);
|
||||
// Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.AspectXKey));
|
||||
// Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.AspectYKey));
|
||||
// Assert.Equal("vector", video.ReadString(Models.Metadata.Video.DisplayTypeKey));
|
||||
// Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.HeightKey));
|
||||
// Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.RefreshKey));
|
||||
// Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.WidthKey));
|
||||
// Assert.Equal(90, video.ReadLong(Models.Metadata.Video.RotateKey));
|
||||
// }
|
||||
private static void ValidateMetadataVideo(Models.Metadata.Video? video)
|
||||
{
|
||||
Assert.NotNull(video);
|
||||
Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.AspectXKey));
|
||||
Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.AspectYKey));
|
||||
Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.HeightKey));
|
||||
Assert.Equal("vertical", video.ReadString(Models.Metadata.Video.OrientationKey));
|
||||
Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.RefreshKey));
|
||||
Assert.Equal("vector", video.ReadString(Models.Metadata.Video.ScreenKey));
|
||||
Assert.Equal(12345, video.ReadLong(Models.Metadata.Video.WidthKey));
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1076,6 +1076,18 @@ namespace SabreTools.DatFiles
|
||||
videoItem[Models.Metadata.Video.ScreenKey] = displayItem.ReadString(Models.Metadata.Display.DisplayTypeKey).AsEnumValue<DisplayType>().AsStringValue();
|
||||
videoItem[Models.Metadata.Video.WidthKey] = displayItem.ReadLong(Models.Metadata.Display.WidthKey).ToString();
|
||||
|
||||
switch (displayItem.ReadLong(Models.Metadata.Display.RotateKey))
|
||||
{
|
||||
case 0:
|
||||
case 180:
|
||||
videoItem[Models.Metadata.Video.OrientationKey] = "horizontal";
|
||||
break;
|
||||
case 90:
|
||||
case 270:
|
||||
videoItem[Models.Metadata.Video.OrientationKey] = "vertical";
|
||||
break;
|
||||
}
|
||||
|
||||
EnsureMachineKey<Models.Metadata.Video?>(machine, Models.Metadata.Machine.VideoKey);
|
||||
AppendToMachineKey(machine, Models.Metadata.Machine.VideoKey, videoItem);
|
||||
}
|
||||
@@ -1094,14 +1106,8 @@ namespace SabreTools.DatFiles
|
||||
var controls = item.GetFieldValue<DatItems.Formats.Control[]?>(Models.Metadata.Input.ControlKey);
|
||||
if (controls != null)
|
||||
{
|
||||
List<Models.Metadata.Control> controlItems = [];
|
||||
foreach (var control in controls)
|
||||
{
|
||||
var controlItem = control.GetInternalClone();
|
||||
controlItems.Add(controlItem);
|
||||
}
|
||||
|
||||
inputItem[Models.Metadata.Input.ControlKey] = controlItems.ToArray();
|
||||
Models.Metadata.Control[] controlItems = Array.ConvertAll(controls, control => control.GetInternalClone());
|
||||
inputItem[Models.Metadata.Input.ControlKey] = controlItems;
|
||||
}
|
||||
|
||||
return inputItem;
|
||||
@@ -1118,14 +1124,8 @@ namespace SabreTools.DatFiles
|
||||
var analogs = item.GetFieldValue<DatItems.Formats.Analog[]?>(Models.Metadata.Port.AnalogKey);
|
||||
if (analogs != null)
|
||||
{
|
||||
List<Models.Metadata.Analog> analogItems = [];
|
||||
foreach (var analog in analogs)
|
||||
{
|
||||
var extensionItem = analog.GetInternalClone();
|
||||
analogItems.Add(extensionItem);
|
||||
}
|
||||
|
||||
slotItem[Models.Metadata.Port.AnalogKey] = analogItems.ToArray();
|
||||
Models.Metadata.Analog[] analogItems = Array.ConvertAll(analogs, analog => analog.GetInternalClone());
|
||||
slotItem[Models.Metadata.Port.AnalogKey] = analogItems;
|
||||
}
|
||||
|
||||
return slotItem;
|
||||
@@ -1242,14 +1242,8 @@ namespace SabreTools.DatFiles
|
||||
var slotOptions = item.GetFieldValue<DatItems.Formats.SlotOption[]?>(Models.Metadata.Slot.SlotOptionKey);
|
||||
if (slotOptions != null)
|
||||
{
|
||||
List<Models.Metadata.SlotOption> slotOptionItems = [];
|
||||
foreach (var slotOption in slotOptions)
|
||||
{
|
||||
var extensionItem = slotOption.GetInternalClone();
|
||||
slotOptionItems.Add(extensionItem);
|
||||
}
|
||||
|
||||
slotItem[Models.Metadata.Slot.SlotOptionKey] = slotOptionItems.ToArray();
|
||||
Models.Metadata.SlotOption[] slotOptionItems = Array.ConvertAll(slotOptions, slotOption => slotOption.GetInternalClone());
|
||||
slotItem[Models.Metadata.Slot.SlotOptionKey] = slotOptionItems;
|
||||
}
|
||||
|
||||
return slotItem;
|
||||
|
||||
@@ -608,6 +608,7 @@ namespace SabreTools.DatItems
|
||||
/// <summary>
|
||||
/// Get a clone of the current internal model
|
||||
/// </summary>
|
||||
/// TODO: Make virtual so individuals can handle conversion
|
||||
public T GetInternalClone() => (_internal.Clone() as T)!;
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user