diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-02-27 06:16:23 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-02-27 06:16:23 +0800 |
| commit | 748c8a3353df887ee4b01e0e1327aa95c1c7225a (patch) | |
| tree | ab84ee3fd6af53e8b03e73f9bdc5177f10606e4a /systems/sheet/src/mapping/parse_test.rs | |
| parent | 53141f612ab43136b4b1db7406ac71bb97284460 (diff) | |
Add remote flag to IndexSource and parsing support
Diffstat (limited to 'systems/sheet/src/mapping/parse_test.rs')
| -rw-r--r-- | systems/sheet/src/mapping/parse_test.rs | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/systems/sheet/src/mapping/parse_test.rs b/systems/sheet/src/mapping/parse_test.rs new file mode 100644 index 0000000..a411360 --- /dev/null +++ b/systems/sheet/src/mapping/parse_test.rs @@ -0,0 +1,252 @@ +#[cfg(test)] +mod tests { + use crate::{ + index_source::IndexSource, + mapping::{LocalMapping, LocalMappingForward}, + }; + + /// Helper macro for comparing two LocalMapping instances + /// Checks equality of the mappings themselves, their forward fields, and their index sources + macro_rules! mapping_eq { + ($a:expr, $b:expr) => { + assert_eq!($a, $b); + assert_eq!($a.forward, $b.forward); + assert_eq!($a.index_source(), $b.index_source()); + }; + } + + #[test] + fn test_local_mapping_parse() { + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Latest, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" => \"1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Version { version: 2u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" == \"1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Ref { + sheet_name: "ref".to_string(), + }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" => \"1/2\" => \"ref\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Version { version: 3u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" => \"1/2\" == \"3\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Latest, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" => \"~1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Version { version: 2u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" == \"~1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Ref { + sheet_name: "ref".to_string(), + }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" => \"~1/2\" => \"ref\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Version { version: 3u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" => \"~1/2\" == \"3\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Latest, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=>\"1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Version { version: 2u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"==\"1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Ref { + sheet_name: "ref".to_string(), + }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=>\"1/2\"=>\"ref\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Version { version: 3u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=>\"1/2\"==\"3\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Latest, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=>\"~1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Version { version: 2u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"==\"~1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Ref { + sheet_name: "ref".to_string(), + }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=>\"~1/2\"=>\"ref\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Version { version: 3u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=>\"~1/2\"==\"3\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + // + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Latest, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" =>\"1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Version { version: 2u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"== \"1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Ref { + sheet_name: "ref".to_string(), + }, + ) + .unwrap(); + let local_mapping_gen = + LocalMapping::try_from("\"A.png\" => \"1/2\" =>\"ref\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(true, 1u32, 2u16), + LocalMappingForward::Version { version: 3u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=> \"1/2\" ==\"3\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Latest, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from(" \"A.png\"=>\"~1/2\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Version { version: 2u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\" ==\"~1/2\" ").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Ref { + sheet_name: "ref".to_string(), + }, + ) + .unwrap(); + let local_mapping_gen = + LocalMapping::try_from("\"A.png\"=> \"~1/2\"=> \"ref\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + + let local_mapping = LocalMapping::new( + vec!["A.png".to_string()], + IndexSource::new(false, 1u32, 2u16), + LocalMappingForward::Version { version: 3u16 }, + ) + .unwrap(); + let local_mapping_gen = LocalMapping::try_from("\"A.png\"=> \"~1/2\" ==\"3\"").unwrap(); + mapping_eq!(local_mapping, local_mapping_gen); + } +} |
