Skip to content

Commit d04ea50

Browse files
committed
Added unit tests for folded argument classes.
1 parent 67d8811 commit d04ea50

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from nose.tools import assert_equal, assert_true
2+
from numpy.testing import assert_array_equal
3+
4+
from smartdispatch.argument import EnumerationFoldedArgument, RangeFoldedArgument
5+
import smartdispatch
6+
7+
import re
8+
import os
9+
import unittest
10+
11+
12+
def test_enumeration_folded_argument():
13+
# Test valid enumeration folded arguments
14+
arg = EnumerationFoldedArgument()
15+
folded_arguments = [("[]", [""]),
16+
("[1]", ["1"]),
17+
("[1 ]", ["1", ""]),
18+
("[1 2 3]", ["1", "2", "3"]),
19+
]
20+
21+
for folded_argument, unfolded_arguments in folded_arguments:
22+
match = re.match(arg.regex, folded_argument)
23+
assert_true(match is not None)
24+
assert_array_equal(arg.unfold(match.group()), unfolded_arguments)
25+
26+
# Test invalid enumeration folded arguments
27+
assert_true(re.match(arg.regex, "[1 2 3") is None)
28+
29+
30+
def test_range_folded_argument():
31+
arg = RangeFoldedArgument()
32+
folded_arguments = [("[1:4]", ["1", "2", "3"]),
33+
("[1:4:2]", ["1", "3"]),
34+
]
35+
36+
for folded_argument, unfolded_arguments in folded_arguments:
37+
match = re.match(arg.regex, folded_argument)
38+
assert_true(match is not None)
39+
assert_array_equal(arg.unfold(match.group()), unfolded_arguments)

0 commit comments

Comments
 (0)