From 3268a0d7566635717f4f14a2d3b6cd3ea7f3fc3d Mon Sep 17 00:00:00 2001 From: Alexey Stepanov Date: Fri, 26 Aug 2016 16:33:15 +0300 Subject: [PATCH] translator: add support parallel run tests, rearrangement test files --- .gitignore | 2 +- translator/Makefile | 17 +++++ translator/run_one_test.sh | 76 +++++++++++++++++++ translator/run_tests.sh | 40 ++++------ .../kotlinnative/translator/StructCodegen.kt | 11 --- .../translator/llvm/generators.kt | 3 +- .../translator/llvm/types/LLVMBooleanType.kt | 2 +- .../translator/llvm/types/LLVMByteType.kt | 2 +- .../translator/llvm/types/LLVMCharType.kt | 2 +- .../translator/llvm/types/LLVMDoubleType.kt | 2 +- .../translator/llvm/types/LLVMFloatType.kt | 2 +- .../translator/llvm/types/LLVMIntType.kt | 2 +- .../translator/llvm/types/LLVMLongType.kt | 2 +- .../llvm/types/LLVMReferenceType.kt | 3 +- .../translator/llvm/types/LLVMShortType.kt | 2 +- .../translator/llvm/types/LLVMStringType.kt | 2 +- .../translator/llvm/types/LLVMType.kt | 2 +- .../array_extensions_1.kt | 0 .../array_extensions_1.txt | 0 .../array_extensions_2.kt | 0 .../array_extensions_2.txt | 0 .../assignment_operators_1.kt | 0 .../assignment_operators_1.txt | 0 .../booleanarray_1.kt | 0 .../booleanarray_1.txt | 0 .../{kotlin => bytearray_1}/bytearray_1.kt | 0 .../{input => bytearray_1}/bytearray_1.txt | 0 .../tests/{c => callbacks_1}/callbacks_1.c | 0 .../{kotlin => callbacks_1}/callbacks_1.kt | 0 .../{input => callbacks_1}/callbacks_1.txt | 0 .../class_alignment_1.kt | 0 .../class_alignment_1.txt | 0 .../class_class_argument_1.kt | 0 .../class_class_argument_1.txt | 0 .../class_init_section_1.kt | 0 .../class_init_section_1.txt | 0 .../class_method_access_1.kt | 0 .../class_method_access_1.txt | 0 .../class_methods_1.kt | 0 .../class_methods_1.txt | 0 .../class_reassignment_1.kt | 0 .../class_reassignment_1.txt | 0 .../class_reassignment_2.kt | 0 .../class_reassignment_2.txt | 0 .../class_variable_access_1.kt | 0 .../class_variable_access_1.txt | 0 .../classfields_1.kt | 0 .../classfields_1.txt | 0 .../classfields_2.kt | 0 .../classfields_2.txt | 0 .../companion_object_1.kt | 0 .../companion_object_1.txt | 0 .../companion_object_2.kt | 0 .../companion_object_2.txt | 0 .../complex_dot_expr.kt | 0 .../complex_dot_expr.txt | 0 .../declaration_test_1.kt | 0 .../declaration_test_1.txt | 0 .../kotlin/tests/{kotlin => dfs_1}/dfs_1.kt | 0 .../kotlin/tests/{input => dfs_1}/dfs_1.txt | 0 .../different_type_binary_operator_1.kt | 0 .../different_type_binary_operator_1.txt | 0 .../{kotlin => do_while_1}/do_while_1.kt | 0 .../{input => do_while_1}/do_while_1.txt | 0 .../tests/{kotlin => elvis_1}/elvis_1.kt | 0 .../tests/{input => elvis_1}/elvis_1.txt | 0 .../{kotlin => enum_complex}/enum_complex.kt | 0 .../{input => enum_complex}/enum_complex.txt | 0 .../enum_inner_fields.kt | 0 .../enum_inner_fields.txt | 0 .../floating_point_operators_1.kt | 0 .../floating_point_operators_1.txt | 0 .../kotlin/tests/{kotlin => for_1}/for_1.kt | 0 .../kotlin/tests/{input => for_1}/for_1.txt | 0 .../function_default_arguments_1.kt | 0 .../function_default_arguments_1.txt | 0 .../{kotlin => function_eq}/function_eq.kt | 0 .../{input => function_eq}/function_eq.txt | 0 .../function_extensions_1.kt | 0 .../function_extensions_1.txt | 0 .../function_extensions_double_argument_1.kt | 0 .../function_extensions_double_argument_1.txt | 0 .../get_set_operators_1.kt | 0 .../get_set_operators_1.txt | 0 .../global_vars_1.kt | 0 .../global_vars_1.txt | 0 .../kotlin/tests/{kotlin => if_1}/if_1.kt | 0 .../kotlin/tests/{input => if_1}/if_1.txt | 0 .../kotlin/tests/{kotlin => if_2}/if_2.kt | 0 .../kotlin/tests/{input => if_2}/if_2.txt | 0 .../if_boolean_argument_1.kt | 0 .../if_boolean_argument_1.txt | 0 .../if_expression_1.kt | 0 .../if_expression_1.txt | 0 .../initialization_in_place_and_this_1.kt | 0 .../initialization_in_place_and_this_1.txt | 0 .../initialized_class_fields_1.kt | 0 .../initialized_class_fields_1.txt | 0 .../{kotlin => intarray_1}/intarray_1.kt | 0 .../{input => intarray_1}/intarray_1.txt | 0 .../long_operations_1.kt | 0 .../long_operations_1.txt | 0 .../nested_classes.kt | 0 .../nested_classes.txt | 0 .../null_comparison_1.kt | 0 .../null_comparison_1.txt | 0 .../{kotlin => nullable_1}/nullable_1.kt | 0 .../{input => nullable_1}/nullable_1.txt | 0 .../nullable_class_fields_1.kt | 0 .../nullable_class_fields_1.txt | 0 .../nullable_primitive_types_1.kt | 0 .../nullable_primitive_types_1.txt | 0 .../numeric_literals_1.kt | 0 .../numeric_literals_1.txt | 0 .../tests/{kotlin => object_1}/object_1.kt | 0 .../tests/{input => object_1}/object_1.txt | 0 .../tests/{kotlin => postfix_1}/postfix_1.kt | 0 .../tests/{input => postfix_1}/postfix_1.txt | 0 .../{kotlin => primitives_1}/primitives_1.kt | 0 .../{input => primitives_1}/primitives_1.txt | 0 .../proto_crossbranch_test.kt | 0 .../proto_crossbranch_test.txt | 0 .../proto_location_test.kt | 0 .../proto_location_test.txt | 0 .../proto_multiple_messages.kt | 0 .../proto_multiple_messages.txt | 0 .../proto_repeated_varint.kt | 0 .../proto_repeated_varint.txt | 0 .../proto_repeated_zigzag.kt | 0 .../proto_repeated_zigzag.txt | 0 .../proto_tagorder_test.kt | 0 .../proto_tagorder_test.txt | 0 .../{kotlin => proto_varint}/proto_varint.kt | 0 .../{input => proto_varint}/proto_varint.txt | 0 .../{kotlin => proto_zigzag}/proto_zigzag.kt | 0 .../{input => proto_zigzag}/proto_zigzag.txt | 0 .../range_operator_1.kt | 0 .../range_operator_1.txt | 0 .../reassigment_0.kt | 0 .../reassigment_0.txt | 0 .../reassigment_1.kt | 0 .../reassigment_1.txt | 0 .../referential_equality_1.kt | 0 .../referential_equality_1.txt | 0 .../referential_equality_2.kt | 0 .../referential_equality_2.txt | 0 .../tests/{kotlin => return_1}/return_1.kt | 0 .../tests/{input => return_1}/return_1.txt | 0 .../safe_access_operator.kt | 0 .../safe_access_operator.txt | 0 .../secondary_constructor_1.kt | 0 .../secondary_constructor_1.txt | 0 .../serialization_test.kt | 0 .../serialization_test.txt | 0 .../simple_class_2.kt | 0 .../simple_class_2.txt | 0 .../simple_proto_test_1.kt | 0 .../simple_proto_test_1.txt | 0 .../simply_class_1.kt | 0 .../simply_class_1.txt | 0 .../{kotlin => smartcast_1}/smartcast_1.kt | 0 .../{input => smartcast_1}/smartcast_1.txt | 0 .../stress_test_1.kt | 0 .../stress_test_1.txt | 0 .../string_print_test_1.kt | 0 .../string_print_test_1.txt | 0 .../{kotlin => this_test_1}/this_test_1.kt | 0 .../{input => this_test_1}/this_test_1.txt | 0 .../unary_operators_1.kt | 0 .../unary_operators_1.txt | 0 .../variables_assigment_1.kt | 0 .../variables_assigment_1.txt | 0 .../{kotlin => when_block}/when_block.kt | 0 .../{input => when_block}/when_block.txt | 0 .../when_expression_1.kt | 0 .../when_expression_1.txt | 0 .../tests/{kotlin => while_1}/while_1.kt | 0 .../tests/{input => while_1}/while_1.txt | 0 .../kotlin/tests/{c => while_2}/while_2.c | 0 .../tests/{kotlin => while_2}/while_2.kt | 0 .../tests/{input => while_2}/while_2.txt | 0 .../while_argument_side_effects_1.kt | 0 .../while_argument_side_effects_1.txt | 0 .../while_break_1.kt | 0 .../while_break_1.txt | 0 185 files changed, 122 insertions(+), 50 deletions(-) create mode 100644 translator/Makefile create mode 100755 translator/run_one_test.sh rename translator/src/test/kotlin/tests/{kotlin => array_extensions_1}/array_extensions_1.kt (100%) rename translator/src/test/kotlin/tests/{input => array_extensions_1}/array_extensions_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => array_extensions_2}/array_extensions_2.kt (100%) rename translator/src/test/kotlin/tests/{input => array_extensions_2}/array_extensions_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => assignment_operators_1}/assignment_operators_1.kt (100%) rename translator/src/test/kotlin/tests/{input => assignment_operators_1}/assignment_operators_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => booleanarray_1}/booleanarray_1.kt (100%) rename translator/src/test/kotlin/tests/{input => booleanarray_1}/booleanarray_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => bytearray_1}/bytearray_1.kt (100%) rename translator/src/test/kotlin/tests/{input => bytearray_1}/bytearray_1.txt (100%) rename translator/src/test/kotlin/tests/{c => callbacks_1}/callbacks_1.c (100%) rename translator/src/test/kotlin/tests/{kotlin => callbacks_1}/callbacks_1.kt (100%) rename translator/src/test/kotlin/tests/{input => callbacks_1}/callbacks_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_alignment_1}/class_alignment_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_alignment_1}/class_alignment_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_class_argument_1}/class_class_argument_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_class_argument_1}/class_class_argument_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_init_section_1}/class_init_section_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_init_section_1}/class_init_section_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_method_access_1}/class_method_access_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_method_access_1}/class_method_access_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_methods_1}/class_methods_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_methods_1}/class_methods_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_reassignment_1}/class_reassignment_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_reassignment_1}/class_reassignment_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_reassignment_2}/class_reassignment_2.kt (100%) rename translator/src/test/kotlin/tests/{input => class_reassignment_2}/class_reassignment_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => class_variable_access_1}/class_variable_access_1.kt (100%) rename translator/src/test/kotlin/tests/{input => class_variable_access_1}/class_variable_access_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => classfields_1}/classfields_1.kt (100%) rename translator/src/test/kotlin/tests/{input => classfields_1}/classfields_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => classfields_2}/classfields_2.kt (100%) rename translator/src/test/kotlin/tests/{input => classfields_2}/classfields_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => companion_object_1}/companion_object_1.kt (100%) rename translator/src/test/kotlin/tests/{input => companion_object_1}/companion_object_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => companion_object_2}/companion_object_2.kt (100%) rename translator/src/test/kotlin/tests/{input => companion_object_2}/companion_object_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => complex_dot_expr}/complex_dot_expr.kt (100%) rename translator/src/test/kotlin/tests/{input => complex_dot_expr}/complex_dot_expr.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => declaration_test_1}/declaration_test_1.kt (100%) rename translator/src/test/kotlin/tests/{input => declaration_test_1}/declaration_test_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => dfs_1}/dfs_1.kt (100%) rename translator/src/test/kotlin/tests/{input => dfs_1}/dfs_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => different_type_binary_operator_1}/different_type_binary_operator_1.kt (100%) rename translator/src/test/kotlin/tests/{input => different_type_binary_operator_1}/different_type_binary_operator_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => do_while_1}/do_while_1.kt (100%) rename translator/src/test/kotlin/tests/{input => do_while_1}/do_while_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => elvis_1}/elvis_1.kt (100%) rename translator/src/test/kotlin/tests/{input => elvis_1}/elvis_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => enum_complex}/enum_complex.kt (100%) rename translator/src/test/kotlin/tests/{input => enum_complex}/enum_complex.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => enum_inner_fields}/enum_inner_fields.kt (100%) rename translator/src/test/kotlin/tests/{input => enum_inner_fields}/enum_inner_fields.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => floating_point_operators_1}/floating_point_operators_1.kt (100%) rename translator/src/test/kotlin/tests/{input => floating_point_operators_1}/floating_point_operators_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => for_1}/for_1.kt (100%) rename translator/src/test/kotlin/tests/{input => for_1}/for_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => function_default_arguments_1}/function_default_arguments_1.kt (100%) rename translator/src/test/kotlin/tests/{input => function_default_arguments_1}/function_default_arguments_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => function_eq}/function_eq.kt (100%) rename translator/src/test/kotlin/tests/{input => function_eq}/function_eq.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => function_extensions_1}/function_extensions_1.kt (100%) rename translator/src/test/kotlin/tests/{input => function_extensions_1}/function_extensions_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => function_extensions_double_argument_1}/function_extensions_double_argument_1.kt (100%) rename translator/src/test/kotlin/tests/{input => function_extensions_double_argument_1}/function_extensions_double_argument_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => get_set_operators_1}/get_set_operators_1.kt (100%) rename translator/src/test/kotlin/tests/{input => get_set_operators_1}/get_set_operators_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => global_vars_1}/global_vars_1.kt (100%) rename translator/src/test/kotlin/tests/{input => global_vars_1}/global_vars_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => if_1}/if_1.kt (100%) rename translator/src/test/kotlin/tests/{input => if_1}/if_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => if_2}/if_2.kt (100%) rename translator/src/test/kotlin/tests/{input => if_2}/if_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => if_boolean_argument_1}/if_boolean_argument_1.kt (100%) rename translator/src/test/kotlin/tests/{input => if_boolean_argument_1}/if_boolean_argument_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => if_expression_1}/if_expression_1.kt (100%) rename translator/src/test/kotlin/tests/{input => if_expression_1}/if_expression_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => initialization_in_place_and_this_1}/initialization_in_place_and_this_1.kt (100%) rename translator/src/test/kotlin/tests/{input => initialization_in_place_and_this_1}/initialization_in_place_and_this_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => initialized_class_fields_1}/initialized_class_fields_1.kt (100%) rename translator/src/test/kotlin/tests/{input => initialized_class_fields_1}/initialized_class_fields_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => intarray_1}/intarray_1.kt (100%) rename translator/src/test/kotlin/tests/{input => intarray_1}/intarray_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => long_operations_1}/long_operations_1.kt (100%) rename translator/src/test/kotlin/tests/{input => long_operations_1}/long_operations_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => nested_classes}/nested_classes.kt (100%) rename translator/src/test/kotlin/tests/{input => nested_classes}/nested_classes.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => null_comparison_1}/null_comparison_1.kt (100%) rename translator/src/test/kotlin/tests/{input => null_comparison_1}/null_comparison_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => nullable_1}/nullable_1.kt (100%) rename translator/src/test/kotlin/tests/{input => nullable_1}/nullable_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => nullable_class_fields_1}/nullable_class_fields_1.kt (100%) rename translator/src/test/kotlin/tests/{input => nullable_class_fields_1}/nullable_class_fields_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => nullable_primitive_types_1}/nullable_primitive_types_1.kt (100%) rename translator/src/test/kotlin/tests/{input => nullable_primitive_types_1}/nullable_primitive_types_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => numeric_literals_1}/numeric_literals_1.kt (100%) rename translator/src/test/kotlin/tests/{input => numeric_literals_1}/numeric_literals_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => object_1}/object_1.kt (100%) rename translator/src/test/kotlin/tests/{input => object_1}/object_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => postfix_1}/postfix_1.kt (100%) rename translator/src/test/kotlin/tests/{input => postfix_1}/postfix_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => primitives_1}/primitives_1.kt (100%) rename translator/src/test/kotlin/tests/{input => primitives_1}/primitives_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_crossbranch_test}/proto_crossbranch_test.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_crossbranch_test}/proto_crossbranch_test.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_location_test}/proto_location_test.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_location_test}/proto_location_test.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_multiple_messages}/proto_multiple_messages.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_multiple_messages}/proto_multiple_messages.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_repeated_varint}/proto_repeated_varint.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_repeated_varint}/proto_repeated_varint.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_repeated_zigzag}/proto_repeated_zigzag.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_repeated_zigzag}/proto_repeated_zigzag.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_tagorder_test}/proto_tagorder_test.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_tagorder_test}/proto_tagorder_test.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_varint}/proto_varint.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_varint}/proto_varint.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => proto_zigzag}/proto_zigzag.kt (100%) rename translator/src/test/kotlin/tests/{input => proto_zigzag}/proto_zigzag.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => range_operator_1}/range_operator_1.kt (100%) rename translator/src/test/kotlin/tests/{input => range_operator_1}/range_operator_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => reassigment_0}/reassigment_0.kt (100%) rename translator/src/test/kotlin/tests/{input => reassigment_0}/reassigment_0.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => reassigment_1}/reassigment_1.kt (100%) rename translator/src/test/kotlin/tests/{input => reassigment_1}/reassigment_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => referential_equality_1}/referential_equality_1.kt (100%) rename translator/src/test/kotlin/tests/{input => referential_equality_1}/referential_equality_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => referential_equality_2}/referential_equality_2.kt (100%) rename translator/src/test/kotlin/tests/{input => referential_equality_2}/referential_equality_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => return_1}/return_1.kt (100%) rename translator/src/test/kotlin/tests/{input => return_1}/return_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => safe_access_operator}/safe_access_operator.kt (100%) rename translator/src/test/kotlin/tests/{input => safe_access_operator}/safe_access_operator.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => secondary_constructor_1}/secondary_constructor_1.kt (100%) rename translator/src/test/kotlin/tests/{input => secondary_constructor_1}/secondary_constructor_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => serialization_test}/serialization_test.kt (100%) rename translator/src/test/kotlin/tests/{input => serialization_test}/serialization_test.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => simple_class_2}/simple_class_2.kt (100%) rename translator/src/test/kotlin/tests/{input => simple_class_2}/simple_class_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => simple_proto_test_1}/simple_proto_test_1.kt (100%) rename translator/src/test/kotlin/tests/{input => simple_proto_test_1}/simple_proto_test_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => simply_class_1}/simply_class_1.kt (100%) rename translator/src/test/kotlin/tests/{input => simply_class_1}/simply_class_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => smartcast_1}/smartcast_1.kt (100%) rename translator/src/test/kotlin/tests/{input => smartcast_1}/smartcast_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => stress_test_1}/stress_test_1.kt (100%) rename translator/src/test/kotlin/tests/{input => stress_test_1}/stress_test_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => string_print_test_1}/string_print_test_1.kt (100%) rename translator/src/test/kotlin/tests/{input => string_print_test_1}/string_print_test_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => this_test_1}/this_test_1.kt (100%) rename translator/src/test/kotlin/tests/{input => this_test_1}/this_test_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => unary_operators_1}/unary_operators_1.kt (100%) rename translator/src/test/kotlin/tests/{input => unary_operators_1}/unary_operators_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => variables_assigment_1}/variables_assigment_1.kt (100%) rename translator/src/test/kotlin/tests/{input => variables_assigment_1}/variables_assigment_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => when_block}/when_block.kt (100%) rename translator/src/test/kotlin/tests/{input => when_block}/when_block.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => when_expression_1}/when_expression_1.kt (100%) rename translator/src/test/kotlin/tests/{input => when_expression_1}/when_expression_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => while_1}/while_1.kt (100%) rename translator/src/test/kotlin/tests/{input => while_1}/while_1.txt (100%) rename translator/src/test/kotlin/tests/{c => while_2}/while_2.c (100%) rename translator/src/test/kotlin/tests/{kotlin => while_2}/while_2.kt (100%) rename translator/src/test/kotlin/tests/{input => while_2}/while_2.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => while_argument_side_effects_1}/while_argument_side_effects_1.kt (100%) rename translator/src/test/kotlin/tests/{input => while_argument_side_effects_1}/while_argument_side_effects_1.txt (100%) rename translator/src/test/kotlin/tests/{kotlin => while_break_1}/while_break_1.kt (100%) rename translator/src/test/kotlin/tests/{input => while_break_1}/while_break_1.txt (100%) diff --git a/.gitignore b/.gitignore index 3f32f9658eb..d72d2807f02 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ .idea/shelf dependencies dist -translator/src/test/kotlin/tests/linked +translator/src/test/kotlin/tests/*/linked out tmp workspace.xml diff --git a/translator/Makefile b/translator/Makefile new file mode 100644 index 00000000000..222e8dc9f1e --- /dev/null +++ b/translator/Makefile @@ -0,0 +1,17 @@ +DIRECTORY = "src/test/kotlin/tests" +OUTPUT = $(shell ls ${DIRECTORY}/*/*.txt) +OBJECTS = $(OUTPUT:.txt=.out) +green = '\033[0;32m' +red = '\033[0;31m' +lightRed = '\033[1;31m' +orange = '\033[0;33m' +nc = '\033[0m' + + +%.out: %.txt + @./run_one_test.sh $(@:.out=.txt) + +all: $(OBJECTS) + @echo "ok" + +.PHONY: all diff --git a/translator/run_one_test.sh b/translator/run_one_test.sh new file mode 100755 index 00000000000..2d77db32a9f --- /dev/null +++ b/translator/run_one_test.sh @@ -0,0 +1,76 @@ +#!/bin/bash +green='\033[0;32m' +red='\033[0;31m' +lightRed='\033[1;31m' +orange='\033[0;33m' + +cd ../translator + +i=$1 +TEST=`basename $i ".txt"` +DIRECTORY="src/test/kotlin/tests" +MAIN="$DIRECTORY/$TEST/linked/main.c" +rm -f $DIRECTORY/$TEST/linked/* + +echo "#include " >> $MAIN +echo "#include " >> $MAIN +echo "#include " >> $MAIN + +echo "int main(){" >> $MAIN +echo "printf(\"%stest: $TEST%s\n\", \"\x1B[33m\", \"\x1B[0m\");" >> $MAIN +cat "$i" | while read LINE +do + echo " assert($LINE);" >> $MAIN + echo " printf(\"%s[OK]:%s $LINE\n\", \"\x1B[32m\", \"\x1B[0m\");" >> $MAIN +done + +echo "printf(\"TEST RESULT: OK\n\");" >> $MAIN +echo "return 0;}" >> $MAIN + +if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${red}Error somewhere in main.c generation${nc}" + exit 1 +fi + +clang-3.6 -S -emit-llvm $DIRECTORY/$TEST/linked/main.c -o $DIRECTORY/$TEST/linked/main.ll -Wno-implicit-function-declaration +if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${red}Error building main.c${nc}" + exit 1 +fi + +cp ../kotstd/build/stdlib_x86.ll $DIRECTORY/$TEST/linked/ +if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${red}Error copying ../kotstd/build/stdlib_x86.ll to ${DIRECTORY}/${TEST}/linked/${nc}" + exit 1 +fi + +if [ -f "$DIRECTORY/$TEST/$TEST.c" ] + then + clang-3.6 -S -emit-llvm "$DIRECTORY/$TEST/$TEST.c" -o $DIRECTORY/$TEST/linked/$TEST"_c.ll" -Wno-implicit-function-declaration + if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${red}Error building: ${DIRECTORY}/${TEST}/linked/${TEST}_c.ll${nc}" + fi +fi + +java -jar build/libs/translator-1.0.jar -I ../kotstd/include $DIRECTORY/$TEST/$TEST.kt > $DIRECTORY/$TEST/linked/$TEST.ll + +if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${red}Translation error: ${DIRECTORY}/$TEST/${TEST}.kt${nc}" +fi + +llvm-link-3.6 -S $DIRECTORY/$TEST/linked/*.ll > $DIRECTORY/$TEST/linked/run.ll +if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${red}Error linking with llvm${nc}" +fi + +lli-3.6 $DIRECTORY/$TEST/linked/run.ll +if [ $? -ne 0 ]; then + echo -e "${orange}test: ${TEST}${nc}" + echo -e "${lightRed}Error running test${nc}" +fi diff --git a/translator/run_tests.sh b/translator/run_tests.sh index f60f811b1dc..32d767ade7d 100755 --- a/translator/run_tests.sh +++ b/translator/run_tests.sh @@ -5,15 +5,6 @@ lightRed='\033[1;31m' orange='\033[0;33m' nc='\033[0m' -if [ ! -d "src/test/kotlin/tests/linked" ]; then - mkdir -p "src/test/kotlin/tests/linked" -fi - -if [ $? -ne 0 ]; then - echo -e "${red}Error creating folder \"src/test/kotlin/tests/linked\"${nc}" - exit 1 -fi - if [ "$3" == "--debug" ]; then cd ../kotstd && make clean && make debug else @@ -28,18 +19,18 @@ fi cd ../translator DIRECTORY="src/test/kotlin/tests" -MAIN="$DIRECTORY/linked/main.c" -TESTS=$( ls $DIRECTORY/input/* $1) # Note that "ls $DIRECTORY/input $1" is wrong. Why? Because it's bash. +TESTS=$( ls $DIRECTORY/*/*.txt $1) # Note that "ls $DIRECTORY/input $1" is wrong. Why? Because it's bash. if [ "$2" == "--proto" ]; then - TESTS=$( ls $DIRECTORY/input/proto* $1) + TESTS=$( ls $DIRECTORY/*/proto*.txt $1) fi total_scripts=0 successful_scripts=0 for i in $TESTS; do - rm -f $DIRECTORY/linked/* - TEST=`basename $i ".txt"` + TEST=`basename $i ".txt"` + MAIN="$DIRECTORY/$TEST/linked/main.c" + rm -f $DIRECTORY/$TEST/linked/* successful=1 echo -e "${orange}test: ${TEST}${nc}" echo "#include " >> $MAIN @@ -61,40 +52,41 @@ for i in $TESTS; do exit 1 fi - clang-3.6 -S -emit-llvm $DIRECTORY/linked/main.c -o $DIRECTORY/linked/main.ll -Wno-implicit-function-declaration + clang-3.6 -S -emit-llvm $DIRECTORY/$TEST/linked/main.c -o $DIRECTORY/$TEST/linked/main.ll -Wno-implicit-function-declaration if [ $? -ne 0 ]; then echo -e "${red}Error building main.c${nc}" exit 1 fi - cp ../kotstd/build/stdlib_x86.ll $DIRECTORY/linked/ + cp ../kotstd/build/stdlib_x86.ll $DIRECTORY/$TEST/linked/ if [ $? -ne 0 ]; then - echo -e "${red}Error copying ../kotstd/build/stdlib_x86.ll to ${DIRECTORY}/linked/${nc}" + echo -e "${red}Error copying ../kotstd/build/stdlib_x86.ll to ${DIRECTORY}/${TEST}/linked/${nc}" exit 1 fi - if [ -f "$DIRECTORY/c/$TEST.c" ] + if [ -f "$DIRECTORY/$TEST/$TEST.c" ] then - clang-3.6 -S -emit-llvm "$DIRECTORY/c/$TEST.c" -o $DIRECTORY/linked/$TEST"_c.ll" -Wno-implicit-function-declaration + clang-3.6 -S -emit-llvm "$DIRECTORY/$TEST/$TEST.c" -o $DIRECTORY/$TEST/linked/$TEST"_c.ll" -Wno-implicit-function-declaration if [ $? -ne 0 ]; then - echo -e "${red}Error building: ${DIRECTORY}/linked/${TEST}_c.ll${nc}" + echo -e "${red}Error building: ${DIRECTORY}/${TEST}/linked/${TEST}_c.ll${nc}" fi fi - java -jar build/libs/translator-1.0.jar -I ../kotstd/include $DIRECTORY/kotlin/$TEST.kt > $DIRECTORY/linked/$TEST.ll + java -jar build/libs/translator-1.0.jar -I ../kotstd/include $DIRECTORY/$TEST/$TEST.kt > $DIRECTORY/$TEST/linked/$TEST.ll + if [ $? -ne 0 ]; then - echo -e "${red}Translation error: ${DIRECTORY}/kotlin/${TEST}.kt${nc}" + echo -e "${red}Translation error: ${DIRECTORY}/$TEST/${TEST}.kt${nc}" successful=0 fi - llvm-link-3.6 -S $DIRECTORY/linked/*.ll > $DIRECTORY/linked/run.ll + llvm-link-3.6 -S $DIRECTORY/$TEST/linked/*.ll > $DIRECTORY/$TEST/linked/run.ll if [ $? -ne 0 ]; then echo -e "${red}Error linking with llvm${nc}" successful=0 fi - lli-3.6 $DIRECTORY/linked/run.ll + lli-3.6 $DIRECTORY/$TEST/linked/run.ll if [ $? -ne 0 ]; then echo -e "${lightRed}Error running test${nc}" successful=0 diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/StructCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/StructCodegen.kt index 7e2059a864c..85be1dd3966 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/StructCodegen.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/StructCodegen.kt @@ -34,7 +34,6 @@ abstract class StructCodegen(val state: TranslationState, var methods = HashMap() abstract val structName: String val fullName: String - //get() = "${if (type.location.size > 0) "${type.location.joinToString(".")}." else ""}$structName" get() = structName open fun prepareForGenerate() { @@ -106,8 +105,6 @@ abstract class StructCodegen(val state: TranslationState, enumFields.put(name, field) } is KtClass -> { - //declaration.fqName?.asString() ?: declaration.name!! - //declaration.fqName!!.asString() nestedClasses.put(declaration.fqName!!.asString(), ClassCodegen(state, VariableManager(state.globalVariableCollection), @@ -176,7 +173,6 @@ abstract class StructCodegen(val state: TranslationState, private fun generatePrimaryConstructor() { val argFields = ArrayList() - val classVal = LLVMVariable("classvariable.this", type, pointer = 1) variableManager.addVariable("this", classVal, 0) @@ -253,17 +249,10 @@ abstract class StructCodegen(val state: TranslationState, protected fun resolveType(field: KtNamedDeclaration, ktType: KotlinType): LLVMClassVariable { val annotations = parseFieldAnnotations(field) - /*val fieldName = when(field) { - is KtParameter-> - else -> - }*/ - - //} val fieldName = state.bindingContext.get(BindingContext.VALUE_PARAMETER, field as?KtParameter)?.fqNameSafe?.asString()?.replace(".", "") ?: field.fqName?.asString() ?: field.name!! val result = LLVMInstanceOfStandardType(fieldName, ktType, LLVMRegisterScope(), state = state) - //throw RuntimeException("Unknown field " + field.name!!) if (result.type is LLVMReferenceType) { val type = result.type as LLVMReferenceType diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/generators.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/generators.kt index 4b391ac842f..a6183f464f4 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/generators.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/generators.kt @@ -36,8 +36,7 @@ fun LLVMInstanceOfStandardType(name: String, type: KotlinType, scope: LLVMScope else -> { val declarationDescriptor = type.constructor.declarationDescriptor!! val refName = declarationDescriptor.fqNameSafe.asString() - val targetPackage = declarationDescriptor.fqNameSafe.parent().asString() - val refType = state.classes[type.toString()]?.type ?: LLVMReferenceType(refName, packageName = targetPackage, align = TranslationState.pointerAlign, prefix = "class") + val refType = state.classes[type.toString()]?.type ?: LLVMReferenceType(refName, align = TranslationState.pointerAlign, prefix = "class") val result = LLVMVariable(name, refType, name, scope, pointer = 1) var currentPrefix = "" diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt index 7c1eb00bffb..4bf5f0b9f67 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt @@ -4,7 +4,7 @@ import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMBooleanType() : LLVMType("kotlin") { +class LLVMBooleanType() : LLVMType() { //TODO switch by types: int + double = int override fun operatorMinus(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt index daed3667c6a..0da474a927e 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt @@ -3,7 +3,7 @@ package org.kotlinnative.translator.llvm.types import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMByteType() : LLVMType("kotlin") { +class LLVMByteType() : LLVMType() { override fun operatorLt(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = LLVMExpression(LLVMBooleanType(), "icmp slt i8 $firstOp, $secondOp") diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt index 009dd5fd442..e67012c1742 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt @@ -3,7 +3,7 @@ package org.kotlinnative.translator.llvm.types import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMCharType() : LLVMType("kotlin") { +class LLVMCharType() : LLVMType() { override fun operatorLt(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = LLVMExpression(LLVMBooleanType(), "icmp slt i8 $firstOp, $secondOp") diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt index 49520625cad..5af05c9c76b 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt @@ -4,7 +4,7 @@ import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMDoubleType() : LLVMType("kotlin") { +class LLVMDoubleType() : LLVMType() { //TODO switch by types: int + double = int override fun operatorMinus(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt index 799cbc96b2b..33f856ee2de 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt @@ -4,7 +4,7 @@ import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMFloatType() : LLVMType("kotlin") { +class LLVMFloatType() : LLVMType() { //TODO switch by types: int + double = int override fun operatorMinus(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt index 0f7b9269e74..f652888fea5 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt @@ -5,7 +5,7 @@ import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMIntType() : LLVMType("kotlin") { +class LLVMIntType() : LLVMType() { override fun operatorOr(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = LLVMExpression(LLVMIntType(), "or i32 $firstOp, $secondOp") diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt index dcdd6396678..3a2cfe3d860 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt @@ -5,7 +5,7 @@ import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMLongType() : LLVMType("kotlin") { +class LLVMLongType() : LLVMType() { override fun operatorOr(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = LLVMExpression(LLVMLongType(), "or i64 $firstOp, $secondOp") diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMReferenceType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMReferenceType.kt index 3dbe8048811..fab4d607a96 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMReferenceType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMReferenceType.kt @@ -9,8 +9,7 @@ class LLVMReferenceType(val type: String, var prefix: String = "", override var align: Int = TranslationState.pointerAlign, override var size: Int = TranslationState.pointerSize, - packageName: String = "", - var byRef: Boolean = true) : LLVMReferred, LLVMType(packageName) { + var byRef: Boolean = true) : LLVMReferred, LLVMType() { override val defaultValue: String = "null" diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt index 7c4730b18f1..deb5817446a 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt @@ -3,7 +3,7 @@ package org.kotlinnative.translator.llvm.types import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -class LLVMShortType() : LLVMType("kotlin") { +class LLVMShortType() : LLVMType() { override fun operatorLt(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = LLVMExpression(LLVMBooleanType(), "icmp slt i16 $firstOp, $secondOp") diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMStringType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMStringType.kt index ba07912e2e6..14c91e9aeec 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMStringType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMStringType.kt @@ -1,6 +1,6 @@ package org.kotlinnative.translator.llvm.types -class LLVMStringType(override val length: Int, var isLoaded: Boolean = true) : LLVMArray, LLVMType("kotlin") { +class LLVMStringType(override val length: Int, var isLoaded: Boolean = true) : LLVMArray, LLVMType() { override var size: Int = 1 override val align = 8 diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMType.kt index 1caf7ecc63b..f7d1492c6a2 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMType.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMType.kt @@ -4,7 +4,7 @@ import org.kotlinnative.translator.exceptions.UnimplementedException import org.kotlinnative.translator.llvm.LLVMExpression import org.kotlinnative.translator.llvm.LLVMSingleValue -abstract class LLVMType(val packageName: String = "") : Cloneable { +abstract class LLVMType() : Cloneable { open fun operatorPlus(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = throw UnimplementedException() open fun operatorTimes(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression = throw UnimplementedException() diff --git a/translator/src/test/kotlin/tests/kotlin/array_extensions_1.kt b/translator/src/test/kotlin/tests/array_extensions_1/array_extensions_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/array_extensions_1.kt rename to translator/src/test/kotlin/tests/array_extensions_1/array_extensions_1.kt diff --git a/translator/src/test/kotlin/tests/input/array_extensions_1.txt b/translator/src/test/kotlin/tests/array_extensions_1/array_extensions_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/array_extensions_1.txt rename to translator/src/test/kotlin/tests/array_extensions_1/array_extensions_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/array_extensions_2.kt b/translator/src/test/kotlin/tests/array_extensions_2/array_extensions_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/array_extensions_2.kt rename to translator/src/test/kotlin/tests/array_extensions_2/array_extensions_2.kt diff --git a/translator/src/test/kotlin/tests/input/array_extensions_2.txt b/translator/src/test/kotlin/tests/array_extensions_2/array_extensions_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/array_extensions_2.txt rename to translator/src/test/kotlin/tests/array_extensions_2/array_extensions_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/assignment_operators_1.kt b/translator/src/test/kotlin/tests/assignment_operators_1/assignment_operators_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/assignment_operators_1.kt rename to translator/src/test/kotlin/tests/assignment_operators_1/assignment_operators_1.kt diff --git a/translator/src/test/kotlin/tests/input/assignment_operators_1.txt b/translator/src/test/kotlin/tests/assignment_operators_1/assignment_operators_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/assignment_operators_1.txt rename to translator/src/test/kotlin/tests/assignment_operators_1/assignment_operators_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/booleanarray_1.kt b/translator/src/test/kotlin/tests/booleanarray_1/booleanarray_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/booleanarray_1.kt rename to translator/src/test/kotlin/tests/booleanarray_1/booleanarray_1.kt diff --git a/translator/src/test/kotlin/tests/input/booleanarray_1.txt b/translator/src/test/kotlin/tests/booleanarray_1/booleanarray_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/booleanarray_1.txt rename to translator/src/test/kotlin/tests/booleanarray_1/booleanarray_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/bytearray_1.kt b/translator/src/test/kotlin/tests/bytearray_1/bytearray_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/bytearray_1.kt rename to translator/src/test/kotlin/tests/bytearray_1/bytearray_1.kt diff --git a/translator/src/test/kotlin/tests/input/bytearray_1.txt b/translator/src/test/kotlin/tests/bytearray_1/bytearray_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/bytearray_1.txt rename to translator/src/test/kotlin/tests/bytearray_1/bytearray_1.txt diff --git a/translator/src/test/kotlin/tests/c/callbacks_1.c b/translator/src/test/kotlin/tests/callbacks_1/callbacks_1.c similarity index 100% rename from translator/src/test/kotlin/tests/c/callbacks_1.c rename to translator/src/test/kotlin/tests/callbacks_1/callbacks_1.c diff --git a/translator/src/test/kotlin/tests/kotlin/callbacks_1.kt b/translator/src/test/kotlin/tests/callbacks_1/callbacks_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/callbacks_1.kt rename to translator/src/test/kotlin/tests/callbacks_1/callbacks_1.kt diff --git a/translator/src/test/kotlin/tests/input/callbacks_1.txt b/translator/src/test/kotlin/tests/callbacks_1/callbacks_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/callbacks_1.txt rename to translator/src/test/kotlin/tests/callbacks_1/callbacks_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_alignment_1.kt b/translator/src/test/kotlin/tests/class_alignment_1/class_alignment_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_alignment_1.kt rename to translator/src/test/kotlin/tests/class_alignment_1/class_alignment_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_alignment_1.txt b/translator/src/test/kotlin/tests/class_alignment_1/class_alignment_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_alignment_1.txt rename to translator/src/test/kotlin/tests/class_alignment_1/class_alignment_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_class_argument_1.kt b/translator/src/test/kotlin/tests/class_class_argument_1/class_class_argument_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_class_argument_1.kt rename to translator/src/test/kotlin/tests/class_class_argument_1/class_class_argument_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_class_argument_1.txt b/translator/src/test/kotlin/tests/class_class_argument_1/class_class_argument_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_class_argument_1.txt rename to translator/src/test/kotlin/tests/class_class_argument_1/class_class_argument_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_init_section_1.kt b/translator/src/test/kotlin/tests/class_init_section_1/class_init_section_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_init_section_1.kt rename to translator/src/test/kotlin/tests/class_init_section_1/class_init_section_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_init_section_1.txt b/translator/src/test/kotlin/tests/class_init_section_1/class_init_section_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_init_section_1.txt rename to translator/src/test/kotlin/tests/class_init_section_1/class_init_section_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_method_access_1.kt b/translator/src/test/kotlin/tests/class_method_access_1/class_method_access_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_method_access_1.kt rename to translator/src/test/kotlin/tests/class_method_access_1/class_method_access_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_method_access_1.txt b/translator/src/test/kotlin/tests/class_method_access_1/class_method_access_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_method_access_1.txt rename to translator/src/test/kotlin/tests/class_method_access_1/class_method_access_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_methods_1.kt b/translator/src/test/kotlin/tests/class_methods_1/class_methods_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_methods_1.kt rename to translator/src/test/kotlin/tests/class_methods_1/class_methods_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_methods_1.txt b/translator/src/test/kotlin/tests/class_methods_1/class_methods_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_methods_1.txt rename to translator/src/test/kotlin/tests/class_methods_1/class_methods_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_reassignment_1.kt b/translator/src/test/kotlin/tests/class_reassignment_1/class_reassignment_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_reassignment_1.kt rename to translator/src/test/kotlin/tests/class_reassignment_1/class_reassignment_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_reassignment_1.txt b/translator/src/test/kotlin/tests/class_reassignment_1/class_reassignment_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_reassignment_1.txt rename to translator/src/test/kotlin/tests/class_reassignment_1/class_reassignment_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_reassignment_2.kt b/translator/src/test/kotlin/tests/class_reassignment_2/class_reassignment_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_reassignment_2.kt rename to translator/src/test/kotlin/tests/class_reassignment_2/class_reassignment_2.kt diff --git a/translator/src/test/kotlin/tests/input/class_reassignment_2.txt b/translator/src/test/kotlin/tests/class_reassignment_2/class_reassignment_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_reassignment_2.txt rename to translator/src/test/kotlin/tests/class_reassignment_2/class_reassignment_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/class_variable_access_1.kt b/translator/src/test/kotlin/tests/class_variable_access_1/class_variable_access_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/class_variable_access_1.kt rename to translator/src/test/kotlin/tests/class_variable_access_1/class_variable_access_1.kt diff --git a/translator/src/test/kotlin/tests/input/class_variable_access_1.txt b/translator/src/test/kotlin/tests/class_variable_access_1/class_variable_access_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/class_variable_access_1.txt rename to translator/src/test/kotlin/tests/class_variable_access_1/class_variable_access_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/classfields_1.kt b/translator/src/test/kotlin/tests/classfields_1/classfields_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/classfields_1.kt rename to translator/src/test/kotlin/tests/classfields_1/classfields_1.kt diff --git a/translator/src/test/kotlin/tests/input/classfields_1.txt b/translator/src/test/kotlin/tests/classfields_1/classfields_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/classfields_1.txt rename to translator/src/test/kotlin/tests/classfields_1/classfields_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/classfields_2.kt b/translator/src/test/kotlin/tests/classfields_2/classfields_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/classfields_2.kt rename to translator/src/test/kotlin/tests/classfields_2/classfields_2.kt diff --git a/translator/src/test/kotlin/tests/input/classfields_2.txt b/translator/src/test/kotlin/tests/classfields_2/classfields_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/classfields_2.txt rename to translator/src/test/kotlin/tests/classfields_2/classfields_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/companion_object_1.kt b/translator/src/test/kotlin/tests/companion_object_1/companion_object_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/companion_object_1.kt rename to translator/src/test/kotlin/tests/companion_object_1/companion_object_1.kt diff --git a/translator/src/test/kotlin/tests/input/companion_object_1.txt b/translator/src/test/kotlin/tests/companion_object_1/companion_object_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/companion_object_1.txt rename to translator/src/test/kotlin/tests/companion_object_1/companion_object_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/companion_object_2.kt b/translator/src/test/kotlin/tests/companion_object_2/companion_object_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/companion_object_2.kt rename to translator/src/test/kotlin/tests/companion_object_2/companion_object_2.kt diff --git a/translator/src/test/kotlin/tests/input/companion_object_2.txt b/translator/src/test/kotlin/tests/companion_object_2/companion_object_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/companion_object_2.txt rename to translator/src/test/kotlin/tests/companion_object_2/companion_object_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/complex_dot_expr.kt b/translator/src/test/kotlin/tests/complex_dot_expr/complex_dot_expr.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/complex_dot_expr.kt rename to translator/src/test/kotlin/tests/complex_dot_expr/complex_dot_expr.kt diff --git a/translator/src/test/kotlin/tests/input/complex_dot_expr.txt b/translator/src/test/kotlin/tests/complex_dot_expr/complex_dot_expr.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/complex_dot_expr.txt rename to translator/src/test/kotlin/tests/complex_dot_expr/complex_dot_expr.txt diff --git a/translator/src/test/kotlin/tests/kotlin/declaration_test_1.kt b/translator/src/test/kotlin/tests/declaration_test_1/declaration_test_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/declaration_test_1.kt rename to translator/src/test/kotlin/tests/declaration_test_1/declaration_test_1.kt diff --git a/translator/src/test/kotlin/tests/input/declaration_test_1.txt b/translator/src/test/kotlin/tests/declaration_test_1/declaration_test_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/declaration_test_1.txt rename to translator/src/test/kotlin/tests/declaration_test_1/declaration_test_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/dfs_1.kt b/translator/src/test/kotlin/tests/dfs_1/dfs_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/dfs_1.kt rename to translator/src/test/kotlin/tests/dfs_1/dfs_1.kt diff --git a/translator/src/test/kotlin/tests/input/dfs_1.txt b/translator/src/test/kotlin/tests/dfs_1/dfs_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/dfs_1.txt rename to translator/src/test/kotlin/tests/dfs_1/dfs_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/different_type_binary_operator_1.kt b/translator/src/test/kotlin/tests/different_type_binary_operator_1/different_type_binary_operator_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/different_type_binary_operator_1.kt rename to translator/src/test/kotlin/tests/different_type_binary_operator_1/different_type_binary_operator_1.kt diff --git a/translator/src/test/kotlin/tests/input/different_type_binary_operator_1.txt b/translator/src/test/kotlin/tests/different_type_binary_operator_1/different_type_binary_operator_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/different_type_binary_operator_1.txt rename to translator/src/test/kotlin/tests/different_type_binary_operator_1/different_type_binary_operator_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/do_while_1.kt b/translator/src/test/kotlin/tests/do_while_1/do_while_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/do_while_1.kt rename to translator/src/test/kotlin/tests/do_while_1/do_while_1.kt diff --git a/translator/src/test/kotlin/tests/input/do_while_1.txt b/translator/src/test/kotlin/tests/do_while_1/do_while_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/do_while_1.txt rename to translator/src/test/kotlin/tests/do_while_1/do_while_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/elvis_1.kt b/translator/src/test/kotlin/tests/elvis_1/elvis_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/elvis_1.kt rename to translator/src/test/kotlin/tests/elvis_1/elvis_1.kt diff --git a/translator/src/test/kotlin/tests/input/elvis_1.txt b/translator/src/test/kotlin/tests/elvis_1/elvis_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/elvis_1.txt rename to translator/src/test/kotlin/tests/elvis_1/elvis_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/enum_complex.kt b/translator/src/test/kotlin/tests/enum_complex/enum_complex.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/enum_complex.kt rename to translator/src/test/kotlin/tests/enum_complex/enum_complex.kt diff --git a/translator/src/test/kotlin/tests/input/enum_complex.txt b/translator/src/test/kotlin/tests/enum_complex/enum_complex.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/enum_complex.txt rename to translator/src/test/kotlin/tests/enum_complex/enum_complex.txt diff --git a/translator/src/test/kotlin/tests/kotlin/enum_inner_fields.kt b/translator/src/test/kotlin/tests/enum_inner_fields/enum_inner_fields.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/enum_inner_fields.kt rename to translator/src/test/kotlin/tests/enum_inner_fields/enum_inner_fields.kt diff --git a/translator/src/test/kotlin/tests/input/enum_inner_fields.txt b/translator/src/test/kotlin/tests/enum_inner_fields/enum_inner_fields.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/enum_inner_fields.txt rename to translator/src/test/kotlin/tests/enum_inner_fields/enum_inner_fields.txt diff --git a/translator/src/test/kotlin/tests/kotlin/floating_point_operators_1.kt b/translator/src/test/kotlin/tests/floating_point_operators_1/floating_point_operators_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/floating_point_operators_1.kt rename to translator/src/test/kotlin/tests/floating_point_operators_1/floating_point_operators_1.kt diff --git a/translator/src/test/kotlin/tests/input/floating_point_operators_1.txt b/translator/src/test/kotlin/tests/floating_point_operators_1/floating_point_operators_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/floating_point_operators_1.txt rename to translator/src/test/kotlin/tests/floating_point_operators_1/floating_point_operators_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/for_1.kt b/translator/src/test/kotlin/tests/for_1/for_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/for_1.kt rename to translator/src/test/kotlin/tests/for_1/for_1.kt diff --git a/translator/src/test/kotlin/tests/input/for_1.txt b/translator/src/test/kotlin/tests/for_1/for_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/for_1.txt rename to translator/src/test/kotlin/tests/for_1/for_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/function_default_arguments_1.kt b/translator/src/test/kotlin/tests/function_default_arguments_1/function_default_arguments_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/function_default_arguments_1.kt rename to translator/src/test/kotlin/tests/function_default_arguments_1/function_default_arguments_1.kt diff --git a/translator/src/test/kotlin/tests/input/function_default_arguments_1.txt b/translator/src/test/kotlin/tests/function_default_arguments_1/function_default_arguments_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/function_default_arguments_1.txt rename to translator/src/test/kotlin/tests/function_default_arguments_1/function_default_arguments_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/function_eq.kt b/translator/src/test/kotlin/tests/function_eq/function_eq.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/function_eq.kt rename to translator/src/test/kotlin/tests/function_eq/function_eq.kt diff --git a/translator/src/test/kotlin/tests/input/function_eq.txt b/translator/src/test/kotlin/tests/function_eq/function_eq.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/function_eq.txt rename to translator/src/test/kotlin/tests/function_eq/function_eq.txt diff --git a/translator/src/test/kotlin/tests/kotlin/function_extensions_1.kt b/translator/src/test/kotlin/tests/function_extensions_1/function_extensions_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/function_extensions_1.kt rename to translator/src/test/kotlin/tests/function_extensions_1/function_extensions_1.kt diff --git a/translator/src/test/kotlin/tests/input/function_extensions_1.txt b/translator/src/test/kotlin/tests/function_extensions_1/function_extensions_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/function_extensions_1.txt rename to translator/src/test/kotlin/tests/function_extensions_1/function_extensions_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/function_extensions_double_argument_1.kt b/translator/src/test/kotlin/tests/function_extensions_double_argument_1/function_extensions_double_argument_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/function_extensions_double_argument_1.kt rename to translator/src/test/kotlin/tests/function_extensions_double_argument_1/function_extensions_double_argument_1.kt diff --git a/translator/src/test/kotlin/tests/input/function_extensions_double_argument_1.txt b/translator/src/test/kotlin/tests/function_extensions_double_argument_1/function_extensions_double_argument_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/function_extensions_double_argument_1.txt rename to translator/src/test/kotlin/tests/function_extensions_double_argument_1/function_extensions_double_argument_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/get_set_operators_1.kt b/translator/src/test/kotlin/tests/get_set_operators_1/get_set_operators_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/get_set_operators_1.kt rename to translator/src/test/kotlin/tests/get_set_operators_1/get_set_operators_1.kt diff --git a/translator/src/test/kotlin/tests/input/get_set_operators_1.txt b/translator/src/test/kotlin/tests/get_set_operators_1/get_set_operators_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/get_set_operators_1.txt rename to translator/src/test/kotlin/tests/get_set_operators_1/get_set_operators_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/global_vars_1.kt b/translator/src/test/kotlin/tests/global_vars_1/global_vars_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/global_vars_1.kt rename to translator/src/test/kotlin/tests/global_vars_1/global_vars_1.kt diff --git a/translator/src/test/kotlin/tests/input/global_vars_1.txt b/translator/src/test/kotlin/tests/global_vars_1/global_vars_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/global_vars_1.txt rename to translator/src/test/kotlin/tests/global_vars_1/global_vars_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/if_1.kt b/translator/src/test/kotlin/tests/if_1/if_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/if_1.kt rename to translator/src/test/kotlin/tests/if_1/if_1.kt diff --git a/translator/src/test/kotlin/tests/input/if_1.txt b/translator/src/test/kotlin/tests/if_1/if_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/if_1.txt rename to translator/src/test/kotlin/tests/if_1/if_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/if_2.kt b/translator/src/test/kotlin/tests/if_2/if_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/if_2.kt rename to translator/src/test/kotlin/tests/if_2/if_2.kt diff --git a/translator/src/test/kotlin/tests/input/if_2.txt b/translator/src/test/kotlin/tests/if_2/if_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/if_2.txt rename to translator/src/test/kotlin/tests/if_2/if_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/if_boolean_argument_1.kt b/translator/src/test/kotlin/tests/if_boolean_argument_1/if_boolean_argument_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/if_boolean_argument_1.kt rename to translator/src/test/kotlin/tests/if_boolean_argument_1/if_boolean_argument_1.kt diff --git a/translator/src/test/kotlin/tests/input/if_boolean_argument_1.txt b/translator/src/test/kotlin/tests/if_boolean_argument_1/if_boolean_argument_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/if_boolean_argument_1.txt rename to translator/src/test/kotlin/tests/if_boolean_argument_1/if_boolean_argument_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/if_expression_1.kt b/translator/src/test/kotlin/tests/if_expression_1/if_expression_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/if_expression_1.kt rename to translator/src/test/kotlin/tests/if_expression_1/if_expression_1.kt diff --git a/translator/src/test/kotlin/tests/input/if_expression_1.txt b/translator/src/test/kotlin/tests/if_expression_1/if_expression_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/if_expression_1.txt rename to translator/src/test/kotlin/tests/if_expression_1/if_expression_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/initialization_in_place_and_this_1.kt b/translator/src/test/kotlin/tests/initialization_in_place_and_this_1/initialization_in_place_and_this_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/initialization_in_place_and_this_1.kt rename to translator/src/test/kotlin/tests/initialization_in_place_and_this_1/initialization_in_place_and_this_1.kt diff --git a/translator/src/test/kotlin/tests/input/initialization_in_place_and_this_1.txt b/translator/src/test/kotlin/tests/initialization_in_place_and_this_1/initialization_in_place_and_this_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/initialization_in_place_and_this_1.txt rename to translator/src/test/kotlin/tests/initialization_in_place_and_this_1/initialization_in_place_and_this_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/initialized_class_fields_1.kt b/translator/src/test/kotlin/tests/initialized_class_fields_1/initialized_class_fields_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/initialized_class_fields_1.kt rename to translator/src/test/kotlin/tests/initialized_class_fields_1/initialized_class_fields_1.kt diff --git a/translator/src/test/kotlin/tests/input/initialized_class_fields_1.txt b/translator/src/test/kotlin/tests/initialized_class_fields_1/initialized_class_fields_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/initialized_class_fields_1.txt rename to translator/src/test/kotlin/tests/initialized_class_fields_1/initialized_class_fields_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/intarray_1.kt b/translator/src/test/kotlin/tests/intarray_1/intarray_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/intarray_1.kt rename to translator/src/test/kotlin/tests/intarray_1/intarray_1.kt diff --git a/translator/src/test/kotlin/tests/input/intarray_1.txt b/translator/src/test/kotlin/tests/intarray_1/intarray_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/intarray_1.txt rename to translator/src/test/kotlin/tests/intarray_1/intarray_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/long_operations_1.kt b/translator/src/test/kotlin/tests/long_operations_1/long_operations_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/long_operations_1.kt rename to translator/src/test/kotlin/tests/long_operations_1/long_operations_1.kt diff --git a/translator/src/test/kotlin/tests/input/long_operations_1.txt b/translator/src/test/kotlin/tests/long_operations_1/long_operations_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/long_operations_1.txt rename to translator/src/test/kotlin/tests/long_operations_1/long_operations_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/nested_classes.kt b/translator/src/test/kotlin/tests/nested_classes/nested_classes.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/nested_classes.kt rename to translator/src/test/kotlin/tests/nested_classes/nested_classes.kt diff --git a/translator/src/test/kotlin/tests/input/nested_classes.txt b/translator/src/test/kotlin/tests/nested_classes/nested_classes.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/nested_classes.txt rename to translator/src/test/kotlin/tests/nested_classes/nested_classes.txt diff --git a/translator/src/test/kotlin/tests/kotlin/null_comparison_1.kt b/translator/src/test/kotlin/tests/null_comparison_1/null_comparison_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/null_comparison_1.kt rename to translator/src/test/kotlin/tests/null_comparison_1/null_comparison_1.kt diff --git a/translator/src/test/kotlin/tests/input/null_comparison_1.txt b/translator/src/test/kotlin/tests/null_comparison_1/null_comparison_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/null_comparison_1.txt rename to translator/src/test/kotlin/tests/null_comparison_1/null_comparison_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/nullable_1.kt b/translator/src/test/kotlin/tests/nullable_1/nullable_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/nullable_1.kt rename to translator/src/test/kotlin/tests/nullable_1/nullable_1.kt diff --git a/translator/src/test/kotlin/tests/input/nullable_1.txt b/translator/src/test/kotlin/tests/nullable_1/nullable_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/nullable_1.txt rename to translator/src/test/kotlin/tests/nullable_1/nullable_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/nullable_class_fields_1.kt b/translator/src/test/kotlin/tests/nullable_class_fields_1/nullable_class_fields_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/nullable_class_fields_1.kt rename to translator/src/test/kotlin/tests/nullable_class_fields_1/nullable_class_fields_1.kt diff --git a/translator/src/test/kotlin/tests/input/nullable_class_fields_1.txt b/translator/src/test/kotlin/tests/nullable_class_fields_1/nullable_class_fields_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/nullable_class_fields_1.txt rename to translator/src/test/kotlin/tests/nullable_class_fields_1/nullable_class_fields_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/nullable_primitive_types_1.kt b/translator/src/test/kotlin/tests/nullable_primitive_types_1/nullable_primitive_types_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/nullable_primitive_types_1.kt rename to translator/src/test/kotlin/tests/nullable_primitive_types_1/nullable_primitive_types_1.kt diff --git a/translator/src/test/kotlin/tests/input/nullable_primitive_types_1.txt b/translator/src/test/kotlin/tests/nullable_primitive_types_1/nullable_primitive_types_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/nullable_primitive_types_1.txt rename to translator/src/test/kotlin/tests/nullable_primitive_types_1/nullable_primitive_types_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/numeric_literals_1.kt b/translator/src/test/kotlin/tests/numeric_literals_1/numeric_literals_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/numeric_literals_1.kt rename to translator/src/test/kotlin/tests/numeric_literals_1/numeric_literals_1.kt diff --git a/translator/src/test/kotlin/tests/input/numeric_literals_1.txt b/translator/src/test/kotlin/tests/numeric_literals_1/numeric_literals_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/numeric_literals_1.txt rename to translator/src/test/kotlin/tests/numeric_literals_1/numeric_literals_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/object_1.kt b/translator/src/test/kotlin/tests/object_1/object_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/object_1.kt rename to translator/src/test/kotlin/tests/object_1/object_1.kt diff --git a/translator/src/test/kotlin/tests/input/object_1.txt b/translator/src/test/kotlin/tests/object_1/object_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/object_1.txt rename to translator/src/test/kotlin/tests/object_1/object_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/postfix_1.kt b/translator/src/test/kotlin/tests/postfix_1/postfix_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/postfix_1.kt rename to translator/src/test/kotlin/tests/postfix_1/postfix_1.kt diff --git a/translator/src/test/kotlin/tests/input/postfix_1.txt b/translator/src/test/kotlin/tests/postfix_1/postfix_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/postfix_1.txt rename to translator/src/test/kotlin/tests/postfix_1/postfix_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/primitives_1.kt b/translator/src/test/kotlin/tests/primitives_1/primitives_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/primitives_1.kt rename to translator/src/test/kotlin/tests/primitives_1/primitives_1.kt diff --git a/translator/src/test/kotlin/tests/input/primitives_1.txt b/translator/src/test/kotlin/tests/primitives_1/primitives_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/primitives_1.txt rename to translator/src/test/kotlin/tests/primitives_1/primitives_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_crossbranch_test.kt b/translator/src/test/kotlin/tests/proto_crossbranch_test/proto_crossbranch_test.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_crossbranch_test.kt rename to translator/src/test/kotlin/tests/proto_crossbranch_test/proto_crossbranch_test.kt diff --git a/translator/src/test/kotlin/tests/input/proto_crossbranch_test.txt b/translator/src/test/kotlin/tests/proto_crossbranch_test/proto_crossbranch_test.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_crossbranch_test.txt rename to translator/src/test/kotlin/tests/proto_crossbranch_test/proto_crossbranch_test.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_location_test.kt b/translator/src/test/kotlin/tests/proto_location_test/proto_location_test.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_location_test.kt rename to translator/src/test/kotlin/tests/proto_location_test/proto_location_test.kt diff --git a/translator/src/test/kotlin/tests/input/proto_location_test.txt b/translator/src/test/kotlin/tests/proto_location_test/proto_location_test.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_location_test.txt rename to translator/src/test/kotlin/tests/proto_location_test/proto_location_test.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_multiple_messages.kt b/translator/src/test/kotlin/tests/proto_multiple_messages/proto_multiple_messages.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_multiple_messages.kt rename to translator/src/test/kotlin/tests/proto_multiple_messages/proto_multiple_messages.kt diff --git a/translator/src/test/kotlin/tests/input/proto_multiple_messages.txt b/translator/src/test/kotlin/tests/proto_multiple_messages/proto_multiple_messages.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_multiple_messages.txt rename to translator/src/test/kotlin/tests/proto_multiple_messages/proto_multiple_messages.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_repeated_varint.kt b/translator/src/test/kotlin/tests/proto_repeated_varint/proto_repeated_varint.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_repeated_varint.kt rename to translator/src/test/kotlin/tests/proto_repeated_varint/proto_repeated_varint.kt diff --git a/translator/src/test/kotlin/tests/input/proto_repeated_varint.txt b/translator/src/test/kotlin/tests/proto_repeated_varint/proto_repeated_varint.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_repeated_varint.txt rename to translator/src/test/kotlin/tests/proto_repeated_varint/proto_repeated_varint.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_repeated_zigzag.kt b/translator/src/test/kotlin/tests/proto_repeated_zigzag/proto_repeated_zigzag.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_repeated_zigzag.kt rename to translator/src/test/kotlin/tests/proto_repeated_zigzag/proto_repeated_zigzag.kt diff --git a/translator/src/test/kotlin/tests/input/proto_repeated_zigzag.txt b/translator/src/test/kotlin/tests/proto_repeated_zigzag/proto_repeated_zigzag.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_repeated_zigzag.txt rename to translator/src/test/kotlin/tests/proto_repeated_zigzag/proto_repeated_zigzag.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_tagorder_test.kt b/translator/src/test/kotlin/tests/proto_tagorder_test/proto_tagorder_test.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_tagorder_test.kt rename to translator/src/test/kotlin/tests/proto_tagorder_test/proto_tagorder_test.kt diff --git a/translator/src/test/kotlin/tests/input/proto_tagorder_test.txt b/translator/src/test/kotlin/tests/proto_tagorder_test/proto_tagorder_test.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_tagorder_test.txt rename to translator/src/test/kotlin/tests/proto_tagorder_test/proto_tagorder_test.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_varint.kt b/translator/src/test/kotlin/tests/proto_varint/proto_varint.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_varint.kt rename to translator/src/test/kotlin/tests/proto_varint/proto_varint.kt diff --git a/translator/src/test/kotlin/tests/input/proto_varint.txt b/translator/src/test/kotlin/tests/proto_varint/proto_varint.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_varint.txt rename to translator/src/test/kotlin/tests/proto_varint/proto_varint.txt diff --git a/translator/src/test/kotlin/tests/kotlin/proto_zigzag.kt b/translator/src/test/kotlin/tests/proto_zigzag/proto_zigzag.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/proto_zigzag.kt rename to translator/src/test/kotlin/tests/proto_zigzag/proto_zigzag.kt diff --git a/translator/src/test/kotlin/tests/input/proto_zigzag.txt b/translator/src/test/kotlin/tests/proto_zigzag/proto_zigzag.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/proto_zigzag.txt rename to translator/src/test/kotlin/tests/proto_zigzag/proto_zigzag.txt diff --git a/translator/src/test/kotlin/tests/kotlin/range_operator_1.kt b/translator/src/test/kotlin/tests/range_operator_1/range_operator_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/range_operator_1.kt rename to translator/src/test/kotlin/tests/range_operator_1/range_operator_1.kt diff --git a/translator/src/test/kotlin/tests/input/range_operator_1.txt b/translator/src/test/kotlin/tests/range_operator_1/range_operator_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/range_operator_1.txt rename to translator/src/test/kotlin/tests/range_operator_1/range_operator_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/reassigment_0.kt b/translator/src/test/kotlin/tests/reassigment_0/reassigment_0.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/reassigment_0.kt rename to translator/src/test/kotlin/tests/reassigment_0/reassigment_0.kt diff --git a/translator/src/test/kotlin/tests/input/reassigment_0.txt b/translator/src/test/kotlin/tests/reassigment_0/reassigment_0.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/reassigment_0.txt rename to translator/src/test/kotlin/tests/reassigment_0/reassigment_0.txt diff --git a/translator/src/test/kotlin/tests/kotlin/reassigment_1.kt b/translator/src/test/kotlin/tests/reassigment_1/reassigment_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/reassigment_1.kt rename to translator/src/test/kotlin/tests/reassigment_1/reassigment_1.kt diff --git a/translator/src/test/kotlin/tests/input/reassigment_1.txt b/translator/src/test/kotlin/tests/reassigment_1/reassigment_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/reassigment_1.txt rename to translator/src/test/kotlin/tests/reassigment_1/reassigment_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/referential_equality_1.kt b/translator/src/test/kotlin/tests/referential_equality_1/referential_equality_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/referential_equality_1.kt rename to translator/src/test/kotlin/tests/referential_equality_1/referential_equality_1.kt diff --git a/translator/src/test/kotlin/tests/input/referential_equality_1.txt b/translator/src/test/kotlin/tests/referential_equality_1/referential_equality_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/referential_equality_1.txt rename to translator/src/test/kotlin/tests/referential_equality_1/referential_equality_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/referential_equality_2.kt b/translator/src/test/kotlin/tests/referential_equality_2/referential_equality_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/referential_equality_2.kt rename to translator/src/test/kotlin/tests/referential_equality_2/referential_equality_2.kt diff --git a/translator/src/test/kotlin/tests/input/referential_equality_2.txt b/translator/src/test/kotlin/tests/referential_equality_2/referential_equality_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/referential_equality_2.txt rename to translator/src/test/kotlin/tests/referential_equality_2/referential_equality_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/return_1.kt b/translator/src/test/kotlin/tests/return_1/return_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/return_1.kt rename to translator/src/test/kotlin/tests/return_1/return_1.kt diff --git a/translator/src/test/kotlin/tests/input/return_1.txt b/translator/src/test/kotlin/tests/return_1/return_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/return_1.txt rename to translator/src/test/kotlin/tests/return_1/return_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/safe_access_operator.kt b/translator/src/test/kotlin/tests/safe_access_operator/safe_access_operator.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/safe_access_operator.kt rename to translator/src/test/kotlin/tests/safe_access_operator/safe_access_operator.kt diff --git a/translator/src/test/kotlin/tests/input/safe_access_operator.txt b/translator/src/test/kotlin/tests/safe_access_operator/safe_access_operator.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/safe_access_operator.txt rename to translator/src/test/kotlin/tests/safe_access_operator/safe_access_operator.txt diff --git a/translator/src/test/kotlin/tests/kotlin/secondary_constructor_1.kt b/translator/src/test/kotlin/tests/secondary_constructor_1/secondary_constructor_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/secondary_constructor_1.kt rename to translator/src/test/kotlin/tests/secondary_constructor_1/secondary_constructor_1.kt diff --git a/translator/src/test/kotlin/tests/input/secondary_constructor_1.txt b/translator/src/test/kotlin/tests/secondary_constructor_1/secondary_constructor_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/secondary_constructor_1.txt rename to translator/src/test/kotlin/tests/secondary_constructor_1/secondary_constructor_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/serialization_test.kt b/translator/src/test/kotlin/tests/serialization_test/serialization_test.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/serialization_test.kt rename to translator/src/test/kotlin/tests/serialization_test/serialization_test.kt diff --git a/translator/src/test/kotlin/tests/input/serialization_test.txt b/translator/src/test/kotlin/tests/serialization_test/serialization_test.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/serialization_test.txt rename to translator/src/test/kotlin/tests/serialization_test/serialization_test.txt diff --git a/translator/src/test/kotlin/tests/kotlin/simple_class_2.kt b/translator/src/test/kotlin/tests/simple_class_2/simple_class_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/simple_class_2.kt rename to translator/src/test/kotlin/tests/simple_class_2/simple_class_2.kt diff --git a/translator/src/test/kotlin/tests/input/simple_class_2.txt b/translator/src/test/kotlin/tests/simple_class_2/simple_class_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/simple_class_2.txt rename to translator/src/test/kotlin/tests/simple_class_2/simple_class_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/simple_proto_test_1.kt b/translator/src/test/kotlin/tests/simple_proto_test_1/simple_proto_test_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/simple_proto_test_1.kt rename to translator/src/test/kotlin/tests/simple_proto_test_1/simple_proto_test_1.kt diff --git a/translator/src/test/kotlin/tests/input/simple_proto_test_1.txt b/translator/src/test/kotlin/tests/simple_proto_test_1/simple_proto_test_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/simple_proto_test_1.txt rename to translator/src/test/kotlin/tests/simple_proto_test_1/simple_proto_test_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/simply_class_1.kt b/translator/src/test/kotlin/tests/simply_class_1/simply_class_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/simply_class_1.kt rename to translator/src/test/kotlin/tests/simply_class_1/simply_class_1.kt diff --git a/translator/src/test/kotlin/tests/input/simply_class_1.txt b/translator/src/test/kotlin/tests/simply_class_1/simply_class_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/simply_class_1.txt rename to translator/src/test/kotlin/tests/simply_class_1/simply_class_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/smartcast_1.kt b/translator/src/test/kotlin/tests/smartcast_1/smartcast_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/smartcast_1.kt rename to translator/src/test/kotlin/tests/smartcast_1/smartcast_1.kt diff --git a/translator/src/test/kotlin/tests/input/smartcast_1.txt b/translator/src/test/kotlin/tests/smartcast_1/smartcast_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/smartcast_1.txt rename to translator/src/test/kotlin/tests/smartcast_1/smartcast_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/stress_test_1.kt b/translator/src/test/kotlin/tests/stress_test_1/stress_test_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/stress_test_1.kt rename to translator/src/test/kotlin/tests/stress_test_1/stress_test_1.kt diff --git a/translator/src/test/kotlin/tests/input/stress_test_1.txt b/translator/src/test/kotlin/tests/stress_test_1/stress_test_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/stress_test_1.txt rename to translator/src/test/kotlin/tests/stress_test_1/stress_test_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/string_print_test_1.kt b/translator/src/test/kotlin/tests/string_print_test_1/string_print_test_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/string_print_test_1.kt rename to translator/src/test/kotlin/tests/string_print_test_1/string_print_test_1.kt diff --git a/translator/src/test/kotlin/tests/input/string_print_test_1.txt b/translator/src/test/kotlin/tests/string_print_test_1/string_print_test_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/string_print_test_1.txt rename to translator/src/test/kotlin/tests/string_print_test_1/string_print_test_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/this_test_1.kt b/translator/src/test/kotlin/tests/this_test_1/this_test_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/this_test_1.kt rename to translator/src/test/kotlin/tests/this_test_1/this_test_1.kt diff --git a/translator/src/test/kotlin/tests/input/this_test_1.txt b/translator/src/test/kotlin/tests/this_test_1/this_test_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/this_test_1.txt rename to translator/src/test/kotlin/tests/this_test_1/this_test_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/unary_operators_1.kt b/translator/src/test/kotlin/tests/unary_operators_1/unary_operators_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/unary_operators_1.kt rename to translator/src/test/kotlin/tests/unary_operators_1/unary_operators_1.kt diff --git a/translator/src/test/kotlin/tests/input/unary_operators_1.txt b/translator/src/test/kotlin/tests/unary_operators_1/unary_operators_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/unary_operators_1.txt rename to translator/src/test/kotlin/tests/unary_operators_1/unary_operators_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/variables_assigment_1.kt b/translator/src/test/kotlin/tests/variables_assigment_1/variables_assigment_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/variables_assigment_1.kt rename to translator/src/test/kotlin/tests/variables_assigment_1/variables_assigment_1.kt diff --git a/translator/src/test/kotlin/tests/input/variables_assigment_1.txt b/translator/src/test/kotlin/tests/variables_assigment_1/variables_assigment_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/variables_assigment_1.txt rename to translator/src/test/kotlin/tests/variables_assigment_1/variables_assigment_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/when_block.kt b/translator/src/test/kotlin/tests/when_block/when_block.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/when_block.kt rename to translator/src/test/kotlin/tests/when_block/when_block.kt diff --git a/translator/src/test/kotlin/tests/input/when_block.txt b/translator/src/test/kotlin/tests/when_block/when_block.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/when_block.txt rename to translator/src/test/kotlin/tests/when_block/when_block.txt diff --git a/translator/src/test/kotlin/tests/kotlin/when_expression_1.kt b/translator/src/test/kotlin/tests/when_expression_1/when_expression_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/when_expression_1.kt rename to translator/src/test/kotlin/tests/when_expression_1/when_expression_1.kt diff --git a/translator/src/test/kotlin/tests/input/when_expression_1.txt b/translator/src/test/kotlin/tests/when_expression_1/when_expression_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/when_expression_1.txt rename to translator/src/test/kotlin/tests/when_expression_1/when_expression_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/while_1.kt b/translator/src/test/kotlin/tests/while_1/while_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/while_1.kt rename to translator/src/test/kotlin/tests/while_1/while_1.kt diff --git a/translator/src/test/kotlin/tests/input/while_1.txt b/translator/src/test/kotlin/tests/while_1/while_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/while_1.txt rename to translator/src/test/kotlin/tests/while_1/while_1.txt diff --git a/translator/src/test/kotlin/tests/c/while_2.c b/translator/src/test/kotlin/tests/while_2/while_2.c similarity index 100% rename from translator/src/test/kotlin/tests/c/while_2.c rename to translator/src/test/kotlin/tests/while_2/while_2.c diff --git a/translator/src/test/kotlin/tests/kotlin/while_2.kt b/translator/src/test/kotlin/tests/while_2/while_2.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/while_2.kt rename to translator/src/test/kotlin/tests/while_2/while_2.kt diff --git a/translator/src/test/kotlin/tests/input/while_2.txt b/translator/src/test/kotlin/tests/while_2/while_2.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/while_2.txt rename to translator/src/test/kotlin/tests/while_2/while_2.txt diff --git a/translator/src/test/kotlin/tests/kotlin/while_argument_side_effects_1.kt b/translator/src/test/kotlin/tests/while_argument_side_effects_1/while_argument_side_effects_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/while_argument_side_effects_1.kt rename to translator/src/test/kotlin/tests/while_argument_side_effects_1/while_argument_side_effects_1.kt diff --git a/translator/src/test/kotlin/tests/input/while_argument_side_effects_1.txt b/translator/src/test/kotlin/tests/while_argument_side_effects_1/while_argument_side_effects_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/while_argument_side_effects_1.txt rename to translator/src/test/kotlin/tests/while_argument_side_effects_1/while_argument_side_effects_1.txt diff --git a/translator/src/test/kotlin/tests/kotlin/while_break_1.kt b/translator/src/test/kotlin/tests/while_break_1/while_break_1.kt similarity index 100% rename from translator/src/test/kotlin/tests/kotlin/while_break_1.kt rename to translator/src/test/kotlin/tests/while_break_1/while_break_1.kt diff --git a/translator/src/test/kotlin/tests/input/while_break_1.txt b/translator/src/test/kotlin/tests/while_break_1/while_break_1.txt similarity index 100% rename from translator/src/test/kotlin/tests/input/while_break_1.txt rename to translator/src/test/kotlin/tests/while_break_1/while_break_1.txt