Automatically expand multi-value args and add ncase type to min/max

This commit is contained in:
Bob Swift
2022-05-29 09:11:00 -06:00
parent 0c1d32bd4c
commit 56a4272252
2 changed files with 54 additions and 11 deletions

View File

@@ -2242,14 +2242,28 @@ class ScriptParserTest(PicardTestCase):
self.assertScriptResultEquals("$min(float,2,3)", "2.0", context)
self.assertScriptResultEquals("$min(float,2,1,3)", "1.0", context)
self.assertScriptResultEquals("$min(float,2,1.1,3)", "1.1", context)
self.assertScriptResultEquals("$min(float,1.11,1.1,1.111)", "1.1", context)
self.assertScriptResultEquals("$min(float,2,1,a)", "", context)
self.assertScriptResultEquals("$min(float,2,,1)", "", context)
self.assertScriptResultEquals("$min(float,2,1,)", "", context)
# Test case sensitive arguments
# Test 'ncase' processing
self.assertScriptResultEquals("$min(ncase,a,B)", "a", context)
self.assertScriptResultEquals("$min(ncase,c,A,b)", "A", context)
# Test case sensitive arguments with 'text' processing
self.assertScriptResultEquals("$min(text,A,a)", "A", context)
self.assertScriptResultEquals("$min(text,a,B)", "B", context)
# Test multi-value arguments
context['mv'] = ['y', 'z', 'x']
self.assertScriptResultEquals("$min(text,%mv%)", "x", context)
self.assertScriptResultEquals("$min(text,y; z; x)", "x", context)
self.assertScriptResultEquals("$min(text,a,%mv%)", "a", context)
self.assertScriptResultEquals("$min(text,a,y; z; x)", "a", context)
self.assertScriptResultEquals("$min(int,5,4; 6; 3)", "3", context)
self.assertScriptResultEquals("$min(float,5.9,4.2; 6; 3.35)", "3.35", context)
# Test invalid processing types
self.assertScriptResultEquals("$min(,A,a)", "", context)
self.assertScriptResultEquals("$min(unknown,a,B)", "", context)
@@ -2297,14 +2311,28 @@ class ScriptParserTest(PicardTestCase):
self.assertScriptResultEquals("$max(float,2,3)", "3.0", context)
self.assertScriptResultEquals("$max(float,2,1.1,3)", "3.0", context)
self.assertScriptResultEquals("$max(float,2,1,3.1)", "3.1", context)
self.assertScriptResultEquals("$max(float,2.1,2.11,2.111)", "2.111", context)
self.assertScriptResultEquals("$max(float,2,1,a)", "", context)
self.assertScriptResultEquals("$max(float,2,,1)", "", context)
self.assertScriptResultEquals("$max(float,2,1,)", "", context)
# Test case sensitive arguments
# Test 'ncase' processing
self.assertScriptResultEquals("$max(ncase,a,B)", "B", context)
self.assertScriptResultEquals("$max(ncase,c,a,B)", "c", context)
# Test case sensitive arguments with 'text' processing
self.assertScriptResultEquals("$max(text,A,a)", "a", context)
self.assertScriptResultEquals("$max(text,a,B)", "a", context)
# Test multi-value arguments
context['mv'] = ['y', 'z', 'x']
self.assertScriptResultEquals("$max(text,%mv%)", "z", context)
self.assertScriptResultEquals("$max(text,y; z; x)", "z", context)
self.assertScriptResultEquals("$max(text,a,%mv%)", "z", context)
self.assertScriptResultEquals("$max(text,a,y; z; x)", "z", context)
self.assertScriptResultEquals("$max(int,5,4; 6; 3)", "6", context)
self.assertScriptResultEquals("$max(float,5.9,4.2; 6; 3.35)", "6.0", context)
# Test invalid processing types
self.assertScriptResultEquals("$max(,A,a)", "", context)
self.assertScriptResultEquals("$max(unknown,a,B)", "", context)