From c8b89094e6d83cdf807cb90effc28ad722bda7a7 Mon Sep 17 00:00:00 2001 From: Ayush Rusiya <166496159+ayushrusiya9@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:06:44 +0530 Subject: [PATCH 1/2] Implement tests for string transformation functions Add unit tests for min cost string conversion functions. --- test_min_cost_string_conversion.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 test_min_cost_string_conversion.py diff --git a/test_min_cost_string_conversion.py b/test_min_cost_string_conversion.py new file mode 100644 index 000000000000..86dbc6e944cd --- /dev/null +++ b/test_min_cost_string_conversion.py @@ -0,0 +1,17 @@ +import pytest +from strings.min_cost_string_conversion import compute_transform_tables, assemble_transformation + +def test_empty_strings(): + costs, ops = compute_transform_tables("", "", 1,1,1,1) + assert costs == [[0]] + assert assemble_transformation(ops, 0, 0) == [] + +def test_copy_only(): + costs, ops = compute_transform_tables("abc", "abc", 1,2,3,3) + assert costs[-1][-1] == 3 # cost = sum of copy costs + assert assemble_transformation(ops, len(ops)-1, len(ops[0])-1) == ["Ca", "Cb", "Cc"] + +def test_insert_only(): + costs, ops = compute_transform_tables("", "xyz", 1,1,1,1) + seq = assemble_transformation(ops, 0, len(ops[0])-1) + assert seq == ["Ix", "Iy", "Iz"] From c06b90b83cb1aa872d0d75b2b54eb77eea5cafe4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 06:37:57 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- test_min_cost_string_conversion.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/test_min_cost_string_conversion.py b/test_min_cost_string_conversion.py index 86dbc6e944cd..d7baa8cef104 100644 --- a/test_min_cost_string_conversion.py +++ b/test_min_cost_string_conversion.py @@ -1,17 +1,27 @@ import pytest -from strings.min_cost_string_conversion import compute_transform_tables, assemble_transformation +from strings.min_cost_string_conversion import ( + compute_transform_tables, + assemble_transformation, +) + def test_empty_strings(): - costs, ops = compute_transform_tables("", "", 1,1,1,1) + costs, ops = compute_transform_tables("", "", 1, 1, 1, 1) assert costs == [[0]] assert assemble_transformation(ops, 0, 0) == [] + def test_copy_only(): - costs, ops = compute_transform_tables("abc", "abc", 1,2,3,3) + costs, ops = compute_transform_tables("abc", "abc", 1, 2, 3, 3) assert costs[-1][-1] == 3 # cost = sum of copy costs - assert assemble_transformation(ops, len(ops)-1, len(ops[0])-1) == ["Ca", "Cb", "Cc"] + assert assemble_transformation(ops, len(ops) - 1, len(ops[0]) - 1) == [ + "Ca", + "Cb", + "Cc", + ] + def test_insert_only(): - costs, ops = compute_transform_tables("", "xyz", 1,1,1,1) - seq = assemble_transformation(ops, 0, len(ops[0])-1) + costs, ops = compute_transform_tables("", "xyz", 1, 1, 1, 1) + seq = assemble_transformation(ops, 0, len(ops[0]) - 1) assert seq == ["Ix", "Iy", "Iz"]