diff --git a/src/ex2_dictionary.md b/src/ex2_dictionary.md new file mode 100644 index 0000000..8917911 --- /dev/null +++ b/src/ex2_dictionary.md @@ -0,0 +1,7 @@ +!!!autogeneriert!!! +## exercise 2 - dictionary - (0/20) + +### a) calculate_price (0/10) + + +### b) by_amount (0/10) diff --git a/src/ex2_dictionary.py b/src/ex2_dictionary.py index 4e4bac0..ef19d95 100644 --- a/src/ex2_dictionary.py +++ b/src/ex2_dictionary.py @@ -1,5 +1,8 @@ +import os + # DO NOT CHANGE THE IMPORTS! + def calculate_price(articles: dict[str, int], cart: dict[str, int]) -> float: price = 0 for name, amount in cart.items(): @@ -29,5 +32,3 @@ if __name__ == "__main__": assert by_amount(articles_dict, cart_dict) == { 2: ['apples', 'oranges'], 1: ['lemons']} - - diff --git a/src/test_dictionary.py b/src/test_dictionary.py index 81d2e25..c7e1b0e 100644 --- a/src/test_dictionary.py +++ b/src/test_dictionary.py @@ -1,5 +1,4 @@ import argparse -import math import sys from copy import deepcopy from enum import Enum @@ -160,7 +159,6 @@ def test_sideeffects_by_amount(): if __name__ == '__main__': - verbose, testing, force = tuple(parse_args(sys.argv).values()) parser = argparse.ArgumentParser( prog='ex2_dictionary.py test', description='testing for eidp 2023 ex2 dictionaries', @@ -188,14 +186,16 @@ if __name__ == '__main__': for name, f in vals.items() if callable(f) and hasattr(f, "is_test")]) failed = list(map(lambda m: m[1], filter( lambda m: m[0] in failed, tests.items()))) - points_a = max(10 + sum(map(lambda f: f.minus_points, - filter(lambda f: f.task == Task.A, failed))), 0) - points_b = max(10 + sum(map(lambda f: f.minus_points, - filter(lambda f: f.task == Task.B, failed))), 0) + failed_a = map(lambda f: f.minus_points, filter( + lambda f: f.task == Task.A or f.task == Task.MODULES, failed)) + failed_b = map(lambda f: f.minus_points, filter( + lambda f: f.task == Task.B or f.task == Task.MODULES, failed)) + points_a = max(10 + sum(failed_a), 0) + points_b = max(10 + sum(failed_b), 0) msg_a = "\n".join(map( - lambda f: f"- {f.msg} [`{f.minus_points}`]", filter(lambda f: f.task == Task.A, failed))) - msg_b = "\n".join(map( - lambda f: f"- {f.msg} [`{f.minus_points}`]", filter(lambda f: f.task == Task.B, failed))) + lambda f: f"- {f.msg} [`{f.minus_points}`]", failed_a)) + msg_b = "\n".join( + map(lambda f: f"- {f.msg} [`{f.minus_points}`]", failed_b)) content = f"""\ !!!autogeneriert!!! ## exercise 2 - dictionary - ({points_a + points_b}/20) diff --git a/src/util.py b/src/util.py index dbd7615..2cb1491 100644 --- a/src/util.py +++ b/src/util.py @@ -79,19 +79,3 @@ class ResultsCollector: skipped.append(report.nodeid.split('::')[-1]) return passed, failed, skipped - - -def parse_args(args: list[str]) -> dict[str, bool]: - arguments = args[1:] - retval = {'verbose': False, 'test': False, 'force': False} - for argument in arguments: - _args = argument[1:] if argument[0] == '-' else argument - for arg in _args: - match arg: - case 'v': - retval['verbose'] = True - case 't': - retval['test'] = True - case 'f': - retval['force'] = True - return retval