Skip to content

Commit

Permalink
reformat_slices: Add tests for Ellipsis.
Browse files Browse the repository at this point in the history
  • Loading branch information
jakirkham committed Dec 5, 2016
1 parent ccd66a0 commit 6eab36e
Showing 1 changed file with 120 additions and 1 deletion.
121 changes: 120 additions & 1 deletion tests/test_kenjutsu.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,28 @@ def test_reformat_slices(self):

self.assertEqual(
str(e.exception),
"There must be an equal number of slices to lengths."
"Shape must be the same as the number of slices."
)

with self.assertRaises(ValueError) as e:
kenjutsu.reformat_slices(
(slice(None), slice(None), Ellipsis), (1,)
)

self.assertEqual(
str(e.exception),
"Shape must be as large or larger than the number of slices"
" without the Ellipsis."
)

with self.assertRaises(ValueError) as e:
kenjutsu.reformat_slices(
(Ellipsis, Ellipsis), (1,)
)

self.assertEqual(
str(e.exception),
"Only one Ellipsis is permitted. Found multiple."
)

rf_slice = kenjutsu.reformat_slices(slice(None))
Expand All @@ -127,6 +148,18 @@ def test_reformat_slices(self):
(slice(0, None, 1),)
)

rf_slice = kenjutsu.reformat_slices(Ellipsis)
self.assertEqual(
rf_slice,
(Ellipsis,)
)

rf_slice = kenjutsu.reformat_slices(Ellipsis, 10)
self.assertEqual(
rf_slice,
(slice(0, 10, 1),)
)

rf_slice = kenjutsu.reformat_slices(slice(None), 10)
self.assertEqual(
rf_slice,
Expand Down Expand Up @@ -175,6 +208,92 @@ def test_reformat_slices(self):
)
)

rf_slice = kenjutsu.reformat_slices(
Ellipsis,
(2, 3, 4, 5)
)
self.assertEqual(
rf_slice,
(
slice(0, 2, 1),
slice(0, 3, 1),
slice(0, 4, 1),
slice(0, 5, 1)
)
)

rf_slice = kenjutsu.reformat_slices(
(
Ellipsis,
slice(0, 1)
),
(2, 3, 4, 5)
)
self.assertEqual(
rf_slice,
(
slice(0, 2, 1),
slice(0, 3, 1),
slice(0, 4, 1),
slice(0, 1, 1)
)
)

rf_slice = kenjutsu.reformat_slices(
(
slice(0, 1),
Ellipsis
),
(2, 3, 4, 5)
)
self.assertEqual(
rf_slice,
(
slice(0, 1, 1),
slice(0, 3, 1),
slice(0, 4, 1),
slice(0, 5, 1)
)
)

rf_slice = kenjutsu.reformat_slices(
(
slice(0, 1),
Ellipsis,
slice(0, 1)
),
(2, 3, 4, 5)
)
self.assertEqual(
rf_slice,
(
slice(0, 1, 1),
slice(0, 3, 1),
slice(0, 4, 1),
slice(0, 1, 1)
)
)

rf_slice = kenjutsu.reformat_slices(
(
slice(0, 1),
Ellipsis,
slice(0, 1),
slice(0, 1),
slice(0, 1)
),
(2, 3, 4, 5)
)
self.assertEqual(
rf_slice,
(
slice(0, 1, 1),
slice(0, 1, 1),
slice(0, 1, 1),
slice(0, 1, 1)
)
)


def test_len_slice(self):
with self.assertRaises(kenjutsu.UnknownSliceLengthException):
Expand Down

0 comments on commit 6eab36e

Please sign in to comment.