fastled 1.4.39__tar.gz → 1.4.41__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastled-1.4.39 → fastled-1.4.41}/PKG-INFO +1 -1
- {fastled-1.4.39 → fastled-1.4.41}/build_local_docker.py +0 -2
- {fastled-1.4.39 → fastled-1.4.41}/setup.py +0 -2
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/__version__.py +1 -1
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/string_diff.py +94 -8
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled.egg-info/PKG-INFO +1 -1
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_manual_api_invocation.py +1 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_string_diff_comprehensive.py +55 -0
- {fastled-1.4.39 → fastled-1.4.41}/.aiderignore +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.claude/settings.local.json +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.cursorrules +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.dockerignore +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/build_multi_docker_image.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/build_webpage.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/lint.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/publish_release.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/template_build_docker_image.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/test_build_exe.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/test_macos.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/test_ubuntu.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.github/workflows/test_win.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.gitignore +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.pylintrc +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.vscode/launch.json +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.vscode/settings.json +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/.vscode/tasks.json +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/DEBUGGER.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/Dockerfile +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/EXTENDED_INO.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/FAQ.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/LICENSE +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/MANIFEST.in +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/README.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/RELEASE.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/TODO.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/build_exe.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/build_site.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/chrome_vscode_bridge_design_task.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/clean +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/compiler/debug.sh +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/compiler/run.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/demo/100dots.html +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/demo/demo_threejs.html +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/demo/micdemo.html +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/demo/mp3upload.html +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/demo/webgl_postprocessing_unreal_bloom.html +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/docker-compose.yml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/entrypoint.sh +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/install +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/install_linux.sh +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/lint +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/pyproject.toml +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/requirements.docker.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/requirements.testing.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/setup.cfg +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/__init__.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/__main__.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/app.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/args.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/assets/example.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/assets/localhost-key.pem +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/assets/localhost.pem +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/cli.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/cli_test.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/cli_test_interactive.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/client_server.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/compile_server.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/compile_server_impl.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/docker_manager.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/emoji_util.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/filewatcher.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/find_good_connection.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/header_dump.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/__init__.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/examples_manager.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/extension_manager.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/main.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/project_detection.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/test_install.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/install/vscode_config.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/interruptible_http.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/keyboard.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/keyz.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/live_client.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/open_browser.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/parse_args.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/paths.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/playwright/chrome_extension_downloader.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/playwright/playwright_browser.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/playwright/resize_tracking.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/print_filter.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/project_init.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/select_sketch_directory.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/server_flask.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/server_start.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/settings.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/site/build.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/site/examples.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/sketch.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/spinner.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/test/can_run_local_docker_tests.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/test/examples.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/types.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/util.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/version.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/web_compile.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled/zip_files.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled.egg-info/SOURCES.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled.egg-info/dependency_links.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled.egg-info/entry_points.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled.egg-info/requires.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/src/fastled.egg-info/top_level.txt +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/task.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/task2.md +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/test +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/integration/test_build_examples.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/integration/test_examples.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/integration/test_libcompile.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/integration/test_playwright_integration.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/html/index.html +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_api.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_bad_ino.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_banner_string.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_cli.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_cli_no_platformio.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_compile_server.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_debug_fetch_source_files.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_docker_linux_on_windows.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_embedded_data.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_filechanger.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_flask_headers.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_header_dump.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_http_server.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_ino/bad/bad.ino +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_ino/bad_platformio/bad_platformio.ino +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_ino/bad_platformio/platformio.ini +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_ino/embedded/data/bigdata.dat +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_ino/embedded/wasm.ino +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_ino/wasm/wasm.ino +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_no_platformio_compile.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_project_init.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_server_and_client_seperatly.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_session_compile.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_string_diff.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_version.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/tests/unit/test_webcompile.py +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/upload_package.sh +0 -0
- {fastled-1.4.39 → fastled-1.4.41}/vscode-plugin/readme +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
# IMPORTANT! There's a bug in github which will REJECT any version update
|
2
2
|
# that has any other change in the repo. Please bump the version as the
|
3
3
|
# ONLY change in a commit, or else the pypi update and the release will fail.
|
4
|
-
__version__ = "1.4.
|
4
|
+
__version__ = "1.4.41"
|
5
5
|
|
6
6
|
__version_url_latest__ = "https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/src/fastled/__version__.py"
|
@@ -80,14 +80,100 @@ def string_diff(
|
|
80
80
|
exact_matches = [s for s in string_list if s == input_string]
|
81
81
|
substring_matches = [s for s in string_list if input_string in s]
|
82
82
|
|
83
|
-
# If there's
|
84
|
-
#
|
85
|
-
if exact_matches and len(substring_matches) > 1:
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
83
|
+
# If there's exactly one exact match, and there are substring matches,
|
84
|
+
# check if we should prioritize the exact match or return all variants
|
85
|
+
if len(exact_matches) == 1 and len(substring_matches) > 1:
|
86
|
+
exact_match = exact_matches[0]
|
87
|
+
other_substring_matches = [s for s in substring_matches if s != exact_match]
|
88
|
+
|
89
|
+
# Prioritize exact match only if it appears at the start of other matches
|
90
|
+
# AND those matches have a camelCase boundary (indicating compound words)
|
91
|
+
# We need to use the original (non-lowercased) strings for camelCase detection
|
92
|
+
should_prioritize_exact = True
|
93
|
+
original_exact_match = map_string[exact_match] # Get the original casing
|
94
|
+
|
95
|
+
for other_match in other_substring_matches:
|
96
|
+
original_other_match = map_string[other_match] # Get the original casing
|
97
|
+
|
98
|
+
if not original_other_match.lower().startswith(
|
99
|
+
original_exact_match.lower()
|
100
|
+
):
|
101
|
+
# If the exact match isn't at the start, don't prioritize
|
102
|
+
should_prioritize_exact = False
|
103
|
+
break
|
104
|
+
|
105
|
+
# Check for camelCase boundary after the exact match in the ORIGINAL string
|
106
|
+
remainder = original_other_match[len(original_exact_match) :]
|
107
|
+
if remainder and remainder[0].isupper():
|
108
|
+
# Only prioritize exact match if the exact match is very short (4 chars or less)
|
109
|
+
# AND the remainder suggests a different concept
|
110
|
+
if len(original_exact_match) <= 4 and len(remainder) >= 6:
|
111
|
+
# This looks like a camelCase compound word (e.g., "wasm" -> "WasmScreenCoords")
|
112
|
+
continue
|
113
|
+
else:
|
114
|
+
# This looks like a variant (e.g., "Noise" -> "NoisePlayground", "Fire2012" -> "Fire2012WithPalette")
|
115
|
+
should_prioritize_exact = False
|
116
|
+
break
|
117
|
+
else:
|
118
|
+
# This looks like a variant/extension (e.g., "Blur" -> "Blur2d")
|
119
|
+
should_prioritize_exact = False
|
120
|
+
break
|
121
|
+
|
122
|
+
if should_prioritize_exact:
|
123
|
+
out: list[tuple[float, str]] = []
|
124
|
+
for i, s in enumerate(exact_matches):
|
125
|
+
s_mapped = map_string.get(s, s)
|
126
|
+
out.append((i, s_mapped))
|
127
|
+
return out
|
128
|
+
else:
|
129
|
+
# Apply character count filtering only for very specific compound terms
|
130
|
+
# Main criteria: contains numbers AND ends with numbers/letters (like Wave2d, Fire2012)
|
131
|
+
original_exact_match = map_string[exact_match]
|
132
|
+
should_apply_char_filter = (
|
133
|
+
len(original_exact_match) >= 5 # Longer terms
|
134
|
+
and any(c.isdigit() for c in original_exact_match) # Contains numbers
|
135
|
+
and (
|
136
|
+
original_exact_match[-1].isdigit()
|
137
|
+
or original_exact_match[-1].islower()
|
138
|
+
) # Ends specifically (compound pattern)
|
139
|
+
)
|
140
|
+
|
141
|
+
if should_apply_char_filter:
|
142
|
+
# Filter substring matches based on extra character count
|
143
|
+
# Use a more lenient threshold for shorter base terms
|
144
|
+
if len(original_exact_match) <= 6:
|
145
|
+
# For short terms, allow more extra chars (e.g., "Wave2d" + "FxWave2d")
|
146
|
+
MAX_EXTRA_CHARS = min(10, len(original_exact_match) * 2)
|
147
|
+
else:
|
148
|
+
# For longer terms, allow significant extensions (e.g., "Fire2012" + "Fire2012WithPalette")
|
149
|
+
MAX_EXTRA_CHARS = 12
|
150
|
+
|
151
|
+
filtered_matches = []
|
152
|
+
|
153
|
+
for s in substring_matches:
|
154
|
+
original_s = map_string[s]
|
155
|
+
if s == exact_match:
|
156
|
+
# Always include the exact match
|
157
|
+
filtered_matches.append(s)
|
158
|
+
else:
|
159
|
+
# Calculate extra characters
|
160
|
+
extra_chars = len(original_s) - len(original_exact_match)
|
161
|
+
if extra_chars <= MAX_EXTRA_CHARS:
|
162
|
+
filtered_matches.append(s)
|
163
|
+
|
164
|
+
# Return filtered matches
|
165
|
+
out: list[tuple[float, str]] = []
|
166
|
+
for i, s in enumerate(filtered_matches):
|
167
|
+
s_mapped = map_string.get(s, s) or s
|
168
|
+
out.append((i, s_mapped))
|
169
|
+
return out
|
170
|
+
else:
|
171
|
+
# Return all substring matches (original behavior for base terms)
|
172
|
+
out: list[tuple[float, str]] = []
|
173
|
+
for i, s in enumerate(substring_matches):
|
174
|
+
s_mapped = map_string.get(s, s) or s
|
175
|
+
out.append((i, s_mapped))
|
176
|
+
return out
|
91
177
|
|
92
178
|
# If there's only an exact match and no other substring matches, return just the exact match
|
93
179
|
if exact_matches and len(substring_matches) == 1:
|
@@ -511,6 +511,59 @@ class TestStringDiffComprehensive:
|
|
511
511
|
results1 == results2 == results3
|
512
512
|
), f"Results inconsistent for '{test_case}'"
|
513
513
|
|
514
|
+
def test_wasm_disambiguation_issue(self):
|
515
|
+
"""Test the specific Wasm disambiguation issue where exact matches should be prioritized."""
|
516
|
+
# This test exposes the bug where "Wasm" returns both "wasm" and "WasmScreenCoords"
|
517
|
+
# when it should prioritize the exact case-insensitive match "wasm"
|
518
|
+
results = string_diff("Wasm", self.fastled_examples)
|
519
|
+
result_names = [r[1] for r in results]
|
520
|
+
|
521
|
+
# The issue: currently returns both "wasm" and "WasmScreenCoords"
|
522
|
+
# Expected: should only return "wasm" since it's an exact case-insensitive match
|
523
|
+
assert (
|
524
|
+
len(result_names) == 1
|
525
|
+
), f"Expected exactly 1 result for 'Wasm', got {len(result_names)}: {result_names}"
|
526
|
+
assert (
|
527
|
+
result_names[0] == "wasm"
|
528
|
+
), f"Expected 'wasm' as the only result, got: {result_names[0]}"
|
529
|
+
|
530
|
+
def test_character_count_based_disambiguation(self):
|
531
|
+
"""Test that disambiguation considers the number of extra characters."""
|
532
|
+
# Test cases where the exact match should include variants based on character count
|
533
|
+
test_data = ["Wave2d", "FxWave2d", "SuperLongPrefixWave2d"]
|
534
|
+
|
535
|
+
# Wave2d case: should return Wave2d and FxWave2d (Fx is only 2 chars - short prefix)
|
536
|
+
# but exclude SuperLongPrefixWave2d (SuperLongPrefix is 15 chars - long prefix)
|
537
|
+
results = string_diff("Wave2d", test_data)
|
538
|
+
result_names = [r[1] for r in results]
|
539
|
+
|
540
|
+
assert (
|
541
|
+
"Wave2d" in result_names
|
542
|
+
), f"Expected 'Wave2d' in results, got: {result_names}"
|
543
|
+
assert (
|
544
|
+
"FxWave2d" in result_names
|
545
|
+
), f"Expected 'FxWave2d' (short prefix) in results, got: {result_names}"
|
546
|
+
|
547
|
+
# The key test: should exclude long prefixes
|
548
|
+
assert (
|
549
|
+
"SuperLongPrefixWave2d" not in result_names
|
550
|
+
), f"Did not expect 'SuperLongPrefixWave2d' (long prefix) in results, got: {result_names}"
|
551
|
+
|
552
|
+
# Test with Fire2012 example
|
553
|
+
fire_data = ["Fire2012", "FxFire2012", "VeryLongPrefixFire2012"]
|
554
|
+
results = string_diff("Fire2012", fire_data)
|
555
|
+
result_names = [r[1] for r in results]
|
556
|
+
|
557
|
+
assert (
|
558
|
+
"Fire2012" in result_names
|
559
|
+
), f"Expected 'Fire2012' in results, got: {result_names}"
|
560
|
+
assert (
|
561
|
+
"FxFire2012" in result_names
|
562
|
+
), f"Expected 'FxFire2012' (short prefix) in results, got: {result_names}"
|
563
|
+
assert (
|
564
|
+
"VeryLongPrefixFire2012" not in result_names
|
565
|
+
), f"Did not expect 'VeryLongPrefixFire2012' (long prefix) in results, got: {result_names}"
|
566
|
+
|
514
567
|
def test_investigate_multiple_results(self):
|
515
568
|
"""Investigate cases where multiple results are returned and understand why."""
|
516
569
|
# Test cases that might return multiple results
|
@@ -564,6 +617,8 @@ if __name__ == "__main__":
|
|
564
617
|
test_instance.test_special_characters_in_input,
|
565
618
|
test_instance.test_performance_with_large_dataset,
|
566
619
|
test_instance.test_consistency_across_runs,
|
620
|
+
test_instance.test_wasm_disambiguation_issue,
|
621
|
+
test_instance.test_character_count_based_disambiguation,
|
567
622
|
test_instance.test_investigate_multiple_results,
|
568
623
|
]
|
569
624
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|