From c65f53fdf6a7f3b5a6053a181c576d3c88f38969 Mon Sep 17 00:00:00 2001 From: Niko Strijbol Date: Mon, 3 Jun 2024 16:09:19 +0200 Subject: [PATCH 1/2] Support named arguments in JavaScript --- tested/languages/javascript/config.py | 1 + tested/languages/javascript/generators.py | 18 ++++++++++++------ tests/test_functionality.py | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tested/languages/javascript/config.py b/tested/languages/javascript/config.py index 98df61a8..cecfe55f 100644 --- a/tested/languages/javascript/config.py +++ b/tested/languages/javascript/config.py @@ -64,6 +64,7 @@ def supported_constructs(self) -> set[Construct]: Construct.EVALUATION, Construct.DEFAULT_PARAMETERS, Construct.GLOBAL_VARIABLES, + Construct.NAMED_ARGUMENTS, } def datatype_support(self) -> dict[AllTypes, TypeSupport]: diff --git a/tested/languages/javascript/generators.py b/tested/languages/javascript/generators.py index b1d53cf6..b02e32d8 100644 --- a/tested/languages/javascript/generators.py +++ b/tested/languages/javascript/generators.py @@ -1,5 +1,4 @@ import json -from typing import cast from tested.datatypes import ( AdvancedNothingTypes, @@ -26,6 +25,7 @@ FunctionCall, FunctionType, Identifier, + NamedArgument, ObjectType, SequenceType, SpecialNumbers, @@ -37,8 +37,14 @@ from tested.testsuite import MainInput -def convert_arguments(arguments: list[Expression]) -> str: - return ", ".join(convert_statement(arg, True) for arg in arguments) +def convert_arguments(arguments: list[NamedArgument | Expression]) -> str: + results = [] + for arg in arguments: + if isinstance(arg, NamedArgument): + results.append(f"{arg.name}={convert_statement(arg.value, True)}") + else: + results.append(convert_statement(arg, True)) + return ", ".join(results) def convert_value(value: Value) -> str: @@ -85,10 +91,10 @@ def convert_value(value: Value) -> str: return "null" elif value.type == BasicSequenceTypes.SEQUENCE: assert isinstance(value, SequenceType) - return f"[{convert_arguments(value.data)}]" + return f"[{convert_arguments(value.data)}]" # pyright: ignore elif value.type == BasicSequenceTypes.SET: assert isinstance(value, SequenceType) - return f"new Set([{convert_arguments(value.data)}])" + return f"new Set([{convert_arguments(value.data)}])" # pyright: ignore elif value.type == BasicObjectTypes.MAP: assert isinstance(value, ObjectType) result = "new Map([" @@ -118,7 +124,7 @@ def convert_function_call(call: FunctionCall, internal=False) -> str: result += convert_statement(call.namespace, True) + "." result += call.name if call.type != FunctionType.PROPERTY: - result += f"({convert_arguments(cast(list[Expression], call.arguments))})" + result += f"({convert_arguments(call.arguments)})" # pyright: ignore return result diff --git a/tests/test_functionality.py b/tests/test_functionality.py index 29a59b04..b2554ecf 100644 --- a/tests/test_functionality.py +++ b/tests/test_functionality.py @@ -758,7 +758,7 @@ def test_objects_error(language: str, tmp_path: Path, pytestconfig): ("csharp", ["correct"]), ("java", ["internal error"]), ("c", ["internal error"]), - ("javascript", ["internal error"]), + ("javascript", ["correct"]), ("haskell", ["internal error"]), ("runhaskell", ["internal error"]), ], From e269c18cea57ad3c89ccfb975717fecf712a1910 Mon Sep 17 00:00:00 2001 From: Niko Strijbol Date: Mon, 3 Jun 2024 16:23:35 +0200 Subject: [PATCH 2/2] Bump JS exercises once --- .github/workflows/integration.yml | 2 +- .../test_integration_javascript.ambr | 2278 ++++++++++++++++- tests/test_integration_javascript.py | 2 +- 3 files changed, 2221 insertions(+), 61 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index c5f9e118..63b73b5f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -3,7 +3,7 @@ name: Integration tests on: [ pull_request ] env: - EXERCISES_COMMIT: 4a2094135abe972eb38072be129171f685c18ec3 + EXERCISES_COMMIT: 10ce1d2a5211514d219924a9bb26c9655daee464 jobs: # Runs the test suite in a slightly modified Docker image used by Dodona. diff --git a/tests/__snapshots__/test_integration_javascript.ambr b/tests/__snapshots__/test_integration_javascript.ambr index 615d5ac5..3a52220f 100644 --- a/tests/__snapshots__/test_integration_javascript.ambr +++ b/tests/__snapshots__/test_integration_javascript.ambr @@ -3490,7 +3490,7 @@ 'correct', ]) # --- -# name: test_javascript_exercise[centrifuge] +# name: test_javascript_exercise[blockchain] list([ 'correct', 'correct', @@ -3867,9 +3867,1782 @@ 'correct', 'correct', 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + ]) +# --- +# name: test_javascript_exercise[centrifuge] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + ]) +# --- +# name: test_javascript_exercise[chaocipher] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + ]) +# --- +# name: test_javascript_exercise[chromosomale crossover] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + ]) +# --- +# name: test_javascript_exercise[codenames] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', ]) # --- -# name: test_javascript_exercise[chaocipher] +# name: test_javascript_exercise[combinatieslot] list([ 'correct', 'correct', @@ -4057,6 +5830,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[complementaire reeksen] + list([ 'correct', 'correct', 'correct', @@ -4157,6 +5934,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[consensussequentie] + list([ 'correct', 'correct', 'correct', @@ -4255,6 +6036,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[diana cryptosystem] + list([ 'correct', 'correct', 'correct', @@ -4455,6 +6240,11 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[dr. eureka] + list([ + 'correct', 'correct', 'correct', 'correct', @@ -4621,10 +6411,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[chromosomale crossover] - list([ 'correct', 'correct', 'correct', @@ -4725,10 +6511,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[codenames] - list([ 'correct', 'correct', 'correct', @@ -4935,12 +6717,18 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[echo] + list([ + 'correct', + 'correct', 'correct', 'correct', 'correct', ]) # --- -# name: test_javascript_exercise[combinatieslot] +# name: test_javascript_exercise[een blinde piraat] list([ 'correct', 'correct', @@ -5072,6 +6860,118 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[een puzzel per dag] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', 'correct', 'correct', 'correct', @@ -5128,10 +7028,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[complementaire reeksen] - list([ 'correct', 'correct', 'correct', @@ -5234,7 +7130,7 @@ 'correct', ]) # --- -# name: test_javascript_exercise[consensussequentie] +# name: test_javascript_exercise[een schuldige sleutel] list([ 'correct', 'correct', @@ -5334,9 +7230,55 @@ 'correct', 'correct', 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', ]) # --- -# name: test_javascript_exercise[diana cryptosystem] +# name: test_javascript_exercise[five up] list([ 'correct', 'correct', @@ -5538,9 +7480,28 @@ 'correct', 'correct', 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', ]) # --- -# name: test_javascript_exercise[dr. eureka] +# name: test_javascript_exercise[flow free] list([ 'correct', 'correct', @@ -5634,6 +7595,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[game of dots] + list([ 'correct', 'correct', 'correct', @@ -5987,6 +7952,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[geduld is een schone zaak] + list([ 'correct', 'correct', 'correct', @@ -6015,19 +7984,10 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[echo] - list([ - 'correct', 'correct', 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[een blinde piraat] - list([ 'correct', 'correct', 'correct', @@ -6158,10 +8118,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[een puzzel per dag] - list([ 'correct', 'correct', 'correct', @@ -6227,6 +8183,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[geheimschreiber] + list([ 'correct', 'correct', 'correct', @@ -6426,10 +8386,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[een schuldige sleutel] - list([ 'correct', 'correct', 'correct', @@ -6574,10 +8530,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[five up] - list([ 'correct', 'correct', 'correct', @@ -6797,10 +8749,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[flow free] - list([ 'correct', 'correct', 'correct', @@ -6893,10 +8841,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[game of dots] - list([ 'correct', 'correct', 'correct', @@ -6956,6 +8900,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[geheimschrift van dumas] + list([ 'correct', 'correct', 'correct', @@ -7056,6 +9004,10 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[geruchtenmolen] + list([ 'correct', 'correct', 'correct', @@ -7239,6 +9191,13 @@ 'correct', 'correct', 'correct', + ]) +# --- +# name: test_javascript_exercise[grille] + list([ + 'correct', + 'correct', + 'correct', 'correct', 'correct', 'correct', @@ -7250,10 +9209,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[geduld is een schone zaak] - list([ 'correct', 'correct', 'correct', @@ -7481,10 +9436,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[geheimschrift van dumas] - list([ 'correct', 'correct', 'correct', @@ -7585,10 +9536,6 @@ 'correct', 'correct', 'correct', - ]) -# --- -# name: test_javascript_exercise[geruchtenmolen] - list([ 'correct', 'correct', 'correct', @@ -15546,6 +17493,159 @@ 'correct', ]) # --- +# name: test_javascript_exercise[speleologie] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + ]) +# --- # name: test_javascript_exercise[star battle] list([ 'correct', @@ -17117,6 +19217,66 @@ 'correct', ]) # --- +# name: test_javascript_exercise[turbolift] + list([ + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + 'correct', + ]) +# --- # name: test_javascript_exercise[vier-vierkant] list([ 'correct', diff --git a/tests/test_integration_javascript.py b/tests/test_integration_javascript.py index 9e814ae9..f03868e0 100644 --- a/tests/test_integration_javascript.py +++ b/tests/test_integration_javascript.py @@ -18,7 +18,7 @@ LOCAL_REPOSITORY: str | None = os.getenv("EXERCISE_REPO") # Exercises to exclude, using the exercise folder name. -BLACKLIST = ["mad libs", "speleologie", "turbolift", "bifidcodering", "blockchain"] +BLACKLIST = ["mad libs", "bifidcodering"] def prepare_repository() -> Path: