Skip to content

Commit 98e8ae1

Browse files
author
Sameera
committed
adding tests and fixing functions
1 parent f141395 commit 98e8ae1

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

src/future/builtins/new_min_max.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,19 @@ def new_min_max(_builtin_func, *args, **kwargs):
1919
"""
2020

2121
for key, _ in kwargs.items():
22-
if key not in set(['key', 'default']):
22+
if key not in {'key', 'default'}:
2323
raise TypeError('Illegal argument %s', key)
2424

25+
if len(args) == 0:
26+
raise TypeError
27+
2528
if len(args) != 1 and kwargs.get('default') is not None:
2629
raise TypeError
2730

2831
if len(args) == 1:
29-
if len(args[0]) == 0:
32+
try:
33+
next(iter(args[0]))
34+
except StopIteration:
3035
if kwargs.get('default') is not None:
3136
return kwargs.get('default')
3237
else:

tests/test_future/test_builtins.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from __future__ import absolute_import, division, print_function, unicode_literals
77
from future.builtins import (bytes, dict, int, range, round, str, super,
88
ascii, chr, hex, input, next, oct, open, pow,
9-
filter, map, zip)
9+
filter, map, zip, min, max)
1010

1111
from future.utils import PY3, exec_, native_str, implements_iterator
1212
from future.tests.base import (unittest, skip26, expectedFailurePY2,
@@ -138,6 +138,7 @@ def test_round(self):
138138
self.assertEqual(round(0.125000001, 2), 0.13)
139139
self.assertEqual(round(123.5, 0), 124.0)
140140
self.assertEqual(round(123.5), 124)
141+
self.assertEqual(round(123.5), 124)
141142
self.assertEqual(round(12.35, 2), 12.35)
142143
self.assertEqual(round(12.35, 1), 12.3)
143144
self.assertEqual(round(12.35, 0), 12.0)
@@ -1099,6 +1100,13 @@ def test_max(self):
10991100
self.assertEqual(max(data, key=f),
11001101
sorted(reversed(data), key=f)[-1])
11011102

1103+
self.assertEqual(max([], default=5), 5)
1104+
with self.assertRaises(TypeError):
1105+
max(None, default=5)
1106+
with self.assertRaises(TypeError):
1107+
max(1, 2, default=0)
1108+
self.assertEqual(max([], default=0), 0)
1109+
11021110
def test_min(self):
11031111
self.assertEqual(min('123123'), '1')
11041112
self.assertEqual(min(1, 2, 3), 1)
@@ -1140,6 +1148,12 @@ def __getitem__(self, index):
11401148
f = keys.__getitem__
11411149
self.assertEqual(min(data, key=f),
11421150
sorted(data, key=f)[0])
1151+
self.assertEqual(min([], default=5), 5)
1152+
self.assertEqual(min([], default=0), 0)
1153+
with self.assertRaises(TypeError):
1154+
max(None, default=5)
1155+
with self.assertRaises(TypeError):
1156+
max(1, 2, default=0)
11431157

11441158
def test_next(self):
11451159
it = iter(range(2))

0 commit comments

Comments
 (0)