Решение на Четири функции от Кристиян Якимов

Обратно към всички решения

Към профила на Кристиян Якимов

Резултати

  • 4 точки от тестове
  • 0 бонус точки
  • 4 точки общо
  • 13 успешни тест(а)
  • 7 неуспешни тест(а)

Код

def groupby(func, seq):
result={}
for item in seq:
result.setdefault(func(item), []).append(item)
return result
def compose(f, g):
return lambda *args: f(g(*args))
def iterate(func):
next_compose_function = func
yield lambda x: x
while True:
yield next_compose_function
next_compose_function = compose(func, next_compose_function)
def zip_with(func, *iterables):
min_length = min(map(len, iterables))
return [x for i in range(min_length)
for x in [func(*(map(lambda k: k[i], iterables)))]]

Лог от изпълнението

EEEEE..........EE...
======================================================================
ERROR: test_cache_cache_is_not_global (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 129, in test_cache_cache_is_not_global
    cached_double1 = solution.cache(double, 3)
AttributeError: 'module' object has no attribute 'cache'

======================================================================
ERROR: test_cache_call_is_cached (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 116, in test_cache_call_is_cached
    cached_double = solution.cache(double, 10)
AttributeError: 'module' object has no attribute 'cache'

======================================================================
ERROR: test_cache_function_with_vargs (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 159, in test_cache_function_with_vargs
    cached_sum = solution.cache(sum_varargs, 10)
AttributeError: 'module' object has no attribute 'cache'

======================================================================
ERROR: test_cache_no_cache (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 103, in test_cache_no_cache
    cached_double = solution.cache(double, 0)
AttributeError: 'module' object has no attribute 'cache'

======================================================================
ERROR: test_cache_size_is_respected (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 143, in test_cache_size_is_respected
    cached_double = solution.cache(double, 2)
AttributeError: 'module' object has no attribute 'cache'

======================================================================
ERROR: test_zip_with_empty (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 66, in test_zip_with_empty
    actual = solution.zip_with(lambda x: x)
  File "/tmp/d20130408-29081-1viunlc/solution.py", line 18, in zip_with
    min_length = min(map(len, iterables))
ValueError: min() arg is an empty sequence

======================================================================
ERROR: test_zip_with_infinite_sequence (test.SecondHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20130408-29081-1viunlc/test.py", line 81, in test_zip_with_infinite_sequence
    actual = solution.zip_with(lambda x, y, z: x + y + z, first_names, spaces, last_names)
  File "/tmp/d20130408-29081-1viunlc/solution.py", line 18, in zip_with
    min_length = min(map(len, iterables))
TypeError: object of type 'itertools.repeat' has no len()

----------------------------------------------------------------------
Ran 20 tests in 0.015s

FAILED (errors=7)

История (1 версия и 0 коментара)

Кристиян обнови решението на 15.03.2013 21:53 (преди около 11 години)

+def groupby(func, seq):
+ result={}
+ for item in seq:
+ result.setdefault(func(item), []).append(item)
+ return result
+
+def compose(f, g):
+ return lambda *args: f(g(*args))
+
+def iterate(func):
+ next_compose_function = func
+ yield lambda x: x
+ while True:
+ yield next_compose_function
+ next_compose_function = compose(func, next_compose_function)
+
+def zip_with(func, *iterables):
+ min_length = min(map(len, iterables))
+ return [x for i in range(min_length)
+ for x in [func(*(map(lambda k: k[i], iterables)))]]