From f31c33ae01e574b146853ace4a901a3876cf5417 Mon Sep 17 00:00:00 2001 From: Alexy Khrabrov Date: Tue, 6 Oct 2026 12:23:19 -0700 Subject: [PATCH] feat(extensions): port Spark Second String to native Arrow scalars --- examples/extensions/README.md | 7 +- examples/extensions/second-string/Cargo.lock | 2856 +++++++++++++++++ examples/extensions/second-string/Cargo.toml | 31 + examples/extensions/second-string/LICENSE | 203 ++ examples/extensions/second-string/NOTICE | 17 + examples/extensions/second-string/README.md | 88 + .../extensions/second-string/pyproject.toml | 29 + .../python/sail_second_string/__init__.py | 42 + .../python/sail_second_string/_native.pyi | 10 + .../python/sail_second_string/functions.py | 259 ++ .../python/sail_second_string/py.typed | 0 .../sail_second_string/sail-extension.json | 13 + .../second-string/scripts/Oracle.java | 147 + .../second-string/scripts/generate_oracle.py | 502 +++ .../second-string/src/double_metaphone.rs | 506 +++ .../extensions/second-string/src/function.rs | 112 + examples/extensions/second-string/src/lib.rs | 70 + .../extensions/second-string/src/matrix.rs | 366 +++ .../second-string/src/matrix_tests.rs | 288 ++ .../extensions/second-string/src/options.rs | 139 + .../extensions/second-string/src/phonetic.rs | 86 + .../second-string/src/phonetic_tests.rs | 99 + .../extensions/second-string/src/tests.rs | 296 ++ .../extensions/second-string/src/token.rs | 193 ++ .../second-string/src/token_tests.rs | 281 ++ examples/extensions/second-string/src/udf.rs | 286 ++ .../second-string/tests/conftest.py | 88 + .../second-string/tests/fixtures/oracle.json | 1 + .../second-string/tests/test_client.py | 216 ++ .../second-string/tests/test_oracle.py | 207 ++ .../second-string/tests/test_sail.py | 182 ++ 31 files changed, 7618 insertions(+), 2 deletions(-) create mode 100644 examples/extensions/second-string/Cargo.lock create mode 100644 examples/extensions/second-string/Cargo.toml create mode 100644 examples/extensions/second-string/LICENSE create mode 100644 examples/extensions/second-string/NOTICE create mode 100644 examples/extensions/second-string/README.md create mode 100644 examples/extensions/second-string/pyproject.toml create mode 100644 examples/extensions/second-string/python/sail_second_string/__init__.py create mode 100644 examples/extensions/second-string/python/sail_second_string/_native.pyi create mode 100644 examples/extensions/second-string/python/sail_second_string/functions.py create mode 100644 examples/extensions/second-string/python/sail_second_string/py.typed create mode 100644 examples/extensions/second-string/python/sail_second_string/sail-extension.json create mode 100644 examples/extensions/second-string/scripts/Oracle.java create mode 100644 examples/extensions/second-string/scripts/generate_oracle.py create mode 100644 examples/extensions/second-string/src/double_metaphone.rs create mode 100644 examples/extensions/second-string/src/function.rs create mode 100644 examples/extensions/second-string/src/lib.rs create mode 100644 examples/extensions/second-string/src/matrix.rs create mode 100644 examples/extensions/second-string/src/matrix_tests.rs create mode 100644 examples/extensions/second-string/src/options.rs create mode 100644 examples/extensions/second-string/src/phonetic.rs create mode 100644 examples/extensions/second-string/src/phonetic_tests.rs create mode 100644 examples/extensions/second-string/src/tests.rs create mode 100644 examples/extensions/second-string/src/token.rs create mode 100644 examples/extensions/second-string/src/token_tests.rs create mode 100644 examples/extensions/second-string/src/udf.rs create mode 100644 examples/extensions/second-string/tests/conftest.py create mode 100644 examples/extensions/second-string/tests/fixtures/oracle.json create mode 100644 examples/extensions/second-string/tests/test_client.py create mode 100644 examples/extensions/second-string/tests/test_oracle.py create mode 100644 examples/extensions/second-string/tests/test_sail.py diff --git a/examples/extensions/README.md b/examples/extensions/README.md index d8fa1c29e..0af5623ab 100644 --- a/examples/extensions/README.md +++ b/examples/extensions/README.md @@ -1,4 +1,4 @@ -# Two native extensions on Sail +# Native extensions on Sail For a design review, start at the shared [Sail Extensions review request](../../docs/development/extensions/SAIL-EXTENSIONS-REVIEW-REQUEST.md). @@ -36,6 +36,9 @@ separates the original findings, implemented corrections and remaining acceptanc Python wheel through DataFusion FFI. Spark SQL, DataFrame expressions and Apache Sedona's unmodified Connect helpers call them by name. Ordinary Sail spatial joins evaluate those predicates. +- **[Second String](second-string/README.md):** sixteen native string similarity + and phonetic functions, plus configurable variants, preserving the Spark + Second String source semantics through a separate Arrow FFI wheel. - **Nutmeg graph tables:** normal Sail relations with degree, triplet and bounded walk helpers compiled into DataFusion joins/aggregations. This path runs on workers with extensions disabled and constructs no CSR. @@ -44,7 +47,7 @@ separates the original findings, implemented corrections and remaining acceptanc inputs atomically, including every partition. Reads pin a graph revision and stream results through DataFusion FFI. -Both packages have independent Cargo workspaces and no Sail engine dependency. +These packages have independent Cargo workspaces and no Sail engine dependency. Nutmeg shares a small dependency-free memory-lease ABI definition with Sail. The host and plugins use DataFusion 55.1.0 and Arrow 59.3.0. This is an experimental Python bootstrap API with API/DataFusion/Arrow version checks, not a stable binary diff --git a/examples/extensions/second-string/Cargo.lock b/examples/extensions/second-string/Cargo.lock new file mode 100644 index 000000000..b619e4e2c --- /dev/null +++ b/examples/extensions/second-string/Cargo.lock @@ -0,0 +1,2856 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "const-random", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android_system_properties" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "arrow" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c14b3d39f306bc28fd639d59f06e17a0f377d0021e1b7e9054e4d6fedc98774" +dependencies = [ + "arrow-arith", + "arrow-array", + "arrow-buffer", + "arrow-cast", + "arrow-csv", + "arrow-data", + "arrow-ipc", + "arrow-json", + "arrow-ord", + "arrow-row", + "arrow-schema", + "arrow-select", + "arrow-string", +] + +[[package]] +name = "arrow-arith" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2961626677665b2195eb59242af4c7befe7b8737ca2050295389362380104e" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "chrono", + "num-traits", +] + +[[package]] +name = "arrow-array" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6adeffdf587d7a31db5d2266189624b526730cd3627f9ff9fedae97ad584" +dependencies = [ + "ahash", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "chrono", + "chrono-tz", + "half", + "hashbrown 0.17.1", + "libc", + "num-complex", + "num-integer", + "num-traits", +] + +[[package]] +name = "arrow-buffer" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "097d193003ce7995d5d087089069ec2a6e0187faf5a6f8c9f38af2645d987182" +dependencies = [ + "bytes", + "half", + "num-bigint", + "num-traits", +] + +[[package]] +name = "arrow-cast" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "635c9c635668ad26adf76cce8fb276c4be7cf06e63bd516de7da514f9680ee53" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-ord", + "arrow-schema", + "arrow-select", + "atoi", + "base64", + "chrono", + "comfy-table", + "half", + "lexical-core", + "num-traits", + "ryu", +] + +[[package]] +name = "arrow-csv" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2ebf8d631e79b02c16cf5ae860561272c26024ec88fce389a56aaddd558e86" +dependencies = [ + "arrow-array", + "arrow-cast", + "arrow-schema", + "chrono", + "csv", + "csv-core", + "regex", +] + +[[package]] +name = "arrow-data" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ba2f832eaeca24b8f26143dba750e42ee4ab51cf7d65e701ca9607cfda9f358" +dependencies = [ + "arrow-buffer", + "arrow-schema", + "half", + "num-integer", + "num-traits", +] + +[[package]] +name = "arrow-ipc" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc41681ea80f521df14c36725b74d4c60702c47f0793af2be469c04527e2599" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "arrow-select", + "flatbuffers", + "lz4_flex", + "zstd", +] + +[[package]] +name = "arrow-json" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2f57d7a81969f24ccf80809587b76c09897e6f829d2d65a5976bfb3218851f1" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-cast", + "arrow-ord", + "arrow-schema", + "arrow-select", + "chrono", + "half", + "indexmap", + "itoa", + "lexical-core", + "memchr", + "num-traits", + "ryu", + "serde_core", + "serde_json", + "simdutf8", +] + +[[package]] +name = "arrow-ord" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c900759f3bd8354fd4196bc4403eee846894dc2adf66b4225472006a0bf18c5" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "arrow-select", +] + +[[package]] +name = "arrow-row" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c6425032e28266e3fc4ff680805e57e670d6ea92473043f3e65b7ed6ac79f2" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "half", +] + +[[package]] +name = "arrow-schema" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10fab8d4563491417ba801fab29d205104d20d4bdf37bda6cd1cf425cff598cd" +dependencies = [ + "bitflags", + "serde_core", + "serde_json", +] + +[[package]] +name = "arrow-select" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc58569193c2525915f3cc6310edba3792f1200f65d6e9ed330aa33e691493b8" +dependencies = [ + "ahash", + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "num-traits", +] + +[[package]] +name = "arrow-string" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0813f3c35c1cfea65e14c20a953440f7783c088b7ad2d0db162ccdeefcec14" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-schema", + "arrow-select", + "memchr", + "num-traits", + "regex", + "regex-syntax", +] + +[[package]] +name = "async-ffi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cd9de47399986d5b216c6bef9434dfff1689ab61ba8d1e2720dc5fe5c84083" + +[[package]] +name = "async-trait" +version = "0.1.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "bitflags" +version = "2.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f74872d07caf508b30a21f6836e7d7016a2eaf7d9ff4f48deaa58cd8a0407630" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "num-traits", + "windows-link", +] + +[[package]] +name = "chrono-tz" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3" +dependencies = [ + "chrono", + "phf", +] + +[[package]] +name = "comfy-table" +version = "7.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" +dependencies = [ + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "crossbeam-utils" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "csv" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde_core", +] + +[[package]] +name = "csv-core" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" +dependencies = [ + "memchr", +] + +[[package]] +name = "dashmap" +version = "6.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "datafusion-catalog" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0756ebc770bcebae366dfd273dad50935f6103b4d212253cb17e2e53c5427f" +dependencies = [ + "arrow", + "async-trait", + "dashmap", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-plan", + "datafusion-session", + "futures", + "itertools 0.15.0", + "log", + "object_store", + "parking_lot", + "tokio", +] + +[[package]] +name = "datafusion-catalog-listing" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbde2961698705d8402f0f382f08876fc6f1126ffde790ef17833cf0ab87cd59" +dependencies = [ + "arrow", + "async-trait", + "datafusion-catalog", + "datafusion-common", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-adapter", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "futures", + "itertools 0.15.0", + "log", + "object_store", + "percent-encoding", +] + +[[package]] +name = "datafusion-common" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e06fe711ff815c8cf3143158547aea599702fd43f76f5866c70d5a5b3693a0" +dependencies = [ + "arrow", + "arrow-ipc", + "arrow-schema", + "chrono", + "foldhash 0.2.0", + "half", + "hashbrown 0.17.1", + "indexmap", + "itertools 0.15.0", + "libc", + "log", + "num-traits", + "object_store", + "parquet", + "tokio", + "uuid", + "web-time", +] + +[[package]] +name = "datafusion-common-runtime" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7a5107acff4e3ed50a7732acec06bba40e74ab49df021397ed250d60f04e42a" +dependencies = [ + "futures", + "log", + "tokio", +] + +[[package]] +name = "datafusion-datasource" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69f45d2d700785be8df9d4b44410e1c8e4a856f10cc728b418a1066c0b594fb" +dependencies = [ + "arrow", + "async-trait", + "bytes", + "chrono", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-adapter", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-proto-models", + "datafusion-session", + "futures", + "glob", + "itertools 0.15.0", + "log", + "object_store", + "parking_lot", + "rand", + "tokio", + "url", +] + +[[package]] +name = "datafusion-datasource-arrow" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81650af64894ef34b46d2ef818ef244b40a81d90818f3bc642bf8fbf6758f8e0" +dependencies = [ + "arrow", + "arrow-ipc", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-proto-models", + "datafusion-session", + "futures", + "itertools 0.15.0", + "object_store", + "tokio", +] + +[[package]] +name = "datafusion-datasource-csv" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e2519bed59a6907c79298b9c21fe807bbc34e4ff8414577d699b0741083593" +dependencies = [ + "arrow", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-proto-models", + "datafusion-session", + "futures", + "object_store", + "regex", + "tokio", +] + +[[package]] +name = "datafusion-datasource-json" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "635e61290e171597f6e50427e0cb486eda468ab47e880fa24d15bbb0fa24ac7e" +dependencies = [ + "arrow", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-proto-models", + "datafusion-session", + "futures", + "object_store", + "tokio", + "tokio-stream", +] + +[[package]] +name = "datafusion-datasource-parquet" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07cd518f85b3a027d913047b4ab0811111a2b734fdf84a51b78234455f10d8fa" +dependencies = [ + "arrow", + "arrow-schema", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions", + "datafusion-functions-aggregate-common", + "datafusion-physical-expr", + "datafusion-physical-expr-adapter", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-proto-models", + "datafusion-pruning", + "datafusion-session", + "futures", + "itertools 0.15.0", + "log", + "object_store", + "parking_lot", + "parquet", + "tokio", +] + +[[package]] +name = "datafusion-doc" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d44c5919b560862dd1cb20a5c75b3e48c3d9e49719c91d78da5c38eaad5495c4" + +[[package]] +name = "datafusion-execution" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7620ad535af8730186bdec05d720e40d9a4584b40c7eb75f72c43aa7978e5484" +dependencies = [ + "arrow", + "arrow-buffer", + "async-trait", + "bytes", + "dashmap", + "datafusion-common", + "datafusion-expr", + "datafusion-physical-expr-common", + "futures", + "log", + "object_store", + "parking_lot", + "pin-project-lite", + "rand", + "tempfile", + "tokio", + "tokio-util", + "url", +] + +[[package]] +name = "datafusion-expr" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea229af8b73e566fc6ebb1c8dd42ab250f8855c5304bd173f4b50ead78b64304" +dependencies = [ + "arrow", + "arrow-schema", + "async-trait", + "chrono", + "datafusion-common", + "datafusion-doc", + "datafusion-expr-common", + "datafusion-functions-aggregate-common", + "datafusion-functions-window-common", + "datafusion-physical-expr-common", + "datafusion-proto-common", + "datafusion-proto-models", + "indexmap", + "itertools 0.15.0", + "serde_json", +] + +[[package]] +name = "datafusion-expr-common" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a18baa840f77760dcc9eaad281329bc57536c5c39e65e8649596f2a51216be7" +dependencies = [ + "arrow", + "datafusion-common", + "indexmap", + "itertools 0.15.0", +] + +[[package]] +name = "datafusion-ffi" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a9e527ab3fd2cea1c216efb81c40684a54490489d4ee6cd5719b17f8442f35" +dependencies = [ + "arrow", + "arrow-schema", + "async-ffi", + "async-trait", + "chrono", + "datafusion-catalog", + "datafusion-common", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions-aggregate-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-optimizer", + "datafusion-physical-plan", + "datafusion-proto", + "datafusion-proto-common", + "datafusion-session", + "futures", + "libloading", + "log", + "prost", + "semver", + "stabby", + "tokio", +] + +[[package]] +name = "datafusion-functions" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763bbfeec40b55a8a961d7349c0fcfcec4f3f66cc234d6295250b95371b85e34" +dependencies = [ + "arrow", + "arrow-buffer", + "base64", + "chrono", + "chrono-tz", + "datafusion-common", + "datafusion-doc", + "datafusion-execution", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-macros", + "datafusion-physical-expr-common", + "hex", + "itertools 0.15.0", + "log", + "memchr", + "num-traits", + "rand", + "regex", + "uuid", +] + +[[package]] +name = "datafusion-functions-aggregate-common" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35e42c87dfbff06934ea0e99cfed3440ac614c3f3bfb8c33be35ca0587d4140" +dependencies = [ + "arrow", + "datafusion-common", + "datafusion-expr-common", + "datafusion-physical-expr-common", +] + +[[package]] +name = "datafusion-functions-table" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe2070ecf5638a93c81c8babc7858339ef52165a9f54da1411afd69adf7d85ce" +dependencies = [ + "arrow", + "async-trait", + "datafusion-catalog", + "datafusion-common", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-plan", + "parking_lot", +] + +[[package]] +name = "datafusion-functions-window-common" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98965b183f92201c16798994820ae032649c4821e089c4c80e7d0f4485d41df5" +dependencies = [ + "datafusion-common", + "datafusion-physical-expr-common", +] + +[[package]] +name = "datafusion-macros" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a711bd5a06ec85d9683e142d28a98ad0679a7220669f5c1b8589e57e9b29e46" +dependencies = [ + "datafusion-doc", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "datafusion-physical-expr" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e37a25b5aa1f3a1db114f0ee3605bf01639b83a831dcde35119ee61f0b11d6" +dependencies = [ + "arrow", + "arrow-schema", + "datafusion-common", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-functions-aggregate-common", + "datafusion-physical-expr-common", + "datafusion-proto-models", + "half", + "hashbrown 0.17.1", + "indexmap", + "itertools 0.15.0", + "parking_lot", + "petgraph", + "tokio", +] + +[[package]] +name = "datafusion-physical-expr-adapter" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a4d12787d42e88b26b0d3ec006192fa23ceb832ef2a9e87439ce820a8e038cc" +dependencies = [ + "arrow", + "datafusion-common", + "datafusion-expr", + "datafusion-functions", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "itertools 0.15.0", +] + +[[package]] +name = "datafusion-physical-expr-common" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d13bf7f50fd902f5afc46d50759f5185b5620c40b24054f80f7c648897d3e5a6" +dependencies = [ + "arrow", + "chrono", + "datafusion-common", + "datafusion-expr-common", + "datafusion-proto-models", + "hashbrown 0.17.1", + "indexmap", + "itertools 0.15.0", + "parking_lot", + "pin-project", +] + +[[package]] +name = "datafusion-physical-optimizer" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fbe7e6665072957d44ed9587676e17a1f9ab3acfadfc287dac23750585f18a" +dependencies = [ + "arrow", + "datafusion-common", + "datafusion-execution", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-pruning", + "datafusion-session", + "itertools 0.15.0", +] + +[[package]] +name = "datafusion-physical-plan" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1265d58e5bce07d154e642a51ff43033b576a6ae40d50a29ac2b9f311004eb52" +dependencies = [ + "arrow", + "arrow-data", + "arrow-ipc", + "arrow-ord", + "arrow-schema", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions", + "datafusion-functions-aggregate-common", + "datafusion-functions-window-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-proto-common", + "datafusion-proto-models", + "futures", + "half", + "hashbrown 0.17.1", + "indexmap", + "itertools 0.15.0", + "log", + "num-traits", + "parking_lot", + "pin-project-lite", + "serde_json", + "tokio", +] + +[[package]] +name = "datafusion-proto" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f85dee73fa4bab473854d5715ab49b122f2236862291e3c5da582b44e0fd5f9" +dependencies = [ + "arrow", + "datafusion-catalog", + "datafusion-catalog-listing", + "datafusion-common", + "datafusion-datasource", + "datafusion-datasource-arrow", + "datafusion-datasource-csv", + "datafusion-datasource-json", + "datafusion-datasource-parquet", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions-table", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-proto-common", + "datafusion-proto-models", + "object_store", + "prost", +] + +[[package]] +name = "datafusion-proto-common" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57901d70c724dab7cb604fea579f5324332244e3c400ff2d7c9b5fc065051437" +dependencies = [ + "arrow", + "datafusion-common", + "prost", +] + +[[package]] +name = "datafusion-proto-models" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a574908455152a11abea49c7916cc8a504de946e5302c7e40bab632cbbcb9b2" +dependencies = [ + "datafusion-common", + "datafusion-proto-common", + "prost", +] + +[[package]] +name = "datafusion-pruning" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b06b333405c05015836ed36cea02cc29d1e2ee8fb414a77532d8346fb56492" +dependencies = [ + "arrow", + "datafusion-common", + "datafusion-datasource", + "datafusion-expr-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "log", +] + +[[package]] +name = "datafusion-session" +version = "55.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7616b17b1d2fee3e9b13c651eac91b768d153265e6ba88e06e0b4af7883f69c" +dependencies = [ + "arrow-schema", + "async-trait", + "datafusion-common", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-plan", + "parking_lot", +] + +[[package]] +name = "displaydoc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "either" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "find-msvc-tools" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flatbuffers" +version = "25.12.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" +dependencies = [ + "bitflags", + "rustc_version", +] + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-executor" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" + +[[package]] +name = "futures-macro" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "futures-sink" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "num-traits", + "zerocopy", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "humantime" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15" + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" + +[[package]] +name = "icu_properties" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" + +[[package]] +name = "icu_provider" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "jobserver" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" +dependencies = [ + "getrandom 0.4.3", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "lexical-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" +dependencies = [ + "lexical-parse-integer", + "lexical-util", +] + +[[package]] +name = "lexical-parse-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "lexical-util" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" + +[[package]] +name = "lexical-write-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c438c87c013188d415fbabbb1dceb44249ab81664efbd31b14ae55dabb6361" +dependencies = [ + "lexical-util", + "lexical-write-integer", +] + +[[package]] +name = "lexical-write-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409851a618475d2d5796377cad353802345cba92c867d9fbcde9cf4eac4e14df" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "libc" +version = "0.2.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" + +[[package]] +name = "libloading" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" +dependencies = [ + "cfg-if", + "windows-link", +] + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "lz4_flex" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecbdfe44b1bd960b68170b417450a628c43f7cf56bb3c5317e61cb230ee7f226" +dependencies = [ + "twox-hash", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "num-bigint" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e7820bc0a80a0238e650327316f929ba18d5be054b647490a3a6a339f3e7c0" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "object_store" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622acbc9100d3c10e2ee15804b0caa40e55c933d5aa53814cd520805b7958a49" +dependencies = [ + "async-trait", + "bytes", + "chrono", + "futures-channel", + "futures-core", + "futures-util", + "http", + "humantime", + "itertools 0.14.0", + "parking_lot", + "percent-encoding", + "thiserror", + "tokio", + "tracing", + "url", + "walkdir", + "wasm-bindgen-futures", + "web-time", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "parquet" +version = "59.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff322f54b1a0f9288e614ed1f2d329b380af5476420db19f46ffb865e1163d73" +dependencies = [ + "ahash", + "arrow-array", + "arrow-buffer", + "arrow-data", + "arrow-ipc", + "arrow-schema", + "arrow-select", + "base64", + "brotli", + "bytes", + "chrono", + "flate2", + "futures", + "half", + "hashbrown 0.17.1", + "lz4_flex", + "num-bigint", + "num-integer", + "num-traits", + "object_store", + "seq-macro", + "simdutf8", + "snap", + "tokio", + "twox-hash", + "zstd", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap", + "serde", +] + +[[package]] +name = "phf" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "potential_utf" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "pyo3" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c" +dependencies = [ + "libc", + "once_cell", + "portable-atomic", + "pyo3-build-config", + "pyo3-ffi", + "pyo3-macros", +] + +[[package]] +name = "pyo3-build-config" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078" +dependencies = [ + "target-lexicon", +] + +[[package]] +name = "pyo3-ffi" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b" +dependencies = [ + "libc", + "pyo3-build-config", +] + +[[package]] +name = "pyo3-macros" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771" +dependencies = [ + "proc-macro2", + "pyo3-macros-backend", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "pyo3-macros-backend" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "sail-second-string-extension" +version = "0.1.0" +dependencies = [ + "arrow-schema", + "datafusion-common", + "datafusion-expr", + "datafusion-ffi", + "pyo3", + "serde", + "serde_json", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "seq-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "indexmap", + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9395f0f0eee849a9b707b2f06bb92a6a422090e2123bb2ef8e87a0e61892a8e" + +[[package]] +name = "snap" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "199905e6153d6405f9728fe44daace35f8f837bbf830bb6e85fbd5828709a886" + +[[package]] +name = "stabby" +version = "72.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d53d2428934c46277fafd2d41e39357595aa1e47954c75db2b14ed90632f3cc" +dependencies = [ + "rustversion", + "stabby-abi", +] + +[[package]] +name = "stabby-abi" +version = "72.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f375eae680bb54203ee5e47d4cd2ae7b79c0a79ed90919279f38f500ad53f190" +dependencies = [ + "rustc_version", + "rustversion", + "sha2-const-stable", + "stabby-macros", +] + +[[package]] +name = "stabby-macros" +version = "72.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea664671a576c5f7e32fee291ac123d82af5e92b0689beb3555347c00c76eef1" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "target-lexicon" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix", + "windows-sys", +] + +[[package]] +name = "thiserror" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e95f91fcc7a621e8b030f6aa23c71fe9838ae2fb4d8118b75602a328f5144044" +dependencies = [ + "bytes", + "pin-project-lite", + "tokio-macros", +] + +[[package]] +name = "tokio-macros" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "tokio-stream" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "twox-hash" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86a801b3cea342a06d468c8710662aa29e5e05e4f5c0d62f00bbb7f2ad7941c2" + +[[package]] +name = "unicode-ident" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97277d36b9c3ace13e58fa6e753f8b0bbbf302a18dd193240d70f9e29681059a" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbab34de2d982e9b48e18d216d04c4a6f641066ff19ffb699980f591ee3610e" +dependencies = [ + "js-sys", + "tokio", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.6", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "writeable" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8ebde2db3681e8c9980cc27822030e68752690ddfa9473e739aeb4dbde6d71" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6400fc4bb7426f6faac3fb07566122bb18622e3022bd2c36426a92ed489b1dbe" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c27cc7525bad4df59a45e073c45b2c2aa820efb588234cc23a547ec69a34db" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "zlib-rs" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d80649ab6db9d9f6f9c80a40becd948eda4714a0a5ac8c4d157a32231c7882" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.1.0+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef0a8027ec3ee71300ab3bcbcd0393f434aa72b91ca6d635a39941deae8eea0" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/examples/extensions/second-string/Cargo.toml b/examples/extensions/second-string/Cargo.toml new file mode 100644 index 000000000..b00209de7 --- /dev/null +++ b/examples/extensions/second-string/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "sail-second-string-extension" +version = "0.1.0" +edition = "2021" +publish = false +license = "Apache-2.0" + +[workspace] + +[lib] +name = "_native" +crate-type = ["cdylib", "rlib"] + +[dependencies] +arrow-schema = "=59.3.0" +datafusion-common = { version = "=55.1.0", default-features = false } +datafusion-expr = { version = "=55.1.0", default-features = false } +datafusion-ffi = "=55.1.0" +pyo3 = "=0.29.0" + +[dev-dependencies] +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +[profile.dev] +debug = 0 +incremental = false + +[profile.release] +debug = 0 +incremental = false diff --git a/examples/extensions/second-string/LICENSE b/examples/extensions/second-string/LICENSE new file mode 100644 index 000000000..6b0b1270f --- /dev/null +++ b/examples/extensions/second-string/LICENSE @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/examples/extensions/second-string/NOTICE b/examples/extensions/second-string/NOTICE new file mode 100644 index 000000000..5c4a00277 --- /dev/null +++ b/examples/extensions/second-string/NOTICE @@ -0,0 +1,17 @@ +Sail Second String Extension + +Native Rust port of Spark Second String by Semyon Sinchenko. +Reference: https://github.com/SemyonSinchenko/spark-second-string +Source commit: a35db39fa8e9b65db2d201a45b86d11a6ca34b98 +Licensed under Apache License, Version 2.0. + +Double Metaphone is derived from Apache Commons Codec 1.21.0. +Copyright The Apache Software Foundation. +Licensed under Apache License, Version 2.0. +The port preserves the original normalization and primary-code behavior. + +Apache Commons Codec +Copyright 2002-2026 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). diff --git a/examples/extensions/second-string/README.md b/examples/extensions/second-string/README.md new file mode 100644 index 000000000..bc120d4d1 --- /dev/null +++ b/examples/extensions/second-string/README.md @@ -0,0 +1,88 @@ +# Native Second String for Sail + +An independent native extension wheel implementing all sixteen default functions +from [Spark Second String](https://github.com/SemyonSinchenko/spark-second-string) +at `a35db39fa8e9b65db2d201a45b86d11a6ca34b98`: + +- Token similarities: Jaccard, Sørensen–Dice, overlap coefficient, cosine, + Braun–Blanquet and Monge–Elkan. +- Character similarities: normalized Levenshtein, LCS, Jaro, Jaro–Winkler, + Needleman–Wunsch, Smith–Waterman and affine gap. +- Phonetics: Soundex, Refined Soundex and primary Double Metaphone. + +The wheel has no Sail crate dependency. Sail discovers its `pysail.extensions` +entry point, imports its native DataFusion scalar capsules, and evaluates Arrow +batches on the driver or workers. No JVM, Python UDF or Arrow Python UDF executes +these metrics. Java is used only to generate the source-comparison fixtures. + +## Build and install + +The current extension tuple is API 1, DataFusion 55.1.0 and Arrow 59.3.0. +Use a Python 3.12 environment with a shared library, Rust, and maturin: + +```bash +python -m maturin build --release --locked \ + --manifest-path examples/extensions/second-string/Cargo.toml \ + --interpreter python --out /tmp/second-string-wheels +python -m pip install /tmp/second-string-wheels/*.whl +``` + +Install the same wheel on the server and every process worker. Start a compatible +Sail extension host with `SAIL_EXPERIMENTAL_EXTENSIONS=1`; the existing extension +[tutorial](../TUTORIAL.md) explains Python library setup and worker deployment. +The included static `sail-extension.json` also declares the same tuple for the +separate static-preflight candidate. + +## Call from SQL or Spark Connect + +Original SQL names and arities are retained: thirteen binary `ss_*` similarity +functions returning DOUBLE, and three unary phonetics returning STRING. +Similarity is case-sensitive. Either null input produces null. + +```python +from pyspark.sql.connect.session import SparkSession +from sail_second_string import functions as ss + +spark = SparkSession.builder.remote("sc://127.0.0.1:50051").create() +spark.sql("SELECT ss_jaro_winkler('MARTHA', 'MARHTA') AS score").show() +pairs = spark.createDataFrame([("abcd", "abce")], ["left", "right"]) +pairs.select(ss.jaccard("left", "right", ngram_size=2).alias("score")).show() +``` + +Configurable Python helpers generate literal options for ten additional native +`ss__with_options` functions. These preserve the upstream Scala DSL +parameters while keeping the original SQL functions' fixed arities. Options must +be literal constants. Helpers cover n-grams, Monge–Elkan's five inner metrics, +Jaro–Winkler prefix settings, alignment scores and affine penalties. + +## Compatibility details + +Character metrics and n-grams preserve Java UTF-16 indexing, including supplementary +characters. Whitespace tokenization follows Java `Character.isWhitespace` rather +than Python/Rust whitespace predicates. Phonetics use the Scala wrappers' ASCII +normalization; their Soundex variants differ from Commons Codec's encoders. +Double Metaphone uses the Commons Codec 1.21.0 primary-code rules with length four. + +Empty and whitespace-only strings retain the source's metric-specific results. +Monge n-gram sums use a deterministic token order; comparisons allow `1e-12` +absolute error for floating accumulation against Java's unordered token set. +No normalization or silent algorithm substitutions are added. + +## Verification + +```bash +cargo fmt --all --manifest-path examples/extensions/second-string/Cargo.toml -- --check +cargo clippy --all-targets --manifest-path examples/extensions/second-string/Cargo.toml -- -D warnings +cargo test --release --all-targets --manifest-path examples/extensions/second-string/Cargo.toml +python -m pytest examples/extensions/second-string/tests \ + --sail-binary /path/to/native/release/sail --execution-mode local +python -m pytest examples/extensions/second-string/tests \ + --sail-binary /path/to/native/release/sail --execution-mode process-cluster +``` + +On macOS, Rust tests require the selected interpreter's library directory in +`DYLD_LIBRARY_PATH`, and `PYO3_PYTHON` should name that interpreter. +`tests/fixtures/oracle.json` records the compiled Scala reference and its source, +class and dependency fingerprints. `scripts/generate_oracle.py --help` gives the +fixture-generation command. The research and qualification report is kept in +[Grust](https://github.com/querygraph/grust/tree/work/second-string-extension-report/docs/reviews/second-string-extension-2026-10-06). diff --git a/examples/extensions/second-string/pyproject.toml b/examples/extensions/second-string/pyproject.toml new file mode 100644 index 000000000..31cb4f9f5 --- /dev/null +++ b/examples/extensions/second-string/pyproject.toml @@ -0,0 +1,29 @@ +[build-system] +requires = ["maturin>=1.8,<2"] +build-backend = "maturin" + +[project] +name = "sail-second-string-extension" +version = "0.1.0" +description = "Native Spark Second String metrics for Sail" +requires-python = ">=3.12" +license = "Apache-2.0" +license-files = ["LICENSE", "NOTICE"] + +[project.optional-dependencies] +client = ["pyspark[connect]>=4.0.1,<4.1"] + +[project.entry-points."pysail.extensions"] +second_string = "sail_second_string:extension" + +[tool.maturin] +features = ["pyo3/extension-module"] +module-name = "sail_second_string._native" +python-source = "python" + +[tool.ruff] +line-length = 100 + +[tool.mypy] +python_version = "3.12" +strict = true diff --git a/examples/extensions/second-string/python/sail_second_string/__init__.py b/examples/extensions/second-string/python/sail_second_string/__init__.py new file mode 100644 index 000000000..56c22f05d --- /dev/null +++ b/examples/extensions/second-string/python/sail_second_string/__init__.py @@ -0,0 +1,42 @@ +"""Native Spark Second String functions for Sail's extension host.""" + +import importlib +from dataclasses import asdict, dataclass +from typing import TYPE_CHECKING, Literal, cast + +if TYPE_CHECKING: + from ._native import BoundSecondString + +__version__ = "0.1.0" + + +@dataclass(frozen=True, slots=True) +class ExtensionManifest: + name: str = "second_string" + version: str = __version__ + api_version: int = 1 + datafusion_version: str = "55.1.0" + arrow_version: str = "59.3.0" + placement: Literal["any"] = "any" + relation_types: tuple[str, ...] = () + + def to_wire(self) -> dict[str, object]: + wire: dict[str, object] = asdict(self) + wire["relation_types"] = list(self.relation_types) + return wire + + +class SecondStringExtension: + def manifest(self) -> dict[str, object]: + """Expose compatibility metadata without loading the native library.""" + return ExtensionManifest().to_wire() + + def bind(self, session_id: str) -> "BoundSecondString": + native = importlib.import_module("sail_second_string._native") + constructor = cast("type[BoundSecondString]", native.BoundSecondString) + return constructor(session_id) + + +extension = SecondStringExtension() + +__all__ = ["ExtensionManifest", "SecondStringExtension", "__version__", "extension"] diff --git a/examples/extensions/second-string/python/sail_second_string/_native.pyi b/examples/extensions/second-string/python/sail_second_string/_native.pyi new file mode 100644 index 000000000..e10840104 --- /dev/null +++ b/examples/extensions/second-string/python/sail_second_string/_native.pyi @@ -0,0 +1,10 @@ +class NativeScalarUdf: + def name(self) -> str: ... + def aliases(self) -> list[str]: ... + def __datafusion_scalar_udf__(self) -> object: ... + +class BoundSecondString: + def __init__(self, session_id: str) -> None: ... + @property + def session_id(self) -> str: ... + def scalar_udfs(self) -> list[NativeScalarUdf]: ... diff --git a/examples/extensions/second-string/python/sail_second_string/functions.py b/examples/extensions/second-string/python/sail_second_string/functions.py new file mode 100644 index 000000000..da8b7aae9 --- /dev/null +++ b/examples/extensions/second-string/python/sail_second_string/functions.py @@ -0,0 +1,259 @@ +"""Spark Connect expressions evaluated by native Sail scalar functions. + +Strings name columns; use ``pyspark.sql.connect.functions.lit`` for string +values. Options are Python values validated before constructing an expression. +Default calls keep the sixteen original upstream SQL names and arities. +""" + +from typing import Literal + +from pyspark.sql import Column +from pyspark.sql.connect import functions as F + +type ColumnInput = str | Column +type MongeInnerMetric = Literal[ + "jaro_winkler", "jaro", "levenshtein", "needleman_wunsch", "smith_waterman" +] + +_INNER_METRICS = frozenset( + ("jaro_winkler", "jaro", "levenshtein", "needleman_wunsch", "smith_waterman") +) + + +def _int32(name: str, value: int) -> int: + if type(value) is not int: + raise TypeError(f"{name} must be an integer") + if not -(2**31) <= value < 2**31: + raise ValueError(f"{name} must fit a Scala Int") + return value + + +def _ngram(value: int) -> int: + value = _int32("ngram_size", value) + if value < 0: + raise ValueError("ngram_size must be >= 0") + return value + + +def _integer_literal(value: int) -> Column: + return F.lit(value) + + +def _token(name: str, left: ColumnInput, right: ColumnInput, ngram_size: int) -> Column: + size = _ngram(ngram_size) + if size == 0: + return F.call_function(name, left, right) + return F.call_function(f"{name}_with_options", left, right, _integer_literal(size)) + + +def jaccard(left: ColumnInput, right: ColumnInput, *, ngram_size: int = 0) -> Column: + return _token("ss_jaccard", left, right, ngram_size) + + +def sorensen_dice(left: ColumnInput, right: ColumnInput, *, ngram_size: int = 0) -> Column: + return _token("ss_sorensen_dice", left, right, ngram_size) + + +def overlap_coefficient(left: ColumnInput, right: ColumnInput, *, ngram_size: int = 0) -> Column: + return _token("ss_overlap_coefficient", left, right, ngram_size) + + +def cosine(left: ColumnInput, right: ColumnInput, *, ngram_size: int = 0) -> Column: + return _token("ss_cosine", left, right, ngram_size) + + +def braun_blanquet(left: ColumnInput, right: ColumnInput, *, ngram_size: int = 0) -> Column: + return _token("ss_braun_blanquet", left, right, ngram_size) + + +def monge_elkan( + left: ColumnInput, + right: ColumnInput, + *, + inner_metric: MongeInnerMetric = "jaro_winkler", + ngram_size: int = 0, +) -> Column: + size = _ngram(ngram_size) + if not isinstance(inner_metric, str) or inner_metric not in _INNER_METRICS: + raise ValueError("inner_metric must name one of the five upstream Monge-Elkan metrics") + if inner_metric == "jaro_winkler" and size == 0: + return F.call_function("ss_monge_elkan", left, right) + return F.call_function( + "ss_monge_elkan_with_options", left, right, F.lit(inner_metric), _integer_literal(size) + ) + + +def levenshtein(left: ColumnInput, right: ColumnInput) -> Column: + """Normalized Levenshtein similarity, rather than Spark's edit-distance integer.""" + return F.call_function("ss_levenshtein", left, right) + + +def lcs_similarity(left: ColumnInput, right: ColumnInput) -> Column: + return F.call_function("ss_lcs_similarity", left, right) + + +def jaro(left: ColumnInput, right: ColumnInput) -> Column: + return F.call_function("ss_jaro", left, right) + + +def jaro_winkler( + left: ColumnInput, + right: ColumnInput, + *, + prefix_scale: float = 0.1, + prefix_cap: int = 4, +) -> Column: + cap = _int32("prefix_cap", prefix_cap) + if type(prefix_scale) not in (float, int): + raise TypeError("prefix_scale must be a number") + scale = float(prefix_scale) + # Preserve the upstream constructor comparisons, including NaN acceptance. + if scale <= 0.0 or scale > 0.25 or not 1 <= cap <= 10: + raise ValueError("prefix_scale must be in (0, 0.25] and prefix_cap in [1, 10]") + if scale == 0.1 and cap == 4: + return F.call_function("ss_jaro_winkler", left, right) + return F.call_function( + "ss_jaro_winkler_with_options", left, right, F.lit(scale), _integer_literal(cap) + ) + + +def _alignment( + name: str, + left: ColumnInput, + right: ColumnInput, + match_score: int, + mismatch_penalty: int, + gap_penalty: int, + *, + local: bool, +) -> Column: + match_score = _int32("match_score", match_score) + mismatch_penalty = _int32("mismatch_penalty", mismatch_penalty) + gap_penalty = _int32("gap_penalty", gap_penalty) + valid_penalties = ( + mismatch_penalty <= 0 and gap_penalty <= 0 + if local + else mismatch_penalty < 0 and gap_penalty < 0 + ) + if match_score <= 0 or not valid_penalties: + raise ValueError("invalid alignment scoring parameters") + defaults = (2 if local else 1, -1, -1) + if (match_score, mismatch_penalty, gap_penalty) == defaults: + return F.call_function(name, left, right) + return F.call_function( + f"{name}_with_options", + left, + right, + _integer_literal(match_score), + _integer_literal(mismatch_penalty), + _integer_literal(gap_penalty), + ) + + +def needleman_wunsch( + left: ColumnInput, + right: ColumnInput, + *, + match_score: int = 1, + mismatch_penalty: int = -1, + gap_penalty: int = -1, +) -> Column: + return _alignment( + "ss_needleman_wunsch", left, right, match_score, mismatch_penalty, gap_penalty, local=False + ) + + +def smith_waterman( + left: ColumnInput, + right: ColumnInput, + *, + match_score: int = 2, + mismatch_penalty: int = -1, + gap_penalty: int = -1, +) -> Column: + return _alignment( + "ss_smith_waterman", left, right, match_score, mismatch_penalty, gap_penalty, local=True + ) + + +def affine_gap( + left: ColumnInput, + right: ColumnInput, + *, + mismatch_penalty: int = -1, + gap_open_penalty: int = -2, + gap_extend_penalty: int = -1, +) -> Column: + mismatch_penalty = _int32("mismatch_penalty", mismatch_penalty) + gap_open_penalty = _int32("gap_open_penalty", gap_open_penalty) + gap_extend_penalty = _int32("gap_extend_penalty", gap_extend_penalty) + if mismatch_penalty >= 0 or gap_open_penalty >= 0 or gap_extend_penalty >= 0: + raise ValueError("affine gap penalties must be < 0") + if (mismatch_penalty, gap_open_penalty, gap_extend_penalty) == (-1, -2, -1): + return F.call_function("ss_affine_gap", left, right) + return F.call_function( + "ss_affine_gap_with_options", + left, + right, + _integer_literal(mismatch_penalty), + _integer_literal(gap_open_penalty), + _integer_literal(gap_extend_penalty), + ) + + +def soundex(value: ColumnInput) -> Column: + return F.call_function("ss_soundex", value) + + +def refined_soundex(value: ColumnInput) -> Column: + return F.call_function("ss_refined_soundex", value) + + +def double_metaphone(value: ColumnInput) -> Column: + return F.call_function("ss_double_metaphone", value) + + +# Scala DSL spellings share the same typed Python implementations and options. +sorensenDice = sorensen_dice +overlapCoefficient = overlap_coefficient +braunBlanquet = braun_blanquet +mongeElkan = monge_elkan +lcsSimilarity = lcs_similarity +jaroWinkler = jaro_winkler +needlemanWunsch = needleman_wunsch +smithWaterman = smith_waterman +affineGap = affine_gap +refinedSoundex = refined_soundex +doubleMetaphone = double_metaphone + +__all__ = [ + "ColumnInput", + "MongeInnerMetric", + "affineGap", + "affine_gap", + "braunBlanquet", + "braun_blanquet", + "cosine", + "doubleMetaphone", + "double_metaphone", + "jaccard", + "jaro", + "jaroWinkler", + "jaro_winkler", + "lcsSimilarity", + "lcs_similarity", + "levenshtein", + "mongeElkan", + "monge_elkan", + "needlemanWunsch", + "needleman_wunsch", + "overlapCoefficient", + "overlap_coefficient", + "refinedSoundex", + "refined_soundex", + "smithWaterman", + "smith_waterman", + "sorensenDice", + "sorensen_dice", + "soundex", +] diff --git a/examples/extensions/second-string/python/sail_second_string/py.typed b/examples/extensions/second-string/python/sail_second_string/py.typed new file mode 100644 index 000000000..e69de29bb diff --git a/examples/extensions/second-string/python/sail_second_string/sail-extension.json b/examples/extensions/second-string/python/sail_second_string/sail-extension.json new file mode 100644 index 000000000..34893cad8 --- /dev/null +++ b/examples/extensions/second-string/python/sail_second_string/sail-extension.json @@ -0,0 +1,13 @@ +{ + "schema_version": 1, + "extensions": [ + { + "entry_point": "second_string", + "name": "second_string", + "version": "0.1.0", + "api_version": 1, + "datafusion_version": "55.1.0", + "arrow_version": "59.3.0" + } + ] +} diff --git a/examples/extensions/second-string/scripts/Oracle.java b/examples/extensions/second-string/scripts/Oracle.java new file mode 100644 index 000000000..8938d6d92 --- /dev/null +++ b/examples/extensions/second-string/scripts/Oracle.java @@ -0,0 +1,147 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; + +/** Calls the compiled pinned Scala companions; contains no metric implementation. */ +public final class Oracle { + private static final String PREFIX = "io.github.semyonsinchenko.sparkss.expressions."; + private static final Map MODULES = Map.ofEntries( + Map.entry("ss_jaccard", "token.Jaccard"), + Map.entry("ss_cosine", "token.Cosine"), + Map.entry("ss_sorensen_dice", "token.SorensenDice"), + Map.entry("ss_overlap_coefficient", "token.OverlapCoefficient"), + Map.entry("ss_braun_blanquet", "token.BraunBlanquet"), + Map.entry("ss_monge_elkan", "token.MongeElkan"), + Map.entry("ss_levenshtein", "matrix.Levenshtein"), + Map.entry("ss_lcs_similarity", "matrix.LcsSimilarity"), + Map.entry("ss_jaro", "matrix.Jaro"), + Map.entry("ss_jaro_winkler", "matrix.JaroWinkler"), + Map.entry("ss_needleman_wunsch", "matrix.NeedlemanWunsch"), + Map.entry("ss_smith_waterman", "matrix.SmithWaterman"), + Map.entry("ss_affine_gap", "matrix.AffineGap"), + Map.entry("ss_soundex", "phonetic.Soundex"), + Map.entry("ss_refined_soundex", "phonetic.RefinedSoundex"), + Map.entry("ss_double_metaphone", "phonetic.DoubleMetaphone") + ); + private static final Map OBJECTS = new HashMap<>(); + private static final Map METHODS = new HashMap<>(); + private static Class utf8; + private static Method fromString; + + private Oracle() {} + + private static String b64(String value) { + return Base64.getEncoder().encodeToString(value.getBytes(StandardCharsets.UTF_8)); + } + + private static String decode(String value) { + return new String(Base64.getDecoder().decode(value), StandardCharsets.UTF_8); + } + + private static void metadata(String key, String value) { + System.out.println("#meta\t" + key + "\t" + b64(value)); + } + + private static void origin(String key, Class type) { + metadata(key, type.getProtectionDomain().getCodeSource().getLocation().toExternalForm()); + } + + private static void uppercase() { + for (int unit = 0; unit <= Character.MAX_VALUE; unit++) { + char upper = Character.toUpperCase((char) unit); + if (upper >= 'A' && upper <= 'Z') { + System.out.println("#upper\t" + unit + "\t" + upper); + } + } + } + + private static Object invoke(String function, String left, String right, String options) + throws ReflectiveOperationException { + String module = MODULES.get(function); + if (module == null) { + throw new IllegalArgumentException("Unknown function " + function); + } + Class type = Class.forName(PREFIX + module + "$"); + Object companion = OBJECTS.get(function); + if (companion == null) { + companion = type.getField("MODULE$").get(null); + OBJECTS.put(function, companion); + origin("module:" + function, type); + } + boolean unary = module.startsWith("phonetic."); + String[] params = options.isEmpty() ? new String[0] : options.split(",", -1); + Class[] signature; + Object[] arguments; + Object leftUtf8 = fromString.invoke(null, left); + Object rightUtf8 = unary ? null : fromString.invoke(null, right); + if (unary) { + if (params.length != 0) throw new IllegalArgumentException("Unary options"); + signature = new Class[] {utf8}; + arguments = new Object[] {leftUtf8}; + } else if (params.length == 0) { + signature = new Class[] {utf8, utf8}; + arguments = new Object[] {leftUtf8, rightUtf8}; + } else if (module.startsWith("token.") && !function.equals("ss_monge_elkan")) { + if (params.length != 1) throw new IllegalArgumentException("Token options"); + signature = new Class[] {utf8, utf8, int.class}; + arguments = new Object[] {leftUtf8, rightUtf8, Integer.valueOf(params[0])}; + } else if (function.equals("ss_monge_elkan")) { + if (params.length != 2) throw new IllegalArgumentException("Monge options"); + signature = new Class[] {utf8, utf8, String.class, int.class}; + arguments = new Object[] {leftUtf8, rightUtf8, params[0], Integer.valueOf(params[1])}; + } else if (function.equals("ss_jaro_winkler")) { + if (params.length != 2) throw new IllegalArgumentException("Jaro-Winkler options"); + signature = new Class[] {utf8, utf8, double.class, int.class}; + arguments = new Object[] {leftUtf8, rightUtf8, Double.valueOf(params[0]), Integer.valueOf(params[1])}; + } else if (function.equals("ss_needleman_wunsch") || function.equals("ss_smith_waterman") + || function.equals("ss_affine_gap")) { + if (params.length != 3) throw new IllegalArgumentException("Alignment options"); + signature = new Class[] {utf8, utf8, int.class, int.class, int.class}; + arguments = new Object[] {leftUtf8, rightUtf8, Integer.valueOf(params[0]), + Integer.valueOf(params[1]), Integer.valueOf(params[2])}; + } else { + throw new IllegalArgumentException("Unsupported configured function " + function); + } + String methodKey = function + ":" + params.length; + Method method = METHODS.get(methodKey); + if (method == null) { + method = type.getMethod(unary ? "encode" : "similarity", signature); + METHODS.put(methodKey, method); + } + return method.invoke(companion, arguments); + } + + public static void main(String[] args) throws Exception { + metadata("java.version", System.getProperty("java.version")); + metadata("java.vendor", System.getProperty("java.vendor")); + uppercase(); + if (args.length == 1 && args[0].equals("--upper-ascii-only")) return; + if (args.length != 0) throw new IllegalArgumentException("Unknown oracle option"); + utf8 = Class.forName("org.apache.spark.unsafe.types.UTF8String"); + fromString = utf8.getMethod("fromString", String.class); + origin("utf8", utf8); + origin("scala", Class.forName("scala.Predef$")); + origin("commons-codec", Class.forName("org.apache.commons.codec.language.DoubleMetaphone")); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8)); + String line; + while ((line = input.readLine()) != null) { + String[] fields = line.split("\t", -1); + if (fields.length != 5) throw new IllegalArgumentException("Expected five TSV fields"); + try { + Object result = invoke(fields[1], decode(fields[2]), decode(fields[3]), fields[4]); + if (result instanceof Double score) { + System.out.println(fields[0] + "\tscore\t" + Double.toString(score)); + } else { + System.out.println(fields[0] + "\tstring\t" + b64(result.toString())); + } + } catch (InvocationTargetException error) { + throw new IllegalStateException("Scala oracle case " + fields[0] + " failed", error.getCause()); + } + } + } +} diff --git a/examples/extensions/second-string/scripts/generate_oracle.py b/examples/extensions/second-string/scripts/generate_oracle.py new file mode 100644 index 000000000..d92eaac87 --- /dev/null +++ b/examples/extensions/second-string/scripts/generate_oracle.py @@ -0,0 +1,502 @@ +"""Generate compact fixtures by calling the pinned, compiled Scala reference.""" + +from __future__ import annotations + +import argparse +import base64 +import hashlib +import json +import math +import os +import random +import subprocess +from dataclasses import dataclass +from datetime import UTC, datetime +from pathlib import Path +from urllib.parse import unquote, urlparse + +REFERENCE_COMMIT = "a35db39fa8e9b65db2d201a45b86d11a6ca34b98" +SEED = 0x5EC0AD +MAX_FIXTURE_BYTES = 1_048_576 +type Parameter = int | float | str +type Expected = float | str + +FUNCTIONS = ( + "ss_jaccard", + "ss_cosine", + "ss_sorensen_dice", + "ss_overlap_coefficient", + "ss_braun_blanquet", + "ss_monge_elkan", + "ss_levenshtein", + "ss_lcs_similarity", + "ss_jaro", + "ss_jaro_winkler", + "ss_needleman_wunsch", + "ss_smith_waterman", + "ss_affine_gap", + "ss_soundex", + "ss_refined_soundex", + "ss_double_metaphone", +) +JAVA_OPENS = ( + "sun.nio.ch", + "java.lang", + "java.nio", + "java.lang.invoke", + "java.util", + "sun.security.action", + "java.io", +) + + +@dataclass(frozen=True, slots=True) +class Pair: + left: str + right: str + + +@dataclass(frozen=True, slots=True) +class Definition: + function: str + parameters: tuple[Parameter, ...] = () + + +@dataclass(frozen=True, slots=True) +class Case: + id: str + definition: Definition + pair: int + + +@dataclass(frozen=True, slots=True) +class Pin: + path: Path + size: int + sha256: str + + +@dataclass(frozen=True, slots=True) +class Command: + argv: tuple[str, ...] + returncode: int + stdout: Path + stderr: Path + + +@dataclass(frozen=True, slots=True) +class Parsed: + metadata: tuple[tuple[str, str], ...] + uppercase: tuple[tuple[int, str], ...] + results: tuple[tuple[str, Expected], ...] + + +@dataclass(frozen=True, slots=True) +class Config: + java: Path + javac: Path + classpath_file: Path + reference: Path + work_dir: Path + output: Path + + +def pin(path: Path) -> Pin: + payload = path.read_bytes() + return Pin(path.resolve(), len(payload), hashlib.sha256(payload).hexdigest()) + + +def encoded(value: str) -> str: + return base64.b64encode(value.encode("utf-8")).decode("ascii") + + +def decoded(value: str) -> str: + return base64.b64decode(value, validate=True).decode("utf-8") + + +def git(reference: Path, *arguments: str) -> str: + return subprocess.check_output( + ["git", "-C", str(reference), *arguments], + text=True, + stderr=subprocess.PIPE, + ).strip() + + +def source_pins(reference: Path) -> tuple[Pin, ...]: + paths = sorted((reference / "src/main/scala").rglob("*.scala")) + paths += [reference / "build.sbt", reference / "project/build.properties"] + return tuple(pin(path) for path in paths) + + +def corpus() -> tuple[Pair, ...]: + pairs = [ + Pair("", ""), + Pair("", "hello"), + Pair("hello", ""), + Pair("", " \t"), + Pair(" \t", "alpha"), + Pair(" \t\n", "\r "), + Pair("a b c", "a b d"), + Pair("a b", "a b c"), + Pair("a a a b", "a b"), + Pair("a a b", "a c c"), + Pair("hello world", "hello world"), + Pair("hello\tworld", "hello\nworld"), + Pair("alpha,beta", "alpha beta"), + Pair("Alpha beta", "alpha Beta"), + Pair("abcd", "abce"), + Pair("abc", "xyz"), + Pair("ab", "abc"), + Pair("a b", "a c"), + Pair("aaaa", "aa"), + Pair("a", "b"), + Pair("stephen smyth", "steven smith"), + Pair("alpha beta", "alpha gamma"), + Pair("alpha alpha beta", "alpha gamma"), + Pair("beta alpha", "alpha beta"), + Pair("martha", "marhta"), + Pair("DWAYNE", "DUANE"), + Pair("DIXON", "DICKSONX"), + Pair("kitten", "sitting"), + Pair("spark", "spork"), + Pair("abc", "ac"), + Pair("café", "cafe"), + Pair("cafe\u0301", "café"), + Pair("résumé", "resume"), + Pair("Müller", "Mueller"), + Pair("東京", "東京"), + Pair("東京", "大阪"), + Pair("東京 都", "東京"), + Pair("😀", "😀"), + Pair("😀", "😁"), + Pair("hello 世界", "hello world"), + Pair("John Смит", "John Smith"), + Pair("alpha\u200bbeta", "alpha beta"), + Pair("alpha\u2060beta", "alpha beta"), + Pair("北京大学", "北京大学院"), + Pair("😀a", "😁a"), + Pair("😀😁", "😁😀"), + Pair("a😀a", "a😁a"), + Pair("𐐀", "𐐨"), + Pair("İıſß", "IiSs"), + Pair("Robert", "Rupert"), + Pair("Rubin", "Robert"), + Pair("Ashcraft", "Ashcroft"), + Pair("Pfister", "Tymczak"), + Pair("Smith", "Schmidt"), + Pair("Schneider", "Snyder"), + Pair("Washington", "Jackson"), + Pair("O'Brien", "Obrien"), + Pair("A-İ-ı-ſ-Z", "AIISZ"), + Pair("1234", "!@#$"), + Pair("ÆØŁ", "AEOL"), + Pair("аβ中", "ABC"), + Pair("a\x00b", "ab"), + Pair("a\r\nb", "a b"), + Pair("abcabc", "abc"), + ] + delimiters = ( + *range(0x09, 0x0E), + *range(0x1C, 0x21), + 0x1680, + *range(0x2000, 0x2007), + *range(0x2008, 0x200B), + 0x2028, + 0x2029, + 0x205F, + 0x3000, + ) + others = (0x85, 0xA0, 0x180E, 0x2007, 0x200B, 0x202F, 0x2060, 0xFEFF) + pairs += [Pair(f"a{chr(unit)}b", "a b") for unit in (*delimiters, *others)] + names = ( + "McDonald", + "Macdonald", + "Gough", + "Laugh", + "Knight", + "Wright", + "Xavier", + "Jose", + "José", + "Jorge", + "San Jacinto", + "Thomas", + "Thompson", + "Schwarz", + "Wicz", + "Witz", + "Szczepan", + "Cheng", + "Campbell", + "Sugar", + "Allen", + "A", + "BB", + "Pf", + "Cz", + "Accident", + "Wheeler", + "Schaeffer", + "Bacher", + ) + pairs += [Pair(name, name.swapcase()) for name in names] + rng = random.Random(SEED) + alphabet = "abcdXYZ012 ,.-\t\n" + "éıſ中東😀😁\u0301\u00a0\u2003\u200b" + while len(pairs) < 300: + left = "".join(rng.choice(alphabet) for _ in range(rng.randrange(0, 18))) + mode = rng.randrange(4) + if mode == 0: + right = left + elif mode == 1: + right = left[::-1] + elif mode == 2: + right = left + rng.choice(alphabet) + else: + right = "".join(rng.choice(alphabet) for _ in range(rng.randrange(0, 18))) + pairs.append(Pair(left, right)) + return tuple(pairs) + + +def cases(pairs: tuple[Pair, ...]) -> tuple[Case, ...]: + configured: list[Definition] = [] + for function in FUNCTIONS[:5]: + configured += [Definition(function, (n,)) for n in (1, 2, 3)] + configured += [ + Definition("ss_jaro_winkler", (0.2, 6)), + Definition("ss_needleman_wunsch", (2, -2, -1)), + Definition("ss_smith_waterman", (3, -1, -2)), + Definition("ss_affine_gap", (-2, -3, -2)), + ] + for inner in ("jaro_winkler", "jaro", "levenshtein", "needleman_wunsch", "smith_waterman"): + configured += [Definition("ss_monge_elkan", (inner, n)) for n in (0, 1, 2, 3)] + definitions = [ + (index, Definition(function)) for index in range(len(pairs)) for function in FUNCTIONS + ] + definitions += [(index, definition) for index in range(64) for definition in configured] + return tuple( + Case(f"c{number:05d}", definition, index) + for number, (index, definition) in enumerate(definitions) + ) + + +def write_input(path: Path, pairs: tuple[Pair, ...], records: tuple[Case, ...]) -> None: + with path.open("x", encoding="utf-8", newline="\n") as stream: + for case in records: + pair = pairs[case.pair] + params = ",".join(str(value) for value in case.definition.parameters) + stream.write( + f"{case.id}\t{case.definition.function}\t{encoded(pair.left)}\t" + f"{encoded(pair.right)}\t{params}\n", + ) + + +def execute(argv: tuple[str, ...], work: Path, label: str, stdin: Path | None = None) -> Command: + stdout = work / f"{label}.stdout" + stderr = work / f"{label}.stderr" + with stdout.open("xb") as out, stderr.open("xb") as err: + if stdin is None: + result = subprocess.run(argv, stdout=out, stderr=err, timeout=180, check=False) + else: + with stdin.open("rb") as inp: + result = subprocess.run( + argv, stdin=inp, stdout=out, stderr=err, timeout=180, check=False + ) + command = Command(argv, result.returncode, stdout, stderr) + if command.returncode != 0: + raise RuntimeError(f"{label} failed ({command.returncode}); see {stderr}") + return command + + +def parse_output(path: Path, records: tuple[Case, ...]) -> Parsed: + metadata: dict[str, str] = {} + uppercase: list[tuple[int, str]] = [] + results: list[tuple[str, Expected]] = [] + expected = {case.id: case for case in records} + seen: set[str] = set() + for line in path.read_text(encoding="utf-8").splitlines(): + fields = line.split("\t") + if len(fields) != 3: + raise ValueError(f"Malformed oracle output: {line[:120]}") + first, kind, value = fields + if first == "#meta": + if kind in metadata: + raise ValueError(f"Repeated metadata {kind}") + metadata[kind] = decoded(value) + elif first == "#upper": + uppercase.append((int(kind), value)) + else: + if first not in expected or first in seen: + raise ValueError(f"Unknown or repeated oracle case {first}") + unary = expected[first].definition.function in FUNCTIONS[-3:] + if kind == "string" and unary: + answer: Expected = decoded(value) + elif kind == "score" and not unary: + answer = float(value) + if not math.isfinite(answer): + raise ValueError(f"Nonfinite reference answer for {first}: {value}") + else: + raise ValueError(f"Wrong result kind for {first}: {kind}") + seen.add(first) + results.append((first, answer)) + if seen != expected.keys(): + raise ValueError("Oracle omitted cases") + if len({unit for unit, _ in uppercase}) != len(uppercase): + raise ValueError("Repeated uppercase units") + if not uppercase or any( + len(letter) != 1 or not "A" <= letter <= "Z" for _, letter in uppercase + ): + raise ValueError("Invalid Java uppercase mapping") + return Parsed(tuple(sorted(metadata.items())), tuple(uppercase), tuple(results)) + + +def origin_pins(parsed: Parsed) -> tuple[Pin, ...]: + paths: set[Path] = set() + for key, value in parsed.metadata: + if key.startswith("java."): + continue + uri = urlparse(value) + if uri.scheme != "file" or uri.netloc: + raise ValueError(f"Unexpected class origin {key}: {value}") + path = Path(unquote(uri.path)) + if path.is_dir(): + paths.update(path.rglob("*.class")) + else: + paths.add(path) + return tuple(pin(path) for path in sorted(paths)) + + +def pin_json(value: Pin) -> dict[str, str | int]: + return {"path": str(value.path), "bytes": value.size, "sha256": value.sha256} + + +def command_json(value: Command) -> dict[str, object]: + return { + "argv": value.argv, + "returncode": value.returncode, + "stdout": pin_json(pin(value.stdout)), + "stderr": pin_json(pin(value.stderr)), + } + + +def generate(config: Config) -> None: + if config.output.exists() or config.work_dir.exists(): + raise FileExistsError("Fixture output and work directory must both be fresh") + head = git(config.reference, "rev-parse", "HEAD") + if head != REFERENCE_COMMIT or git(config.reference, "status", "--porcelain"): + raise ValueError("Reference must be clean at the exact pinned commit") + source_before = source_pins(config.reference) + harness = Path(__file__).with_name("Oracle.java") + helper_before = (pin(harness), pin(Path(__file__)), pin(config.classpath_file)) + classpath = config.classpath_file.read_text(encoding="utf-8").strip() + if "\n" in classpath or not classpath.startswith(str(config.reference / "target")): + raise ValueError("Expected exactly one exported reference classpath line") + if any(not Path(item).exists() for item in classpath.split(os.pathsep)): + raise ValueError("Classpath contains missing entries") + config.work_dir.mkdir(parents=True) + classes = config.work_dir / "classes" + classes.mkdir() + compiled = execute( + (str(config.javac), "-encoding", "UTF-8", "-d", str(classes), str(harness)), + config.work_dir, + "javac", + ) + pairs = corpus() + records = cases(pairs) + request = config.work_dir / "cases.tsv" + write_input(request, pairs, records) + arguments = ( + str(config.java), + "-Xmx512m", + *(f"--add-opens=java.base/{package}=ALL-UNNAMED" for package in JAVA_OPENS), + "-cp", + f"{classes}{os.pathsep}{classpath}", + "Oracle", + ) + evaluated = execute(arguments, config.work_dir, "oracle", request) + parsed = parse_output(evaluated.stdout, records) + actual_origins = origin_pins(parsed) + if ( + source_before != source_pins(config.reference) + or git(config.reference, "rev-parse", "HEAD") != head + ): + raise ValueError("Reference source changed while the oracle ran") + if git(config.reference, "status", "--porcelain") or helper_before != ( + pin(harness), + pin(Path(__file__)), + pin(config.classpath_file), + ): + raise ValueError("Oracle helper or reference cleanliness changed") + manifest = { + "commit": head, + "source": [pin_json(value) for value in source_before], + "loaded_class_origins": [pin_json(value) for value in actual_origins], + "java": dict(parsed.metadata), + } + fingerprint = hashlib.sha256( + json.dumps(manifest, sort_keys=True, separators=(",", ":")).encode() + ).hexdigest() + results = dict(parsed.results) + fixture = { + "reference": { + "repository": "https://github.com/SemyonSinchenko/spark-second-string", + "commit": head, + "fingerprint_sha256": fingerprint, + "generated_utc": datetime.now(UTC).isoformat(), + "seed": SEED, + "pair_count": len(pairs), + "case_count": len(records), + "numeric_absolute_tolerance": 1e-12, + "evaluation": "compiled Scala companion methods, not Spark jobs", + "null_scope": "non-null oracle inputs; null propagation is tested at the Sail caller", + "metadata": manifest, + "helpers": [pin_json(value) for value in helper_before], + "commands": [command_json(compiled), command_json(evaluated)], + }, + "upper_ascii": [{"unit": unit, "uppercase": upper} for unit, upper in parsed.uppercase], + "pairs": [{"left": pair.left, "right": pair.right} for pair in pairs], + "cases": [ + { + "id": case.id, + "function": case.definition.function, + "pair": case.pair, + "parameters": case.definition.parameters, + "expected": results[case.id], + } + for case in records + ], + } + payload = ( + json.dumps(fixture, ensure_ascii=False, separators=(",", ":"), allow_nan=False) + "\n" + ).encode() + if len(payload) > MAX_FIXTURE_BYTES: + raise ValueError(f"Fixture exceeds {MAX_FIXTURE_BYTES} bytes: {len(payload)}") + config.output.parent.mkdir(parents=True, exist_ok=True) + with config.output.open("xb") as output: + output.write(payload) + print( + json.dumps( + { + "outcome": "generated_compiled_reference_oracle", + "fixture": pin_json(pin(config.output)), + "cases": len(records), + "pairs": len(pairs), + "reference_fingerprint": fingerprint, + } + ) + ) + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + for option in ("java", "javac", "classpath-file", "reference", "work-dir", "output"): + parser.add_argument(f"--{option}", required=True, type=Path) + args = parser.parse_args() + generate( + Config( + args.java, args.javac, args.classpath_file, args.reference, args.work_dir, args.output + ) + ) + + +if __name__ == "__main__": + main() diff --git a/examples/extensions/second-string/src/double_metaphone.rs b/examples/extensions/second-string/src/double_metaphone.rs new file mode 100644 index 000000000..3fdf17610 --- /dev/null +++ b/examples/extensions/second-string/src/double_metaphone.rs @@ -0,0 +1,506 @@ +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Rust translation of Apache Commons Codec 1.21.0 `DoubleMetaphone.java`. +//! +//! Source: https://github.com/apache/commons-codec/blob/rel/commons-codec-1.21.0/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java +//! Modifications: the input is already uppercase ASCII, and only the primary +//! four-character result is needed. Alternate-only appends are omitted; once +//! primary is full, further appends cannot change it, so encoding can stop. + +struct Encoder<'a> { + word: &'a [u8], + output: String, + slavo_germanic: bool, +} + +pub(super) fn encode(word: &[u8]) -> String { + let mut encoder = Encoder { + word, + output: String::with_capacity(4), + slavo_germanic: word.contains(&b'W') + || word.contains(&b'K') + || word.windows(2).any(|part| part == b"CZ") + || word.windows(4).any(|part| part == b"WITZ"), + }; + let mut index = if encoder.contains(0, 2, &["GN", "KN", "PN", "WR", "PS"]) { + 1 + } else { + 0 + }; + while encoder.output.len() < 4 && index < encoder.len() { + index = match encoder.at(index) { + b'A' | b'E' | b'I' | b'O' | b'U' | b'Y' => { + if index == 0 { + encoder.append("A"); + } + index + 1 + } + b'B' => encoder.doubled(index, b'B', "P"), + b'C' => encoder.c(index), + b'D' => encoder.d(index), + b'F' => encoder.doubled(index, b'F', "F"), + b'G' => encoder.g(index), + b'H' => encoder.h(index), + b'J' => encoder.j(index), + b'K' => encoder.doubled(index, b'K', "K"), + b'L' => encoder.doubled(index, b'L', "L"), + b'M' => { + encoder.append("M"); + if encoder.at(index + 1) == b'M' + || (encoder.contains(index - 1, 3, &["UMB"]) + && (index + 1 == encoder.len() - 1 + || encoder.contains(index + 2, 2, &["ER"]))) + { + index + 2 + } else { + index + 1 + } + } + b'N' => encoder.doubled(index, b'N', "N"), + b'P' => encoder.p(index), + b'Q' => encoder.doubled(index, b'Q', "K"), + b'R' => encoder.r(index), + b'S' => encoder.s(index), + b'T' => encoder.t(index), + b'V' => encoder.doubled(index, b'V', "F"), + b'W' => encoder.w(index), + b'X' => encoder.x(index), + b'Z' => encoder.z(index), + _ => index + 1, + }; + } + encoder.output +} + +fn vowel(letter: u8) -> bool { + b"AEIOUY".contains(&letter) +} + +impl Encoder<'_> { + fn len(&self) -> isize { + self.word.len() as isize + } + + fn at(&self, index: isize) -> u8 { + usize::try_from(index) + .ok() + .and_then(|index| self.word.get(index)) + .copied() + .unwrap_or(0) + } + + fn contains(&self, start: isize, length: usize, choices: &[&str]) -> bool { + let Ok(start) = usize::try_from(start) else { + return false; + }; + let Some(end) = start.checked_add(length) else { + return false; + }; + self.word + .get(start..end) + .is_some_and(|part| choices.iter().any(|choice| part == choice.as_bytes())) + } + + fn append(&mut self, code: &str) { + let remaining = 4 - self.output.len(); + self.output.push_str(&code[..code.len().min(remaining)]); + } + + fn doubled(&mut self, index: isize, letter: u8, code: &str) -> isize { + self.append(code); + index + if self.at(index + 1) == letter { 2 } else { 1 } + } + + fn condition_c0(&self, i: isize) -> bool { + if self.contains(i, 4, &["CHIA"]) { + return true; + } + if i <= 1 || vowel(self.at(i - 2)) || !self.contains(i - 1, 3, &["ACH"]) { + return false; + } + (self.at(i + 2) != b'I' && self.at(i + 2) != b'E') + || self.contains(i - 2, 6, &["BACHER", "MACHER"]) + } + + fn condition_ch0(&self, i: isize) -> bool { + i == 0 + && (self.contains(i + 1, 5, &["HARAC", "HARIS"]) + || self.contains(i + 1, 3, &["HOR", "HYM", "HIA", "HEM"])) + && !self.contains(0, 5, &["CHORE"]) + } + + fn condition_ch1(&self, i: isize) -> bool { + self.contains(0, 4, &["VAN ", "VON "]) + || self.contains(0, 3, &["SCH"]) + || self.contains(i - 2, 6, &["ORCHES", "ARCHIT", "ORCHID"]) + || self.contains(i + 2, 1, &["T", "S"]) + || ((self.contains(i - 1, 1, &["A", "O", "U", "E"]) || i == 0) + && (self.contains( + i + 2, + 1, + &["L", "R", "N", "M", "B", "H", "F", "V", "W", " "], + ) || i + 1 == self.len() - 1)) + } + + fn c(&mut self, i: isize) -> isize { + if self.condition_c0(i) { + self.append("K"); + i + 2 + } else if i == 0 && self.contains(i, 6, &["CAESAR"]) { + self.append("S"); + i + 2 + } else if self.contains(i, 2, &["CH"]) { + self.ch(i) + } else if self.contains(i, 2, &["CZ"]) && !self.contains(i - 2, 4, &["WICZ"]) { + self.append("S"); + i + 2 + } else if self.contains(i + 1, 3, &["CIA"]) { + self.append("X"); + i + 3 + } else if self.contains(i, 2, &["CC"]) && !(i == 1 && self.at(0) == b'M') { + self.cc(i) + } else if self.contains(i, 2, &["CK", "CG", "CQ"]) { + self.append("K"); + i + 2 + } else if self.contains(i, 2, &["CI", "CE", "CY"]) { + self.append("S"); + i + 2 + } else { + self.append("K"); + if self.contains(i + 1, 2, &[" C", " Q", " G"]) { + i + 3 + } else if self.contains(i + 1, 1, &["C", "K", "Q"]) + && !self.contains(i + 1, 2, &["CE", "CI"]) + { + i + 2 + } else { + i + 1 + } + } + } + + fn cc(&mut self, i: isize) -> isize { + if self.contains(i + 2, 1, &["I", "E", "H"]) && !self.contains(i + 2, 2, &["HU"]) { + if (i == 1 && self.at(i - 1) == b'A') || self.contains(i - 1, 5, &["UCCEE", "UCCES"]) { + self.append("KS"); + } else { + self.append("X"); + } + i + 3 + } else { + self.append("K"); + i + 2 + } + } + + fn ch(&mut self, i: isize) -> isize { + if (i > 0 && self.contains(i, 4, &["CHAE"])) + || self.condition_ch0(i) + || self.condition_ch1(i) + || (i > 0 && self.contains(0, 2, &["MC"])) + { + self.append("K"); + } else { + self.append("X"); + } + i + 2 + } + + fn d(&mut self, i: isize) -> isize { + if self.contains(i, 2, &["DG"]) { + if self.contains(i + 2, 1, &["I", "E", "Y"]) { + self.append("J"); + i + 3 + } else { + self.append("TK"); + i + 2 + } + } else { + self.append("T"); + i + if self.contains(i, 2, &["DT", "DD"]) { + 2 + } else { + 1 + } + } + } + + fn g(&mut self, i: isize) -> isize { + if self.at(i + 1) == b'H' { + self.gh(i) + } else if self.at(i + 1) == b'N' { + if i == 1 && vowel(self.at(0)) && !self.slavo_germanic { + self.append("KN"); + } else if !self.contains(i + 2, 2, &["EY"]) + && self.at(i + 1) != b'Y' + && !self.slavo_germanic + { + self.append("N"); + } else { + self.append("KN"); + } + i + 2 + } else if self.contains(i + 1, 2, &["LI"]) && !self.slavo_germanic { + self.append("KL"); + i + 2 + } else if (i == 0 + && (self.at(i + 1) == b'Y' + || self.contains( + i + 1, + 2, + &[ + "ES", "EP", "EB", "EL", "EY", "IB", "IL", "IN", "IE", "EI", "ER", + ], + ))) + || ((self.contains(i + 1, 2, &["ER"]) || self.at(i + 1) == b'Y') + && !self.contains(0, 6, &["DANGER", "RANGER", "MANGER"]) + && !self.contains(i - 1, 1, &["E", "I"]) + && !self.contains(i - 1, 3, &["RGY", "OGY"])) + { + self.append("K"); + i + 2 + } else if self.contains(i + 1, 1, &["E", "I", "Y"]) + || self.contains(i - 1, 4, &["AGGI", "OGGI"]) + { + if self.contains(0, 4, &["VAN ", "VON "]) + || self.contains(0, 3, &["SCH"]) + || self.contains(i + 1, 2, &["ET"]) + { + self.append("K"); + } else { + self.append("J"); + } + i + 2 + } else { + self.doubled(i, b'G', "K") + } + } + + fn gh(&mut self, i: isize) -> isize { + if i > 0 && !vowel(self.at(i - 1)) { + self.append("K"); + } else if i == 0 { + self.append(if self.at(i + 2) == b'I' { "J" } else { "K" }); + } else if !((i > 1 && self.contains(i - 2, 1, &["B", "H", "D"])) + || (i > 2 && self.contains(i - 3, 1, &["B", "H", "D"])) + || (i > 3 && self.contains(i - 4, 1, &["B", "H"]))) + { + if i > 2 + && self.at(i - 1) == b'U' + && self.contains(i - 3, 1, &["C", "G", "L", "R", "T"]) + { + self.append("F"); + } else if i > 0 && self.at(i - 1) != b'I' { + self.append("K"); + } + } + i + 2 + } + + fn h(&mut self, i: isize) -> isize { + if (i == 0 || vowel(self.at(i - 1))) && vowel(self.at(i + 1)) { + self.append("H"); + i + 2 + } else { + i + 1 + } + } + + fn j(&mut self, i: isize) -> isize { + if self.contains(i, 4, &["JOSE"]) || self.contains(0, 4, &["SAN "]) { + if (i == 0 && self.at(i + 4) == b' ') + || self.len() == 4 + || self.contains(0, 4, &["SAN "]) + { + self.append("H"); + } else { + self.append("J"); + } + i + 1 + } else { + if (i == 0 && !self.contains(i, 4, &["JOSE"])) + || (vowel(self.at(i - 1)) + && !self.slavo_germanic + && matches!(self.at(i + 1), b'A' | b'O')) + || i == self.len() - 1 + || (!self.contains(i + 1, 1, &["L", "T", "K", "S", "N", "M", "B", "Z"]) + && !self.contains(i - 1, 1, &["S", "K", "L"])) + { + self.append("J"); + } + i + if self.at(i + 1) == b'J' { 2 } else { 1 } + } + } + + fn p(&mut self, i: isize) -> isize { + if self.at(i + 1) == b'H' { + self.append("F"); + i + 2 + } else { + self.append("P"); + i + if self.contains(i + 1, 1, &["P", "B"]) { + 2 + } else { + 1 + } + } + } + + fn r(&mut self, i: isize) -> isize { + if !(i == self.len() - 1 + && !self.slavo_germanic + && self.contains(i - 2, 2, &["IE"]) + && !self.contains(i - 4, 2, &["ME", "MA"])) + { + self.append("R"); + } + i + if self.at(i + 1) == b'R' { 2 } else { 1 } + } + + fn s(&mut self, i: isize) -> isize { + if self.contains(i - 1, 3, &["ISL", "YSL"]) { + i + 1 + } else if i == 0 && self.contains(i, 5, &["SUGAR"]) { + self.append("X"); + i + 1 + } else if self.contains(i, 2, &["SH"]) { + self.append( + if self.contains(i + 1, 4, &["HEIM", "HOEK", "HOLM", "HOLZ"]) { + "S" + } else { + "X" + }, + ); + i + 2 + } else if self.contains(i, 3, &["SIO", "SIA"]) || self.contains(i, 4, &["SIAN"]) { + self.append("S"); + i + 3 + } else if (i == 0 && self.contains(i + 1, 1, &["M", "N", "L", "W"])) + || self.contains(i + 1, 1, &["Z"]) + { + self.append("S"); + i + if self.contains(i + 1, 1, &["Z"]) { + 2 + } else { + 1 + } + } else if self.contains(i, 2, &["SC"]) { + self.sc(i) + } else { + if !(i == self.len() - 1 && self.contains(i - 2, 2, &["AI", "OI"])) { + self.append("S"); + } + i + if self.contains(i + 1, 1, &["S", "Z"]) { + 2 + } else { + 1 + } + } + } + + fn sc(&mut self, i: isize) -> isize { + if self.at(i + 2) == b'H' { + if self.contains(i + 3, 2, &["OO", "ER", "EN", "UY", "ED", "EM"]) { + self.append(if self.contains(i + 3, 2, &["ER", "EN"]) { + "X" + } else { + "SK" + }); + } else { + self.append("X"); + } + } else if self.contains(i + 2, 1, &["I", "E", "Y"]) { + self.append("S"); + } else { + self.append("SK"); + } + i + 3 + } + + fn t(&mut self, i: isize) -> isize { + if self.contains(i, 4, &["TION"]) || self.contains(i, 3, &["TIA", "TCH"]) { + self.append("X"); + i + 3 + } else if self.contains(i, 2, &["TH"]) || self.contains(i, 3, &["TTH"]) { + self.append( + if self.contains(i + 2, 2, &["OM", "AM"]) + || self.contains(0, 4, &["VAN ", "VON "]) + || self.contains(0, 3, &["SCH"]) + { + "T" + } else { + "0" + }, + ); + i + 2 + } else { + self.append("T"); + i + if self.contains(i + 1, 1, &["T", "D"]) { + 2 + } else { + 1 + } + } + } + + fn w(&mut self, i: isize) -> isize { + if self.contains(i, 2, &["WR"]) { + self.append("R"); + i + 2 + } else if i == 0 && (vowel(self.at(i + 1)) || self.contains(i, 2, &["WH"])) { + self.append("A"); + i + 1 + } else if (i == self.len() - 1 && vowel(self.at(i - 1))) + || self.contains(i - 1, 5, &["EWSKI", "EWSKY", "OWSKI", "OWSKY"]) + || self.contains(0, 3, &["SCH"]) + { + i + 1 + } else if self.contains(i, 4, &["WICZ", "WITZ"]) { + self.append("TS"); + i + 4 + } else { + i + 1 + } + } + + fn x(&mut self, i: isize) -> isize { + if i == 0 { + self.append("S"); + i + 1 + } else { + if !(i == self.len() - 1 + && (self.contains(i - 3, 3, &["IAU", "EAU"]) + || self.contains(i - 2, 2, &["AU", "OU"]))) + { + self.append("KS"); + } + i + if self.contains(i + 1, 1, &["C", "X"]) { + 2 + } else { + 1 + } + } + } + + fn z(&mut self, i: isize) -> isize { + if self.at(i + 1) == b'H' { + self.append("J"); + i + 2 + } else { + self.doubled(i, b'Z', "S") + } + } +} diff --git a/examples/extensions/second-string/src/function.rs b/examples/extensions/second-string/src/function.rs new file mode 100644 index 000000000..8a7734fee --- /dev/null +++ b/examples/extensions/second-string/src/function.rs @@ -0,0 +1,112 @@ +//! The sixteen upstream SQL names and ten separately named configurable helpers. +use crate::{matrix::MatrixMetric, token::TokenMetric}; + +#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] +pub enum Function { + Jaccard, + SorensenDice, + OverlapCoefficient, + Cosine, + BraunBlanquet, + MongeElkan, + Levenshtein, + LcsSimilarity, + Jaro, + JaroWinkler, + NeedlemanWunsch, + SmithWaterman, + AffineGap, + Soundex, + RefinedSoundex, + DoubleMetaphone, +} + +impl Function { + pub const ALL: [Self; 16] = [ + Self::Jaccard, + Self::SorensenDice, + Self::OverlapCoefficient, + Self::Cosine, + Self::BraunBlanquet, + Self::MongeElkan, + Self::Levenshtein, + Self::LcsSimilarity, + Self::Jaro, + Self::JaroWinkler, + Self::NeedlemanWunsch, + Self::SmithWaterman, + Self::AffineGap, + Self::Soundex, + Self::RefinedSoundex, + Self::DoubleMetaphone, + ]; + + pub fn name(self) -> &'static str { + match self { + Self::Jaccard => "ss_jaccard", + Self::SorensenDice => "ss_sorensen_dice", + Self::OverlapCoefficient => "ss_overlap_coefficient", + Self::Cosine => "ss_cosine", + Self::BraunBlanquet => "ss_braun_blanquet", + Self::MongeElkan => "ss_monge_elkan", + Self::Levenshtein => "ss_levenshtein", + Self::LcsSimilarity => "ss_lcs_similarity", + Self::Jaro => "ss_jaro", + Self::JaroWinkler => "ss_jaro_winkler", + Self::NeedlemanWunsch => "ss_needleman_wunsch", + Self::SmithWaterman => "ss_smith_waterman", + Self::AffineGap => "ss_affine_gap", + Self::Soundex => "ss_soundex", + Self::RefinedSoundex => "ss_refined_soundex", + Self::DoubleMetaphone => "ss_double_metaphone", + } + } + + pub fn configured_name(self) -> Option<&'static str> { + match self { + Self::Jaccard => Some("ss_jaccard_with_options"), + Self::SorensenDice => Some("ss_sorensen_dice_with_options"), + Self::OverlapCoefficient => Some("ss_overlap_coefficient_with_options"), + Self::Cosine => Some("ss_cosine_with_options"), + Self::BraunBlanquet => Some("ss_braun_blanquet_with_options"), + Self::MongeElkan => Some("ss_monge_elkan_with_options"), + Self::JaroWinkler => Some("ss_jaro_winkler_with_options"), + Self::NeedlemanWunsch => Some("ss_needleman_wunsch_with_options"), + Self::SmithWaterman => Some("ss_smith_waterman_with_options"), + Self::AffineGap => Some("ss_affine_gap_with_options"), + _ => None, + } + } + + pub fn phonetic(self) -> bool { + matches!( + self, + Self::Soundex | Self::RefinedSoundex | Self::DoubleMetaphone + ) + } + + pub fn token(self) -> Option { + match self { + Self::Jaccard => Some(TokenMetric::Jaccard), + Self::SorensenDice => Some(TokenMetric::SorensenDice), + Self::OverlapCoefficient => Some(TokenMetric::OverlapCoefficient), + Self::Cosine => Some(TokenMetric::Cosine), + Self::BraunBlanquet => Some(TokenMetric::BraunBlanquet), + Self::MongeElkan => Some(TokenMetric::MongeElkan), + _ => None, + } + } + + pub fn matrix(self) -> Option { + match self { + Self::Levenshtein => Some(MatrixMetric::Levenshtein), + Self::LcsSimilarity => Some(MatrixMetric::LcsSimilarity), + Self::Jaro => Some(MatrixMetric::Jaro), + Self::JaroWinkler => Some(MatrixMetric::JaroWinkler), + Self::NeedlemanWunsch => Some(MatrixMetric::NeedlemanWunsch), + Self::SmithWaterman => Some(MatrixMetric::SmithWaterman), + Self::AffineGap => Some(MatrixMetric::AffineGap), + _ => None, + } + } +} diff --git a/examples/extensions/second-string/src/lib.rs b/examples/extensions/second-string/src/lib.rs new file mode 100644 index 000000000..bbeef543b --- /dev/null +++ b/examples/extensions/second-string/src/lib.rs @@ -0,0 +1,70 @@ +//! Spark Second String native functions, exported via DataFusion FFI. +mod function; +mod matrix; +mod options; +mod phonetic; +mod token; +mod udf; + +use datafusion_expr::ScalarUDF; +use datafusion_ffi::udf::FFI_ScalarUDF; +use pyo3::prelude::*; +use pyo3::types::PyCapsule; +use std::sync::Arc; + +#[pyclass(skip_from_py_object)] +#[derive(Clone)] +struct NativeScalarUdf { + inner: Arc, +} + +#[pymethods] +impl NativeScalarUdf { + fn name(&self) -> &str { + self.inner.name() + } + fn aliases(&self) -> Vec { + Vec::new() + } + fn __datafusion_scalar_udf__<'py>(&self, py: Python<'py>) -> PyResult> { + PyCapsule::new_with_value( + py, + FFI_ScalarUDF::from(Arc::clone(&self.inner)), + c"datafusion_scalar_udf", + ) + } +} + +#[pyclass] +struct BoundSecondString { + #[pyo3(get)] + session_id: String, + functions: Vec, +} + +#[pymethods] +impl BoundSecondString { + #[new] + fn new(session_id: String) -> Self { + Self { + session_id, + functions: udf::functions() + .into_iter() + .map(|inner| NativeScalarUdf { inner }) + .collect(), + } + } + fn scalar_udfs(&self) -> Vec { + self.functions.clone() + } +} + +#[pymodule] +fn _native(module: &Bound<'_, PyModule>) -> PyResult<()> { + module.add_class::()?; + module.add_class::()?; + Ok(()) +} + +#[cfg(test)] +mod tests; diff --git a/examples/extensions/second-string/src/matrix.rs b/examples/extensions/second-string/src/matrix.rs new file mode 100644 index 000000000..81ea43260 --- /dev/null +++ b/examples/extensions/second-string/src/matrix.rs @@ -0,0 +1,366 @@ +//! Matrix metrics ported from spark-second-string a35db39fa8e9b65db2d201a45b86d11a6ca34b98. +//! +//! Java `String` indexing is by UTF-16 code unit, including inside surrogate pairs. +//! Parameter validation belongs to the SQL call boundary, as in the Scala expressions. + +use std::mem; + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum MatrixMetric { + Levenshtein, + LcsSimilarity, + Jaro, + JaroWinkler, + NeedlemanWunsch, + SmithWaterman, + AffineGap, +} + +#[derive(Clone, Copy, Debug, PartialEq)] +pub struct JaroWinklerParams { + pub prefix_scale: f64, + pub prefix_cap: usize, +} + +impl Default for JaroWinklerParams { + fn default() -> Self { + Self { + prefix_scale: 0.1, + prefix_cap: 4, + } + } +} + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct AlignmentParams { + pub match_score: i32, + pub mismatch_penalty: i32, + pub gap_penalty: i32, +} + +impl AlignmentParams { + pub const NEEDLEMAN_WUNSCH: Self = Self { + match_score: 1, + mismatch_penalty: -1, + gap_penalty: -1, + }; + pub const SMITH_WATERMAN: Self = Self { + match_score: 2, + mismatch_penalty: -1, + gap_penalty: -1, + }; +} + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct AffineGapParams { + pub mismatch_penalty: i32, + pub gap_open_penalty: i32, + pub gap_extend_penalty: i32, +} + +impl Default for AffineGapParams { + fn default() -> Self { + Self { + mismatch_penalty: -1, + gap_open_penalty: -2, + gap_extend_penalty: -1, + } + } +} + +pub fn score(metric: MatrixMetric, left: &str, right: &str) -> f64 { + match metric { + MatrixMetric::Levenshtein => levenshtein(left, right), + MatrixMetric::LcsSimilarity => lcs_similarity(left, right), + MatrixMetric::Jaro => jaro(left, right), + MatrixMetric::JaroWinkler => jaro_winkler(left, right), + MatrixMetric::NeedlemanWunsch => needleman_wunsch(left, right), + MatrixMetric::SmithWaterman => smith_waterman(left, right), + MatrixMetric::AffineGap => affine_gap(left, right), + } +} + +fn resolve(left: &str, right: &str) -> (Vec, Vec) { + ( + left.encode_utf16().collect(), + right.encode_utf16().collect(), + ) +} + +fn boundary(left: usize, right: usize) -> Option { + match (left, right) { + (0, 0) => Some(1.0), + (0, _) | (_, 0) => Some(0.0), + _ => None, + } +} + +fn clamp(value: f64) -> f64 { + // These comparisons deliberately preserve NaN, like the Scala helper. + value.clamp(0.0, 1.0) +} + +fn normalize_distance(distance: i32, left: usize, right: usize) -> f64 { + let maximum = left.max(right); + if maximum == 0 { + 1.0 + } else { + clamp(1.0 - f64::from(distance) / maximum as f64) + } +} + +pub fn levenshtein(left: &str, right: &str) -> f64 { + let (left, right) = resolve(left, right); + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + let mut previous: Vec = (0..=right.len()).map(|index| index as i32).collect(); + let mut current = vec![0_i32; right.len() + 1]; + for (i, left_unit) in left.iter().enumerate() { + current[0] = (i + 1) as i32; + for (j, right_unit) in right.iter().enumerate() { + let substitution = i32::from(left_unit != right_unit); + current[j + 1] = previous[j + 1] + .wrapping_add(1) + .min(current[j].wrapping_add(1)) + .min(previous[j].wrapping_add(substitution)); + } + mem::swap(&mut previous, &mut current); + } + normalize_distance(previous[right.len()], left.len(), right.len()) +} + +pub fn lcs_similarity(left: &str, right: &str) -> f64 { + let (left, right) = resolve(left, right); + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + let mut previous = vec![0_i32; right.len() + 1]; + let mut current = vec![0_i32; right.len() + 1]; + for left_unit in &left { + current[0] = 0; + for (j, right_unit) in right.iter().enumerate() { + current[j + 1] = if left_unit == right_unit { + previous[j].wrapping_add(1) + } else { + previous[j + 1].max(current[j]) + }; + } + mem::swap(&mut previous, &mut current); + } + clamp(f64::from(previous[right.len()]) / left.len().max(right.len()) as f64) +} + +pub fn jaro(left: &str, right: &str) -> f64 { + let (left, right) = resolve(left, right); + jaro_units(&left, &right) +} + +fn jaro_units(left: &[u16], right: &[u16]) -> f64 { + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + let radius = (left.len().max(right.len()) / 2).saturating_sub(1); + let mut left_matched = vec![false; left.len()]; + let mut right_matched = vec![false; right.len()]; + let mut matches = 0_usize; + for (i, left_unit) in left.iter().enumerate() { + let start = i.saturating_sub(radius); + let end = (i + radius + 1).min(right.len()); + for j in start..end { + if !right_matched[j] && *left_unit == right[j] { + left_matched[i] = true; + right_matched[j] = true; + matches += 1; + break; + } + } + } + if matches == 0 { + return 0.0; + } + let mut right_cursor = 0_usize; + let mut transpositions = 0_usize; + for (i, left_unit) in left.iter().enumerate() { + if left_matched[i] { + while !right_matched[right_cursor] { + right_cursor += 1; + } + if *left_unit != right[right_cursor] { + transpositions += 1; + } + right_cursor += 1; + } + } + let matches = matches as f64; + let transpositions = transpositions as f64 / 2.0; + clamp( + ((matches / left.len() as f64) + + (matches / right.len() as f64) + + ((matches - transpositions) / matches)) + / 3.0, + ) +} + +pub fn jaro_winkler(left: &str, right: &str) -> f64 { + jaro_winkler_with_params(left, right, JaroWinklerParams::default()) +} + +pub fn jaro_winkler_with_params(left: &str, right: &str, params: JaroWinklerParams) -> f64 { + let (left, right) = resolve(left, right); + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + let jaro = jaro_units(&left, &right); + if jaro <= 0.0 { + return 0.0; + } + let prefix = left + .iter() + .zip(&right) + .take(params.prefix_cap) + .take_while(|(left_unit, right_unit)| left_unit == right_unit) + .count(); + clamp(jaro + prefix as f64 * params.prefix_scale * (1.0 - jaro)) +} + +pub fn needleman_wunsch(left: &str, right: &str) -> f64 { + needleman_wunsch_with_params(left, right, AlignmentParams::NEEDLEMAN_WUNSCH) +} + +pub fn needleman_wunsch_with_params(left: &str, right: &str, params: AlignmentParams) -> f64 { + let (left, right) = resolve(left, right); + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + let mut previous: Vec = (0..=right.len()) + .map(|index| (index as i32).wrapping_mul(params.gap_penalty)) + .collect(); + let mut current = vec![0_i32; right.len() + 1]; + for (i, left_unit) in left.iter().enumerate() { + current[0] = ((i + 1) as i32).wrapping_mul(params.gap_penalty); + for (j, right_unit) in right.iter().enumerate() { + let substitution = if left_unit == right_unit { + params.match_score + } else { + params.mismatch_penalty + }; + current[j + 1] = previous[j] + .wrapping_add(substitution) + .max(previous[j + 1].wrapping_add(params.gap_penalty)) + .max(current[j].wrapping_add(params.gap_penalty)); + } + mem::swap(&mut previous, &mut current); + } + let maximum = left.len().max(right.len()) as f64; + // The upstream normalization intentionally does not scale with match_score. + clamp((f64::from(previous[right.len()]) + maximum) / (2.0 * maximum)) +} + +pub fn smith_waterman(left: &str, right: &str) -> f64 { + smith_waterman_with_params(left, right, AlignmentParams::SMITH_WATERMAN) +} + +pub fn smith_waterman_with_params(left: &str, right: &str, params: AlignmentParams) -> f64 { + let (left, right) = resolve(left, right); + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + let mut previous = vec![0_i32; right.len() + 1]; + let mut current = vec![0_i32; right.len() + 1]; + let mut best = 0_i32; + for left_unit in &left { + current[0] = 0; + for (j, right_unit) in right.iter().enumerate() { + let substitution = if left_unit == right_unit { + params.match_score + } else { + params.mismatch_penalty + }; + let cell = 0 + .max(previous[j].wrapping_add(substitution)) + .max(previous[j + 1].wrapping_add(params.gap_penalty)) + .max(current[j].wrapping_add(params.gap_penalty)); + current[j + 1] = cell; + best = best.max(cell); + } + mem::swap(&mut previous, &mut current); + } + let maximum = f64::from(params.match_score) * left.len().min(right.len()) as f64; + if maximum <= 0.0 { + 1.0 + } else { + clamp(f64::from(best) / maximum) + } +} + +pub fn affine_gap(left: &str, right: &str) -> f64 { + affine_gap_with_params(left, right, AffineGapParams::default()) +} + +const AFFINE_INFINITY: i32 = i32::MAX / 4; + +fn affine_plus(value: i32, increment: i32) -> i32 { + if value >= AFFINE_INFINITY.wrapping_sub(increment) { + AFFINE_INFINITY + } else { + value.wrapping_add(increment) + } +} + +fn gap_cost(length: usize, open: i32, extend: i32) -> i32 { + open.wrapping_add((length as i32).wrapping_mul(extend)) +} + +pub fn affine_gap_with_params(left: &str, right: &str, params: AffineGapParams) -> f64 { + let (left, right) = resolve(left, right); + if let Some(result) = boundary(left.len(), right.len()) { + return result; + } + // Scala Int arithmetic wraps, including negation of Int.MinValue. + let mismatch = params.mismatch_penalty.wrapping_neg(); + let open = params.gap_open_penalty.wrapping_neg(); + let extend = params.gap_extend_penalty.wrapping_neg(); + let open_and_extend = open.wrapping_add(extend); + let mut previous_match = vec![AFFINE_INFINITY; right.len() + 1]; + let mut current_match = vec![AFFINE_INFINITY; right.len() + 1]; + let mut previous_left = vec![AFFINE_INFINITY; right.len() + 1]; + let mut current_left = vec![AFFINE_INFINITY; right.len() + 1]; + let mut previous_right = vec![AFFINE_INFINITY; right.len() + 1]; + let mut current_right = vec![AFFINE_INFINITY; right.len() + 1]; + previous_match[0] = 0; + for (j, cell) in previous_left.iter_mut().enumerate().skip(1) { + *cell = gap_cost(j, open, extend); + } + for (i, left_unit) in left.iter().enumerate() { + current_match[0] = AFFINE_INFINITY; + current_left[0] = AFFINE_INFINITY; + current_right[0] = gap_cost(i + 1, open, extend); + for (j, right_unit) in right.iter().enumerate() { + let substitution = if left_unit == right_unit { 0 } else { mismatch }; + current_match[j + 1] = affine_plus( + previous_match[j] + .min(previous_left[j]) + .min(previous_right[j]), + substitution, + ); + current_left[j + 1] = affine_plus(current_match[j], open_and_extend) + .min(affine_plus(current_left[j], extend)) + .min(affine_plus(current_right[j], open_and_extend)); + current_right[j + 1] = affine_plus(previous_match[j + 1], open_and_extend) + .min(affine_plus(previous_right[j + 1], extend)) + .min(affine_plus(previous_left[j + 1], open_and_extend)); + } + mem::swap(&mut previous_match, &mut current_match); + mem::swap(&mut previous_left, &mut current_left); + mem::swap(&mut previous_right, &mut current_right); + } + let distance = previous_match[right.len()] + .min(previous_left[right.len()]) + .min(previous_right[right.len()]); + normalize_distance(distance, left.len(), right.len()) +} + +#[cfg(test)] +#[path = "matrix_tests.rs"] +mod tests; diff --git a/examples/extensions/second-string/src/matrix_tests.rs b/examples/extensions/second-string/src/matrix_tests.rs new file mode 100644 index 000000000..b8b6df5ac --- /dev/null +++ b/examples/extensions/second-string/src/matrix_tests.rs @@ -0,0 +1,288 @@ +use super::{ + affine_gap, affine_gap_with_params, jaro, jaro_winkler, jaro_winkler_with_params, + lcs_similarity, levenshtein, needleman_wunsch, needleman_wunsch_with_params, score, + smith_waterman, smith_waterman_with_params, AffineGapParams, AlignmentParams, + JaroWinklerParams, MatrixMetric, +}; + +const METRICS: [MatrixMetric; 7] = [ + MatrixMetric::Levenshtein, + MatrixMetric::LcsSimilarity, + MatrixMetric::Jaro, + MatrixMetric::JaroWinkler, + MatrixMetric::NeedlemanWunsch, + MatrixMetric::SmithWaterman, + MatrixMetric::AffineGap, +]; + +fn close(actual: f64, expected: f64) { + assert!( + (actual - expected).abs() <= 1e-12, + "actual {actual}, expected {expected}" + ); +} + +#[test] +fn shared_empty_boundaries_and_identical_strings() { + for metric in METRICS { + assert_eq!(score(metric, "", ""), 1.0); + assert_eq!(score(metric, "", "spark"), 0.0); + assert_eq!(score(metric, "spark", ""), 0.0); + assert_eq!(score(metric, "spark", "spark"), 1.0); + assert_eq!(score(metric, "東京😀", "東京😀"), 1.0); + } +} + +#[test] +fn upstream_levenshtein_examples() { + close(levenshtein("spark", "spork"), 0.8); + close(levenshtein("kitten", "sitting"), 1.0 - 3.0 / 7.0); + close(levenshtein("ab", "abc"), 1.0 - 1.0 / 3.0); +} + +#[test] +fn upstream_lcs_is_subsequence_normalized_by_longer_input() { + close(lcs_similarity("abcde", "axxxx"), 1.0 / 5.0); + close(lcs_similarity("abcd", "dcba"), 0.25); + close(lcs_similarity("abcdef", "ace"), 0.5); + close(lcs_similarity("ace", "abcdef"), 0.5); +} + +#[test] +fn upstream_jaro_examples_and_repeated_matches() { + close(jaro("martha", "marhta"), 17.0 / 18.0); + close(jaro("dwayne", "duane"), 37.0 / 45.0); + close(jaro("aaaa", "aaab"), 5.0 / 6.0); + close(jaro("abcd", "abc"), 11.0 / 12.0); + assert_eq!(jaro("abc", "xyz"), 0.0); +} + +#[test] +fn jaro_uses_half_a_transposition_for_an_odd_mismatch_count() { + // The matched sequences abcdef/bcadef differ at three positions. Scala + // divides that count by 2.0, rather than truncating it with integer division. + close(jaro("abcdef", "bcadef"), 11.0 / 12.0); +} + +#[test] +fn upstream_jaro_winkler_examples() { + close(jaro_winkler("martha", "marhta"), 0.9611111111111111); + close(jaro_winkler("dwayne", "duane"), 0.8400000000000001); + close(jaro_winkler("aaaa", "aaab"), 0.8833333333333333); + assert_eq!(jaro_winkler("abc", "xyz"), 0.0); +} + +#[test] +fn winkler_boost_has_no_point_seven_threshold() { + close(jaro("ab", "ac"), 2.0 / 3.0); + close(jaro_winkler("ab", "ac"), 0.7); +} + +#[test] +fn winkler_configured_prefix_and_final_clamp() { + close( + jaro_winkler_with_params( + "martha", + "marhta", + JaroWinklerParams { + prefix_scale: 0.2, + prefix_cap: 6, + }, + ), + 44.0 / 45.0, + ); + assert_eq!( + jaro_winkler_with_params( + "abcdefghijx", + "abcdefghijy", + JaroWinklerParams { + prefix_scale: 0.25, + prefix_cap: 10, + }, + ), + 1.0 + ); +} + +#[test] +fn winkler_nan_arithmetic_matches_source_comparisons() { + let params = JaroWinklerParams { + prefix_scale: f64::NAN, + prefix_cap: 4, + }; + assert!(jaro_winkler_with_params("same", "same", params).is_nan()); + assert!(jaro_winkler_with_params("ab", "ac", params).is_nan()); + assert_eq!(jaro_winkler_with_params("ab", "xy", params), 0.0); + assert_eq!(jaro_winkler_with_params("", "", params), 1.0); +} + +#[test] +fn upstream_global_alignment_examples() { + assert_eq!(needleman_wunsch("abc", "xyz"), 0.0); + close(needleman_wunsch("aaaa", "aaab"), 0.75); + close(needleman_wunsch("abcdef", "abc"), 0.5); +} + +#[test] +fn global_alignment_config_keeps_fixed_source_normalization() { + let params = AlignmentParams { + match_score: 2, + mismatch_penalty: -2, + gap_penalty: -1, + }; + // Global score 2 - 1 = 1, normalized by (score + max_length)/(2*max_length). + close(needleman_wunsch_with_params("a", "ab", params), 0.75); + assert_eq!(needleman_wunsch_with_params("a", "a", params), 1.0); + assert_eq!(needleman_wunsch_with_params("a", "z", params), 0.0); +} + +#[test] +fn upstream_local_alignment_examples() { + close(smith_waterman("ACACACTA", "AGCACACA"), 0.75); + assert_eq!(smith_waterman("abc", "xabcx"), 1.0); + assert_eq!(smith_waterman("abc", "xyz"), 0.0); +} + +#[test] +fn local_alignment_zero_penalties_and_configured_match_scale() { + let free_gaps = AlignmentParams { + match_score: 3, + mismatch_penalty: 0, + gap_penalty: 0, + }; + assert_eq!(smith_waterman_with_params("ab", "axxb", free_gaps), 1.0); + let costly_gaps = AlignmentParams { + match_score: 3, + mismatch_penalty: -1, + gap_penalty: -2, + }; + close(smith_waterman_with_params("ab", "axxb", costly_gaps), 0.5); +} + +#[test] +fn affine_gap_charges_opening_and_every_extension() { + // One dropped suffix costs 2 + 1*1 = 3, so a/ab clamps to zero. + assert_eq!(affine_gap("a", "ab"), 0.0); + // Three dropped suffix units cost 2 + 3*1 = 5. + close(affine_gap("abcdef", "abc"), 1.0 / 6.0); + close(affine_gap("aaaa", "aaab"), 0.75); + let params = AffineGapParams { + mismatch_penalty: -2, + gap_open_penalty: -3, + gap_extend_penalty: -2, + }; + close(affine_gap_with_params("aa", "ab", params), 0.0); + assert_eq!(affine_gap_with_params("a", "ab", params), 0.0); +} + +#[test] +fn explicit_default_parameters_match_default_entry_points() { + for (left, right) in [("spark", "spork"), ("😀", "😁"), ("", "abc")] { + assert_eq!( + jaro_winkler(left, right), + jaro_winkler_with_params(left, right, JaroWinklerParams::default()) + ); + assert_eq!( + needleman_wunsch(left, right), + needleman_wunsch_with_params(left, right, AlignmentParams::NEEDLEMAN_WUNSCH) + ); + assert_eq!( + smith_waterman(left, right), + smith_waterman_with_params(left, right, AlignmentParams::SMITH_WATERMAN) + ); + assert_eq!( + affine_gap(left, right), + affine_gap_with_params(left, right, AffineGapParams::default()) + ); + } +} + +#[test] +fn supplementary_characters_are_two_utf16_units() { + // These emoji share the high surrogate and differ only in the low surrogate. + let expected = [0.5, 0.5, 2.0 / 3.0, 0.7, 0.5, 0.5, 0.5]; + for (metric, expected) in METRICS.into_iter().zip(expected) { + close(score(metric, "😀", "😁"), expected); + } + close(levenshtein("😀", "😀a"), 2.0 / 3.0); + close(lcs_similarity("😀", "😀a"), 2.0 / 3.0); +} + +#[test] +fn no_unicode_normalization_or_case_folding() { + close(levenshtein("cafe\u{0301}", "café"), 0.6); + close(lcs_similarity("cafe\u{0301}", "café"), 0.6); + close(levenshtein("東京", "大阪"), 0.0); + close(levenshtein("Spark", "spark"), 0.8); + close(levenshtein("a\u{200b}b", "ab"), 2.0 / 3.0); +} + +#[test] +fn source_unicode_fixtures_are_bounded_and_repeatable() { + let fixtures = [ + ("cafe", "cafe"), + ("café", "cafe"), + ("cafe\u{0301}", "café"), + ("résumé", "resume"), + ("Müller", "Mueller"), + ("東京", "大阪"), + ("東京 都", "東京"), + ("hello 世界", "hello world"), + ("John Смит", "John Smith"), + ("alpha\u{200b}beta", "alpha beta"), + ("alpha\u{2060}beta", "alpha beta"), + ("北京大学", "北京大学院"), + ]; + for metric in METRICS { + for (left, right) in fixtures { + let actual = score(metric, left, right); + assert!((0.0..=1.0).contains(&actual)); + assert_eq!(actual, score(metric, left, right)); + } + } +} + +#[test] +fn custom_int_arithmetic_wraps_as_java_int() { + let params = AlignmentParams { + match_score: 1, + mismatch_penalty: -1, + gap_penalty: i32::MIN, + }; + // In the global recurrence, two gap penalties wrap to zero. Saturating + // arithmetic would instead pick a mismatch and produce zero similarity. + close(needleman_wunsch_with_params("a", "b", params), 0.5); + assert_eq!(smith_waterman_with_params("a", "b", params), 0.0); + let affine = AffineGapParams { + mismatch_penalty: i32::MIN, + gap_open_penalty: -2, + gap_extend_penalty: -1, + }; + // Negating Int.MinValue wraps back to Int.MinValue. The upstream safePlus + // threshold also wraps, so it selects Infinity rather than a negative cost. + assert_eq!(affine_gap_with_params("a", "b", affine), 0.0); +} + +#[test] +fn configured_empty_boundaries_precede_alignment_arithmetic() { + let params = AlignmentParams { + match_score: i32::MAX, + mismatch_penalty: i32::MIN, + gap_penalty: i32::MIN, + }; + assert_eq!(needleman_wunsch_with_params("", "", params), 1.0); + assert_eq!(needleman_wunsch_with_params("", "a", params), 0.0); + assert_eq!(smith_waterman_with_params("a", "", params), 0.0); + assert_eq!( + affine_gap_with_params( + "", + "a", + AffineGapParams { + mismatch_penalty: i32::MIN, + gap_open_penalty: i32::MIN, + gap_extend_penalty: i32::MIN, + }, + ), + 0.0 + ); +} diff --git a/examples/extensions/second-string/src/options.rs b/examples/extensions/second-string/src/options.rs new file mode 100644 index 000000000..e96c61399 --- /dev/null +++ b/examples/extensions/second-string/src/options.rs @@ -0,0 +1,139 @@ +//! Literal-only configuration reproduces the Scala DSL's constructor parameters. +use crate::{ + function::Function, + matrix::{self, AffineGapParams, AlignmentParams, JaroWinklerParams}, + token::{self, MongeInnerMetric, TokenConfig}, +}; +use arrow_schema::DataType; +use datafusion_common::{plan_err, Result, ScalarValue}; + +#[derive(Debug, Clone)] +pub enum Options { + Default, + Token(TokenConfig), + JaroWinkler(JaroWinklerParams), + Alignment(AlignmentParams), + AffineGap(AffineGapParams), +} + +pub fn parse(function: Function, values: &[&ScalarValue]) -> Result { + let error = |text: &str| { + datafusion_common::DataFusionError::Plan(format!("{}: {text}", function.name())) + }; + let integer = |index: usize| -> Result { + match values.get(index) { + Some(ScalarValue::Int32(Some(value))) => Ok(*value), + Some(ScalarValue::Int64(Some(value))) => { + i32::try_from(*value).map_err(|_| error("option exceeds Scala Int range")) + } + _ => Err(error("integer options must be non-null integer literals")), + } + }; + if function.token().is_some() { + let (inner_metric, index) = if function == Function::MongeElkan { + let inner = match values.first() { + Some(ScalarValue::Utf8(Some(value))) + | Some(ScalarValue::LargeUtf8(Some(value))) + | Some(ScalarValue::Utf8View(Some(value))) => value.as_str(), + _ => return Err(error("inner metric must be a non-null string literal")), + }; + let metric = match inner { + "jaro_winkler" => MongeInnerMetric::JaroWinkler, + "jaro" => MongeInnerMetric::Jaro, + "levenshtein" => MongeInnerMetric::Levenshtein, + "needleman_wunsch" => MongeInnerMetric::NeedlemanWunsch, + "smith_waterman" => MongeInnerMetric::SmithWaterman, + _ => return Err(error("unsupported Monge-Elkan inner metric")), + }; + (metric, 1) + } else { + (MongeInnerMetric::JaroWinkler, 0) + }; + let ngram = integer(index)?; + if ngram < 0 { + return Err(error("ngramSize must be >= 0")); + } + return Ok(Options::Token(TokenConfig { + ngram_size: ngram as usize, + inner_metric, + })); + } + match function { + Function::JaroWinkler => { + let scale = match values.first() { + Some(value) if !value.is_null() && value.data_type().is_numeric() => { + match value.cast_to(&DataType::Float64)? { + ScalarValue::Float64(Some(value)) => value, + _ => return Err(error("prefixScale must be a non-null numeric literal")), + } + } + _ => return Err(error("prefixScale must be a non-null numeric literal")), + }; + let cap = integer(1)?; + // Spark's constructor permits NaN; preserve its comparison semantics. + if scale <= 0.0 || scale > 0.25 || !(1..=10).contains(&cap) { + return Err(error( + "prefixScale must be in (0, 0.25] and prefixCap in [1, 10]", + )); + } + Ok(Options::JaroWinkler(JaroWinklerParams { + prefix_scale: scale, + prefix_cap: cap as usize, + })) + } + Function::NeedlemanWunsch | Function::SmithWaterman => { + let params = AlignmentParams { + match_score: integer(0)?, + mismatch_penalty: integer(1)?, + gap_penalty: integer(2)?, + }; + let penalties_valid = if function == Function::NeedlemanWunsch { + params.mismatch_penalty < 0 && params.gap_penalty < 0 + } else { + params.mismatch_penalty <= 0 && params.gap_penalty <= 0 + }; + if params.match_score <= 0 || !penalties_valid { + return Err(error("invalid alignment scoring parameters")); + } + Ok(Options::Alignment(params)) + } + Function::AffineGap => { + let params = AffineGapParams { + mismatch_penalty: integer(0)?, + gap_open_penalty: integer(1)?, + gap_extend_penalty: integer(2)?, + }; + if params.mismatch_penalty >= 0 + || params.gap_open_penalty >= 0 + || params.gap_extend_penalty >= 0 + { + return Err(error("affine gap penalties must be < 0")); + } + Ok(Options::AffineGap(params)) + } + _ => plan_err!("{} has no configurable parameters", function.name()), + } +} + +pub fn score(function: Function, left: &str, right: &str, options: &Options) -> f64 { + if let Some(metric) = function.token() { + let defaults = TokenConfig::default(); + let config = match options { + Options::Token(config) => config, + _ => &defaults, + }; + return token::score(metric, left, right, config); + } + match options { + Options::JaroWinkler(params) => matrix::jaro_winkler_with_params(left, right, *params), + Options::Alignment(params) if function == Function::NeedlemanWunsch => { + matrix::needleman_wunsch_with_params(left, right, *params) + } + Options::Alignment(params) => matrix::smith_waterman_with_params(left, right, *params), + Options::AffineGap(params) => matrix::affine_gap_with_params(left, right, *params), + _ => function + .matrix() + .map(|metric| matrix::score(metric, left, right)) + .unwrap_or(0.0), + } +} diff --git a/examples/extensions/second-string/src/phonetic.rs b/examples/extensions/second-string/src/phonetic.rs new file mode 100644 index 000000000..e921b507f --- /dev/null +++ b/examples/extensions/second-string/src/phonetic.rs @@ -0,0 +1,86 @@ +//! Native equivalents of spark-second-string's unary phonetic wrappers. +//! +//! These wrappers normalize before encoding, including before Commons Codec's +//! Double Metaphone. Their Soundex and Refined Soundex are the Scala project's +//! implementations, not Apache Commons Codec's similarly named encoders. + +#[path = "double_metaphone.rs"] +mod double_metaphone_impl; + +/// Java `Character.toUpperCase(char)` followed by the wrapper's A–Z filter. +/// +/// Java visits UTF-16 code units and uses a one-character uppercase mapping: +/// neither supplementary letters nor uppercase expansions such as ß → SS +/// survive. The two non-ASCII code units whose uppercase is ASCII are ı and ſ. +fn normalize(input: &str) -> Vec { + input + .chars() + .filter_map(|c| match c { + 'A'..='Z' => Some(c as u8), + 'a'..='z' => Some(c as u8 - b'a' + b'A'), + '\u{0131}' => Some(b'I'), + '\u{017f}' => Some(b'S'), + _ => None, + }) + .collect() +} + +/// Soundex as implemented by the reference Scala wrapper. +pub fn soundex(input: &str) -> String { + const CODES: &[u8; 26] = b"01230120022455012623010202"; + let word = normalize(input); + let Some(&first) = word.first() else { + return String::new(); + }; + let mut output = String::with_capacity(4); + output.push(char::from(first)); + let mut previous = CODES[usize::from(first - b'A')]; + for &letter in &word[1..] { + let code = CODES[usize::from(letter - b'A')]; + if code != b'0' && code != previous { + output.push(char::from(code)); + if output.len() == 4 { + break; + } + } + if code != b'0' { + previous = code; + } else if b"AEIOUY".contains(&letter) { + previous = b'0'; + } + } + while output.len() < 4 { + output.push('0'); + } + output +} + +/// Variable-length Refined Soundex as implemented by the Scala wrapper. +pub fn refined_soundex(input: &str) -> String { + const CODES: &[u8; 26] = b"01230560062788012923050202"; + let word = normalize(input); + let Some(&first) = word.first() else { + return String::new(); + }; + let mut output = String::with_capacity(word.len() + 1); + output.push(char::from(first)); + let mut previous = CODES[usize::from(first - b'A')]; + for &letter in &word[1..] { + let code = CODES[usize::from(letter - b'A')]; + if code != previous { + output.push(char::from(code)); + } + previous = code; + } + output +} + +/// Commons Codec 1.21.0 Double Metaphone primary code, capped at four bytes, +/// after the reference Scala wrapper's normalization. +pub fn double_metaphone(input: &str) -> String { + double_metaphone_impl::encode(&normalize(input)) +} + +#[cfg(test)] +#[path = "phonetic_tests.rs"] +mod tests; diff --git a/examples/extensions/second-string/src/phonetic_tests.rs b/examples/extensions/second-string/src/phonetic_tests.rs new file mode 100644 index 000000000..e66bb12c7 --- /dev/null +++ b/examples/extensions/second-string/src/phonetic_tests.rs @@ -0,0 +1,99 @@ +use super::{double_metaphone, normalize, refined_soundex, soundex}; + +#[test] +fn soundex_matches_reference_scala_examples() { + for (word, code) in [ + ("Robert", "R163"), + ("Rupert", "R163"), + ("Ashcraft", "A261"), + ("Tymczak", "T522"), + ("Pfister", "P236"), + ("A", "A000"), + ("123", ""), + ] { + assert_eq!(soundex(word), code, "{word}"); + } +} + +#[test] +fn soundex_vowels_reset_duplicates_but_h_and_w_do_not() { + assert_eq!(soundex("BHB"), "B000"); + assert_eq!(soundex("BWB"), "B000"); + for vowel in ['A', 'E', 'I', 'O', 'U', 'Y'] { + assert_eq!(soundex(&format!("B{vowel}B")), "B100"); + } + // Removed punctuation does not become a separator in the encoder. + assert_eq!(soundex("B-B"), "B000"); +} + +#[test] +fn refined_soundex_uses_wrapper_initial_code_and_zero_semantics() { + // The Scala wrapper omits the initial letter's digit, unlike Commons + // RefinedSoundex, and includes subsequent zero-code transitions. + assert_eq!(refined_soundex("Robert"), "R01093"); + assert_eq!(refined_soundex("Rupert"), "R01093"); + assert_eq!(refined_soundex("Smith"), "S8030"); + assert_eq!(refined_soundex("smith"), "S8030"); + assert_eq!(refined_soundex("A"), "A"); + assert_eq!(refined_soundex("BHB"), "B01"); + assert_eq!(refined_soundex("AAA"), "A"); + assert_eq!(refined_soundex("123"), ""); +} + +#[test] +fn normalization_follows_java_simple_uppercase_of_utf16_units() { + assert_eq!(normalize("aBzıſ"), b"ABZIS"); + assert_eq!(normalize("İéñçßffKK𝕂𐐨😀"), b""); + assert_eq!(normalize("Émile O'Brien-12"), b"MILEOBRIEN"); + assert_eq!(normalize("e\u{0301}"), b"E"); + for encode in [soundex, refined_soundex, double_metaphone] { + assert_eq!(encode("ıſ"), encode("IS")); + assert_eq!(encode("ßff𝕂"), ""); + assert_eq!(encode("Émile"), encode("mile")); + assert_eq!(encode("É"), ""); + assert_eq!(encode("O'Brien"), encode("OBRIEN")); + assert_eq!(encode("San Jose"), encode("SANJOSE")); + assert_eq!(encode("a\0b"), encode("AB")); + assert_eq!(encode(""), ""); + } +} + +#[test] +fn double_metaphone_matches_commons_121_primary_examples() { + // Alphabetic examples from Apache Commons Codec 1.21.0's test suite. + for (word, code) in [ + ("testing", "TSTN"), + ("The", "0"), + ("quick", "KK"), + ("brown", "PRN"), + ("fox", "FKS"), + ("jumped", "JMPT"), + ("over", "AFR"), + ("lazy", "LS"), + ("dogs", "TKS"), + ("MacCafferey", "MKFR"), + ("Stephan", "STFN"), + ("Kuczewski", "KSSK"), + ("McClelland", "MKLL"), + ("xenophobia", "SNFP"), + ] { + assert_eq!(double_metaphone(word), code, "{word}"); + assert_eq!(double_metaphone(&word.to_uppercase()), code, "{word}"); + } + assert_eq!(double_metaphone("Stephen"), double_metaphone("Steven")); +} + +#[test] +fn double_metaphone_covers_silent_initials_and_truncation() { + for (word, code) in [ + ("gnome", "NM"), + ("knight", "NT"), + ("pneumonia", "NMN"), + ("write", "RT"), + ("psalm", "SLM"), + ] { + assert_eq!(double_metaphone(word), code, "{word}"); + } + assert_eq!(double_metaphone("Ababababab"), "APPP"); + assert_eq!(double_metaphone("123"), ""); +} diff --git a/examples/extensions/second-string/src/tests.rs b/examples/extensions/second-string/src/tests.rs new file mode 100644 index 000000000..c4ff68cea --- /dev/null +++ b/examples/extensions/second-string/src/tests.rs @@ -0,0 +1,296 @@ +use std::sync::Arc; + +use arrow_schema::Field; +use datafusion_common::arrow::array::{ + Array, Float64Array, LargeStringArray, StringArray, StringViewArray, +}; +use datafusion_common::config::ConfigOptions; +use datafusion_common::{Result, ScalarValue}; +use datafusion_expr::{ + ColumnarValue, ReturnFieldArgs, ScalarFunctionArgs, ScalarUDF, ScalarUDFImpl, +}; +use datafusion_ffi::udf::{FFI_ScalarUDF, ForeignScalarUDF}; +use serde::Deserialize; + +use crate::udf; + +fn foreign(name: &str) -> ScalarUDF { + let original = udf::functions() + .into_iter() + .find(|function| function.name() == name) + .unwrap(); + extern "C" fn foreign_marker() -> usize { + 0 + } + let mut exported = FFI_ScalarUDF::from(original); + exported.library_marker_id = foreign_marker; + let imported: Arc = exported.into(); + assert!(imported.is::()); + ScalarUDF::new_from_shared_impl(imported) +} + +fn invoke(function: &ScalarUDF, args: Vec) -> Result { + let fields: Vec<_> = args + .iter() + .map(|arg| Arc::new(Field::new("arg", arg.data_type(), true))) + .collect(); + let scalars: Vec<_> = args + .iter() + .map(|arg| match arg { + ColumnarValue::Scalar(value) => Some(value), + _ => None, + }) + .collect(); + let rows = args + .iter() + .find_map(|arg| match arg { + ColumnarValue::Array(array) => Some(array.len()), + _ => None, + }) + .unwrap_or(1); + let return_field = function.return_field_from_args(ReturnFieldArgs { + arg_fields: &fields, + scalar_arguments: &scalars, + })?; + function.invoke_with_args(ScalarFunctionArgs { + args, + arg_fields: fields, + number_rows: rows, + return_field, + config_options: Arc::new(ConfigOptions::new()), + }) +} + +fn text(value: Option<&str>) -> ColumnarValue { + ColumnarValue::Scalar(ScalarValue::Utf8(value.map(str::to_owned))) +} + +fn scalar(value: ColumnarValue) -> ScalarValue { + ScalarValue::try_from_array(&value.into_array(1).unwrap(), 0).unwrap() +} + +#[test] +fn all_names_and_default_arities_are_preserved() { + assert_eq!(udf::functions().len(), 26); + assert!(invoke(&foreign("ss_jaro"), vec![text(Some("x"))]).is_err()); + assert!(invoke( + &foreign("ss_jaccard"), + vec![text(Some("x")), text(Some("x")), text(Some("x"))] + ) + .is_err()); + assert!(invoke( + &foreign("ss_soundex"), + vec![text(Some("x")), text(Some("x"))] + ) + .is_err()); +} + +#[test] +fn foreign_batches_preserve_nulls_slices_and_scalar_broadcast() { + let values = StringArray::from(vec![ + Some("padding"), + Some("MARTHA"), + None, + Some("DWAYNE"), + Some("padding"), + ]) + .slice(1, 3); + let output = invoke( + &foreign("ss_jaro_winkler"), + vec![ColumnarValue::Array(Arc::new(values)), text(Some("MARHTA"))], + ) + .unwrap() + .into_array(3) + .unwrap(); + let scores = output.as_any().downcast_ref::().unwrap(); + assert!((scores.value(0) - 0.9611111111111111).abs() < 1e-12); + assert!(scores.is_null(1)); + assert!(!scores.is_null(2)); + assert_eq!( + scalar( + invoke( + &foreign("ss_levenshtein"), + vec![text(None), text(Some("x"))] + ) + .unwrap() + ), + ScalarValue::Float64(None) + ); + assert_eq!( + scalar(invoke(&foreign("ss_soundex"), vec![text(None)]).unwrap()), + ScalarValue::Utf8(None) + ); +} + +#[test] +fn foreign_large_and_view_strings_use_utf16_reference_semantics() { + for input in [ + ColumnarValue::Array(Arc::new(LargeStringArray::from(vec![ + Some("😀"), + None, + Some(""), + ]))), + ColumnarValue::Array(Arc::new(StringViewArray::from(vec![ + Some("😀"), + None, + Some(""), + ]))), + ] { + let result = invoke(&foreign("ss_levenshtein"), vec![input, text(Some("😁"))]) + .unwrap() + .into_array(3) + .unwrap(); + let scores = result.as_any().downcast_ref::().unwrap(); + assert_eq!(scores.value(0), 0.5); + assert!(scores.is_null(1)); + assert_eq!(scores.value(2), 0.0); + } + let input = ColumnarValue::Array(Arc::new(StringArray::from(Vec::>::new()))); + assert_eq!( + invoke(&foreign("ss_jaccard"), vec![input.clone(), input]) + .unwrap() + .into_array(0) + .unwrap() + .len(), + 0 + ); +} + +#[test] +fn literal_options_survive_foreign_transport_and_invalid_domains_are_refused() { + let options = ColumnarValue::Scalar(ScalarValue::Int64(Some(2))); + assert_eq!( + scalar( + invoke( + &foreign("ss_jaccard_with_options"), + vec![text(Some("abcd")), text(Some("abce")), options] + ) + .unwrap() + ), + ScalarValue::Float64(Some(0.5)) + ); + assert!(invoke( + &foreign("ss_cosine_with_options"), + vec![ + text(Some("x")), + text(Some("y")), + ColumnarValue::Scalar(ScalarValue::Int64(Some(-1))) + ] + ) + .is_err()); + assert!(invoke( + &foreign("ss_monge_elkan_with_options"), + vec![ + text(Some("x")), + text(Some("y")), + text(Some("unknown")), + ColumnarValue::Scalar(ScalarValue::Int64(Some(0))) + ] + ) + .is_err()); + assert!(invoke( + &foreign("ss_jaro_winkler_with_options"), + vec![ + text(Some("x")), + text(Some("y")), + ColumnarValue::Scalar(ScalarValue::Float64(Some(0.3))), + ColumnarValue::Scalar(ScalarValue::Int64(Some(4))) + ] + ) + .is_err()); + let nonliteral = ColumnarValue::Array(Arc::new( + datafusion_common::arrow::array::Int64Array::from(vec![2]), + )); + assert!(invoke( + &foreign("ss_jaccard_with_options"), + vec![text(Some("x")), text(Some("y")), nonliteral] + ) + .is_err()); +} + +#[derive(Deserialize)] +struct Oracle { + pairs: Vec, + cases: Vec, +} +#[derive(Deserialize)] +struct Pair { + left: String, + right: Option, +} +#[derive(Deserialize)] +struct Case { + id: serde_json::Value, + function: String, + pair: usize, + parameters: Vec, + expected: serde_json::Value, +} + +#[test] +fn compiled_scala_oracle_matches_all_exported_functions_through_arrow_ffi() { + let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/fixtures/oracle.json"); + let oracle: Oracle = serde_json::from_str( + &std::fs::read_to_string(path) + .expect("generate the pinned Scala oracle before qualification"), + ) + .unwrap(); + assert!( + oracle.cases.len() >= 1000, + "qualification must include the complete corpus" + ); + let functions: std::collections::HashMap<_, _> = udf::functions() + .iter() + .map(|function| { + let name = function.name().to_owned(); + (name.clone(), foreign(&name)) + }) + .collect(); + for case in &oracle.cases { + let pair = &oracle.pairs[case.pair]; + let name = if case.parameters.is_empty() { + case.function.clone() + } else { + format!("{}_with_options", case.function) + }; + let mut args = vec![text(Some(&pair.left))]; + if !matches!( + case.function.as_str(), + "ss_soundex" | "ss_refined_soundex" | "ss_double_metaphone" + ) { + args.push(text(Some(pair.right.as_ref().expect("binary oracle pair")))); + } + for (index, value) in case.parameters.iter().enumerate() { + let scalar = if let Some(value) = value.as_str() { + ScalarValue::Utf8(Some(value.to_owned())) + } else if case.function == "ss_jaro_winkler" && index == 0 { + ScalarValue::Float64(value.as_f64()) + } else { + ScalarValue::Int64(value.as_i64()) + }; + args.push(ColumnarValue::Scalar(scalar)); + } + let actual = scalar( + invoke(&functions[&name], args) + .unwrap_or_else(|error| panic!("case {} {name}: {error}", case.id)), + ); + if let Some(expected) = case.expected.as_str() { + assert_eq!( + actual, + ScalarValue::Utf8(Some(expected.to_owned())), + "case {} {name}", + case.id + ); + } else { + let ScalarValue::Float64(Some(actual)) = actual else { + panic!("case {} did not return Float64", case.id) + }; + let expected = case.expected.as_f64().unwrap(); + assert!( + (actual - expected).abs() <= 1e-12, + "case {} {name}: actual={actual} reference={expected}", + case.id + ); + } + } +} diff --git a/examples/extensions/second-string/src/token.rs b/examples/extensions/second-string/src/token.rs new file mode 100644 index 000000000..64670a364 --- /dev/null +++ b/examples/extensions/second-string/src/token.rs @@ -0,0 +1,193 @@ +//! Token similarities from spark-second-string at a35db39fa8e9b65db2d201a45b86d11a6ca34b98. +//! +//! Inputs are non-null and case-sensitive. The caller handles SQL nulls and +//! validates configuration once. N-grams count Java UTF-16 code units rather +//! than Unicode scalar values; whitespace mode uses `Character.isWhitespace`. + +use std::collections::BTreeSet; + +use crate::matrix::{self, MatrixMetric}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum TokenMetric { + Jaccard, + Cosine, + SorensenDice, + OverlapCoefficient, + BraunBlanquet, + MongeElkan, +} + +/// Only the inner metrics accepted by upstream Monge-Elkan. +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +pub enum MongeInnerMetric { + #[default] + JaroWinkler, + Jaro, + Levenshtein, + NeedlemanWunsch, + SmithWaterman, +} + +impl MongeInnerMetric { + fn matrix_metric(self) -> MatrixMetric { + match self { + Self::JaroWinkler => MatrixMetric::JaroWinkler, + Self::Jaro => MatrixMetric::Jaro, + Self::Levenshtein => MatrixMetric::Levenshtein, + Self::NeedlemanWunsch => MatrixMetric::NeedlemanWunsch, + Self::SmithWaterman => MatrixMetric::SmithWaterman, + } + } +} + +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +pub struct TokenConfig { + /// Zero selects whitespace tokens; positive values select UTF-16 n-grams. + pub ngram_size: usize, + /// Used only by Monge-Elkan, with the inner metric's upstream defaults. + pub inner_metric: MongeInnerMetric, +} + +/// Compute an upstream token score for two non-null strings. +pub fn score(metric: TokenMetric, left: &str, right: &str, config: &TokenConfig) -> f64 { + if metric == TokenMetric::MongeElkan { + return monge_elkan(left, right, config); + } + + // The five set metrics check raw strings before tokenization. In + // particular, a nonempty whitespace-only string is not a raw empty string. + if left.is_empty() && right.is_empty() { + return 1.0; + } + if left.is_empty() || right.is_empty() { + return 0.0; + } + + let left_tokens = token_set(left, config.ngram_size); + let right_tokens = token_set(right, config.ngram_size); + let intersection = left_tokens.intersection(&right_tokens).count(); + let left_size = left_tokens.len(); + let right_size = right_tokens.len(); + + let (numerator, denominator) = match metric { + TokenMetric::Jaccard => ( + intersection as f64, + (left_size + right_size - intersection) as f64, + ), + TokenMetric::Cosine => ( + intersection as f64, + ((left_size as f64) * (right_size as f64)).sqrt(), + ), + TokenMetric::SorensenDice => (2.0 * (intersection as f64), (left_size + right_size) as f64), + TokenMetric::OverlapCoefficient => (intersection as f64, left_size.min(right_size) as f64), + TokenMetric::BraunBlanquet => (intersection as f64, left_size.max(right_size) as f64), + TokenMetric::MongeElkan => unreachable!("Monge-Elkan returns before set scoring"), + }; + if denominator == 0.0 { + 1.0 + } else { + numerator / denominator + } +} + +/// Java's whitespace predicate on a UTF-16 code unit. In particular, NBSP, +/// figure space, narrow NBSP and NEL are not delimiters; U+001C..U+001F are. +fn java_whitespace(unit: u16) -> bool { + matches!( + unit, + 0x0009..=0x000D + | 0x001C..=0x0020 + | 0x1680 + | 0x2000..=0x2006 + | 0x2008..=0x200A + | 0x2028..=0x2029 + | 0x205F + | 0x3000 + ) +} + +fn whitespace_tokens(value: &str) -> Vec> { + let units: Vec = value.encode_utf16().collect(); + units + .split(|unit| java_whitespace(*unit)) + .filter(|token| !token.is_empty()) + .map(<[u16]>::to_vec) + .collect() +} + +fn token_set(value: &str, ngram_size: usize) -> BTreeSet> { + if ngram_size == 0 { + return whitespace_tokens(value).into_iter().collect(); + } + + let units: Vec = value.encode_utf16().collect(); + if units.is_empty() { + BTreeSet::new() + } else if units.len() < ngram_size { + BTreeSet::from([units]) + } else { + units.windows(ngram_size).map(<[u16]>::to_vec).collect() + } +} + +/// Match Java String.getBytes(UTF_8), used by UTF8String.fromString in Monge: +/// malformed UTF-16 (possible after an n-gram splits a surrogate pair) becomes +/// ASCII '?'. Replacing it with U+FFFD would change the inner metric's score. +fn java_utf8_roundtrip(units: &[u16]) -> String { + char::decode_utf16(units.iter().copied()) + .map(|result| result.unwrap_or('?')) + .collect() +} + +fn monge_tokens(value: &str, ngram_size: usize) -> Vec { + let tokens = if ngram_size == 0 { + // Sequence tokenization retains repetitions and input order. + whitespace_tokens(value) + } else { + // N-gram mode removes repetitions. A fixed UTF-16 order makes + // floating reduction deterministic; Java HashSet does not expose an + // ordering contract, so cross-runtime scores use a numeric tolerance. + token_set(value, ngram_size).into_iter().collect() + }; + tokens + .iter() + .map(|token| java_utf8_roundtrip(token)) + .collect() +} + +fn directed_similarity(left: &[String], right: &[String], metric: MatrixMetric) -> f64 { + let mut sum_best = 0.0; + for left_token in left { + let mut best = 0.0; + for right_token in right { + let candidate = matrix::score(metric, left_token, right_token); + if candidate > best { + best = candidate; + } + } + sum_best += best; + } + sum_best / (left.len() as f64) +} + +fn monge_elkan(left: &str, right: &str, config: &TokenConfig) -> f64 { + let left_tokens = monge_tokens(left, config.ngram_size); + let right_tokens = monge_tokens(right, config.ngram_size); + if left_tokens.is_empty() && right_tokens.is_empty() { + return 1.0; + } + if left_tokens.is_empty() || right_tokens.is_empty() { + return 0.0; + } + + let metric = config.inner_metric.matrix_metric(); + let raw_score = (directed_similarity(&left_tokens, &right_tokens, metric) + + directed_similarity(&right_tokens, &left_tokens, metric)) + / 2.0; + raw_score.clamp(0.0, 1.0) +} + +#[cfg(test)] +#[path = "token_tests.rs"] +mod tests; diff --git a/examples/extensions/second-string/src/token_tests.rs b/examples/extensions/second-string/src/token_tests.rs new file mode 100644 index 000000000..05a6c372c --- /dev/null +++ b/examples/extensions/second-string/src/token_tests.rs @@ -0,0 +1,281 @@ +use super::{ + java_utf8_roundtrip, java_whitespace, monge_tokens, score, token_set, whitespace_tokens, + MongeInnerMetric, TokenConfig, TokenMetric, +}; + +const SET_METRICS: [TokenMetric; 5] = [ + TokenMetric::Jaccard, + TokenMetric::Cosine, + TokenMetric::SorensenDice, + TokenMetric::OverlapCoefficient, + TokenMetric::BraunBlanquet, +]; + +fn assert_close(actual: f64, expected: f64) { + assert!((actual - expected).abs() <= 1e-12, "{actual} != {expected}"); +} + +fn grams(ngram_size: usize) -> TokenConfig { + TokenConfig { + ngram_size, + ..TokenConfig::default() + } +} + +#[test] +fn all_metrics_preserve_raw_empty_boundaries_and_case() { + for metric in SET_METRICS.into_iter().chain([TokenMetric::MongeElkan]) { + let config = TokenConfig::default(); + assert_eq!(score(metric, "", "", &config), 1.0); + assert_eq!(score(metric, "", "hello", &config), 0.0); + assert_eq!(score(metric, "hello", "", &config), 0.0); + assert_eq!(score(metric, "hello world", "hello world", &config), 1.0); + assert_eq!(score(metric, "A", "a", &config), 0.0); + } +} + +#[test] +fn set_metrics_match_hand_computed_cardinality_formulas() { + let config = TokenConfig::default(); + let cases = [ + (TokenMetric::Jaccard, 0.5, 1.0 / 3.0), + (TokenMetric::Cosine, 2.0 / 3.0, 0.5), + (TokenMetric::SorensenDice, 4.0 / 6.0, 0.5), + (TokenMetric::OverlapCoefficient, 2.0 / 3.0, 0.5), + (TokenMetric::BraunBlanquet, 2.0 / 3.0, 0.5), + ]; + for (metric, partial, duplicates) in cases { + assert_close(score(metric, "a b c", "a b d", &config), partial); + assert_close(score(metric, "a a b", "a c c", &config), duplicates); + assert_eq!(score(metric, "a a a b", "a b", &config), 1.0); + assert_eq!(score(metric, "alpha", "omega", &config), 0.0); + } + assert_close( + score(TokenMetric::Cosine, "a b", "a", &config), + 1.0 / 2.0_f64.sqrt(), + ); + assert_eq!( + score(TokenMetric::BraunBlanquet, "a b c d", "a b", &config), + 0.5 + ); + assert_eq!( + score(TokenMetric::OverlapCoefficient, "a b c d", "a b", &config), + 1.0 + ); +} + +#[test] +fn raw_empty_and_whitespace_only_are_distinct_upstream_cases() { + let config = TokenConfig::default(); + for metric in SET_METRICS { + assert_eq!(score(metric, " \t\n", "\r ", &config), 1.0); + assert_eq!(score(metric, "", " \t", &config), 0.0); + let expected = match metric { + TokenMetric::Cosine | TokenMetric::OverlapCoefficient => 1.0, + _ => 0.0, + }; + assert_eq!(score(metric, " \t", "alpha", &config), expected); + assert_eq!(score(metric, "alpha", " \t", &config), expected); + } + assert_eq!(score(TokenMetric::MongeElkan, "", " \t", &config), 1.0); + assert_eq!(score(TokenMetric::MongeElkan, " \t", "alpha", &config), 0.0); +} + +#[test] +fn java_whitespace_delimiters_and_exclusions_are_explicit() { + let delimiters = [ + 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x001C, 0x001D, 0x001E, 0x001F, 0x0020, 0x1680, + 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2008, 0x2009, 0x200A, 0x2028, + 0x2029, 0x205F, 0x3000, + ]; + for unit in delimiters { + assert!(java_whitespace(unit)); + let separator = char::from_u32(u32::from(unit)).expect("BMP delimiter"); + let value = format!("alpha{separator}beta"); + for metric in SET_METRICS { + assert_eq!( + score(metric, &value, "alpha beta", &TokenConfig::default()), + 1.0 + ); + } + } + for unit in [ + 0x0085, 0x00A0, 0x180E, 0x2007, 0x200B, 0x202F, 0x2060, 0xFEFF, + ] { + assert!(!java_whitespace(unit)); + let separator = char::from_u32(u32::from(unit)).expect("BMP non-delimiter"); + let value = format!("alpha{separator}beta"); + assert_eq!(token_set(&value, 0).len(), 1); + assert_eq!( + score( + TokenMetric::Jaccard, + &value, + "alpha beta", + &TokenConfig::default() + ), + 0.0 + ); + } +} + +#[test] +fn whitespace_sequences_preserve_repetitions_and_punctuation() { + let sequence = whitespace_tokens("alpha beta alpha gamma"); + let expected: Vec> = ["alpha", "beta", "alpha", "gamma"] + .into_iter() + .map(|token| token.encode_utf16().collect()) + .collect(); + assert_eq!(sequence, expected); + assert_eq!(token_set("alpha alpha alpha beta", 0).len(), 2); + assert_eq!(token_set("alpha,beta", 0).len(), 1); + assert_eq!(token_set(" \t\n ", 0).len(), 0); +} + +#[test] +fn ngrams_match_upstream_fixtures_and_preserve_raw_spaces() { + let config = grams(2); + for (left, right, expected) in [ + ("abcd", "abce", 0.5), + ("abc", "abc", 1.0), + ("abc", "xyz", 0.0), + ("ab", "abc", 0.5), + ("a b", "a c", 1.0 / 3.0), + ] { + assert_close(score(TokenMetric::Jaccard, left, right, &config), expected); + } + assert!(token_set("", 2).is_empty()); + assert_eq!( + token_set("ab", 3), + std::collections::BTreeSet::from([vec![97, 98]]) + ); + assert_eq!(token_set("aaaa", 2).len(), 1); + for metric in SET_METRICS { + assert_eq!(score(metric, "ab", "ab", &grams(3)), 1.0); + assert_eq!(score(metric, "", "ab", &grams(3)), 0.0); + } +} + +#[test] +fn ngrams_use_utf16_units_without_normalization() { + assert_eq!( + token_set("😀", 1), + std::collections::BTreeSet::from([vec![0xD83D], vec![0xDE00]]) + ); + assert_eq!( + token_set("😀", 2), + std::collections::BTreeSet::from([vec![0xD83D, 0xDE00]]) + ); + // These emoji share one surrogate, not one Unicode scalar token. + assert_close( + score(TokenMetric::Jaccard, "😀", "😁", &grams(1)), + 1.0 / 3.0, + ); + assert_eq!(score(TokenMetric::Jaccard, "😀", "😁", &grams(2)), 0.0); + assert_eq!( + score( + TokenMetric::Jaccard, + "café", + "cafe\u{0301}", + &TokenConfig::default() + ), + 0.0 + ); + assert_eq!( + score( + TokenMetric::Jaccard, + "北京大学", + "北京大学", + &TokenConfig::default() + ), + 1.0 + ); +} + +#[test] +fn monge_surrogate_roundtrip_matches_java_utf8_replacement() { + assert_eq!(java_utf8_roundtrip(&[0xD83D]), "?"); + assert_eq!(java_utf8_roundtrip(&[0xDE00]), "?"); + assert_eq!(java_utf8_roundtrip(&[0xD83D, 0xDE00]), "😀"); + assert_eq!(java_utf8_roundtrip(&[0xD83D, 0x0061, 0xDE00]), "?a?"); + // Deduplicate the Java Strings before their UTF8 conversion, not afterwards. + assert_eq!(monge_tokens("😀", 1), ["?", "?"]); + assert_eq!(score(TokenMetric::MongeElkan, "😀", "😁", &grams(1)), 1.0); +} + +#[test] +fn monge_is_symmetric_and_repetitions_affect_directed_averages() { + let config = TokenConfig { + inner_metric: MongeInnerMetric::Levenshtein, + ..TokenConfig::default() + }; + assert_close( + score(TokenMetric::MongeElkan, "a a b", "a c", &config), + 7.0 / 12.0, + ); + assert_close( + score(TokenMetric::MongeElkan, "a c", "a a b", &config), + 7.0 / 12.0, + ); + assert_eq!(score(TokenMetric::MongeElkan, "a b", "a c", &config), 0.5); + assert_eq!( + score( + TokenMetric::MongeElkan, + "alpha beta gamma", + "gamma beta alpha", + &config + ), + 1.0 + ); + assert!(score(TokenMetric::MongeElkan, "alpha,beta", "alpha beta", &config) < 1.0); +} + +#[test] +fn monge_accepts_all_five_inner_defaults_and_ngram_mode() { + for inner_metric in [ + MongeInnerMetric::JaroWinkler, + MongeInnerMetric::Jaro, + MongeInnerMetric::Levenshtein, + MongeInnerMetric::NeedlemanWunsch, + MongeInnerMetric::SmithWaterman, + ] { + let config = TokenConfig { + ngram_size: 2, + inner_metric, + }; + assert_eq!(score(TokenMetric::MongeElkan, "abc", "abc", &config), 1.0); + let value = score( + TokenMetric::MongeElkan, + "stephen smyth", + "steven smith", + &config, + ); + assert!((0.0..=1.0).contains(&value)); + assert_eq!( + value, + score( + TokenMetric::MongeElkan, + "stephen smyth", + "steven smith", + &config + ) + ); + } + let jaro = TokenConfig { + inner_metric: MongeInnerMetric::Jaro, + ..TokenConfig::default() + }; + assert_ne!( + score( + TokenMetric::MongeElkan, + "stephen smyth", + "steven smith", + &jaro + ), + score( + TokenMetric::MongeElkan, + "stephen smyth", + "steven smith", + &TokenConfig::default() + ), + ); +} diff --git a/examples/extensions/second-string/src/udf.rs b/examples/extensions/second-string/src/udf.rs new file mode 100644 index 000000000..ee488d47d --- /dev/null +++ b/examples/extensions/second-string/src/udf.rs @@ -0,0 +1,286 @@ +//! Arrow batch execution and the DataFusion scalar interface. +use std::panic::{catch_unwind, AssertUnwindSafe}; +use std::sync::Arc; + +use arrow_schema::{DataType, Field, FieldRef}; +use datafusion_common::arrow::array::{ + Array, ArrayRef, Float64Array, LargeStringArray, StringArray, StringViewArray, +}; +use datafusion_common::{exec_err, plan_err, Result, ScalarValue}; +use datafusion_expr::{ + ColumnarValue, ReturnFieldArgs, ScalarFunctionArgs, ScalarUDF, ScalarUDFImpl, Signature, + Volatility, +}; + +use crate::function::Function; +use crate::options::{self, Options}; +use crate::phonetic; + +#[derive(Debug, PartialEq, Eq, Hash)] +pub struct SimilarityUdf { + function: Function, + configured: bool, + name: &'static str, + signature: Signature, +} + +impl SimilarityUdf { + pub fn new(function: Function, configured: bool) -> Self { + let (name, signature) = if configured { + ( + function.configured_name().unwrap_or(function.name()), + // Preserve numeric literal types: inserted casts obscure literals + // before return_field_from_args can validate the configuration. + Signature::user_defined(Volatility::Immutable), + ) + } else { + ( + function.name(), + Signature::string( + if function.phonetic() { 1 } else { 2 }, + Volatility::Immutable, + ), + ) + }; + Self { + function, + configured, + name, + signature, + } + } + + fn arity(&self) -> usize { + if !self.configured { + if self.function.phonetic() { + 1 + } else { + 2 + } + } else { + match self.function { + Function::MongeElkan | Function::JaroWinkler => 4, + Function::NeedlemanWunsch | Function::SmithWaterman | Function::AffineGap => 5, + _ => 3, + } + } + } + + fn invoke(&self, args: ScalarFunctionArgs) -> Result { + if args.args.len() != self.arity() { + return exec_err!("{} expects {} arguments", self.name, self.arity()); + } + let scalar_only = args + .args + .iter() + .all(|arg| matches!(arg, ColumnarValue::Scalar(_))); + let rows = if scalar_only { 1 } else { args.number_rows }; + // No first-row option extraction is required for an empty batch. + if rows == 0 { + let output: ArrayRef = if self.function.phonetic() { + Arc::new(StringArray::from(Vec::>::new())) + } else { + Arc::new(Float64Array::from(Vec::>::new())) + }; + return Ok(ColumnarValue::Array(output)); + } + let config = if self.configured { + let literals: Result> = args.args[2..] + .iter() + .map(|value| match value { + ColumnarValue::Scalar(value) => Ok(value.clone()), + // Arrow FFI transports scalar values as broadcast arrays. + ColumnarValue::Array(array) if !array.is_empty() => { + ScalarValue::try_from_array(array, 0) + } + _ => exec_err!("{} has an empty option array", self.name), + }) + .collect(); + let literals = literals?; + options::parse(self.function, &literals.iter().collect::>())? + } else { + Options::Default + }; + let input_count = if self.function.phonetic() { 1 } else { 2 }; + let arrays: Result> = args + .args + .into_iter() + .take(input_count) + .map(|arg| arg.into_array(rows)) + .collect(); + let arrays = arrays?; + if arrays.iter().any(|array| array.len() != rows) { + return exec_err!("{} received inconsistent Arrow cardinality", self.name); + } + let left = TextArray::new(&arrays[0])?; + let result: ArrayRef = if self.function.phonetic() { + Arc::new( + (0..rows) + .map(|row| { + left.value(row).map(|text| match self.function { + Function::Soundex => phonetic::soundex(text), + Function::RefinedSoundex => phonetic::refined_soundex(text), + Function::DoubleMetaphone => phonetic::double_metaphone(text), + _ => String::new(), + }) + }) + .collect::(), + ) + } else { + let right = TextArray::new(&arrays[1])?; + Arc::new( + (0..rows) + .map(|row| match (left.value(row), right.value(row)) { + (Some(left), Some(right)) => { + Some(options::score(self.function, left, right, &config)) + } + _ => None, + }) + .collect::(), + ) + }; + if scalar_only { + Ok(ColumnarValue::Scalar(ScalarValue::try_from_array( + &result, 0, + )?)) + } else { + Ok(ColumnarValue::Array(result)) + } + } +} + +impl ScalarUDFImpl for SimilarityUdf { + fn name(&self) -> &str { + self.name + } + fn signature(&self) -> &Signature { + &self.signature + } + fn return_type(&self, arg_types: &[DataType]) -> Result { + if arg_types.len() != self.arity() { + return plan_err!("{} expects {} arguments", self.name, self.arity()); + } + for data_type in arg_types + .iter() + .take(if self.function.phonetic() { 1 } else { 2 }) + { + if !matches!( + data_type, + DataType::Utf8 | DataType::LargeUtf8 | DataType::Utf8View | DataType::Null + ) { + return plan_err!("{} requires string inputs", self.name); + } + } + Ok(if self.function.phonetic() { + DataType::Utf8 + } else { + DataType::Float64 + }) + } + fn coerce_types(&self, arg_types: &[DataType]) -> Result> { + self.return_type(arg_types)?; + if self.configured { + for (index, data_type) in arg_types.iter().enumerate().skip(2) { + let valid = data_type == &DataType::Null + || match (self.function, index) { + (Function::MongeElkan, 2) => matches!( + data_type, + DataType::Utf8 | DataType::LargeUtf8 | DataType::Utf8View + ), + (Function::JaroWinkler, 2) => data_type.is_numeric(), + _ => matches!(data_type, DataType::Int32 | DataType::Int64), + }; + if !valid { + return plan_err!("{} has an invalid option type {data_type}", self.name); + } + } + } + Ok(arg_types.to_vec()) + } + fn return_field_from_args(&self, args: ReturnFieldArgs) -> Result { + let types: Vec<_> = args + .arg_fields + .iter() + .map(|field| field.data_type().clone()) + .collect(); + let data_type = self.return_type(&types)?; + if self.configured { + let values: Result> = args + .scalar_arguments + .iter() + .skip(2) + .map(|value| { + value.ok_or_else(|| { + datafusion_common::DataFusionError::Plan(format!( + "{} configuration must be literal", + self.name + )) + }) + }) + .collect(); + options::parse(self.function, &values?)?; + } + Ok(Arc::new(Field::new( + self.name, + data_type, + args.arg_fields.iter().any(|field| field.is_nullable()), + ))) + } + fn invoke_with_args(&self, args: ScalarFunctionArgs) -> Result { + catch_unwind(AssertUnwindSafe(|| self.invoke(args))) + .unwrap_or_else(|_| exec_err!("{} native kernel panicked", self.name)) + } +} + +enum TextArray<'a> { + Utf8(&'a StringArray), + Large(&'a LargeStringArray), + View(&'a StringViewArray), + Null, +} + +impl<'a> TextArray<'a> { + fn new(array: &'a ArrayRef) -> Result { + match array.data_type() { + DataType::Utf8 => array.as_any().downcast_ref::().map(Self::Utf8), + DataType::LargeUtf8 => array + .as_any() + .downcast_ref::() + .map(Self::Large), + DataType::Utf8View => array + .as_any() + .downcast_ref::() + .map(Self::View), + DataType::Null => Some(Self::Null), + _ => None, + } + .ok_or_else(|| { + datafusion_common::DataFusionError::Execution("expected an Arrow string array".into()) + }) + } + fn value(&self, row: usize) -> Option<&str> { + match self { + Self::Utf8(array) => (!array.is_null(row)).then(|| array.value(row)), + Self::Large(array) => (!array.is_null(row)).then(|| array.value(row)), + Self::View(array) => (!array.is_null(row)).then(|| array.value(row)), + Self::Null => None, + } + } +} + +pub fn functions() -> Vec> { + Function::ALL + .iter() + .flat_map(|&function| { + let mut definitions = vec![Arc::new(ScalarUDF::new_from_impl(SimilarityUdf::new( + function, false, + )))]; + if function.configured_name().is_some() { + definitions.push(Arc::new(ScalarUDF::new_from_impl(SimilarityUdf::new( + function, true, + )))); + } + definitions + }) + .collect() +} diff --git a/examples/extensions/second-string/tests/conftest.py b/examples/extensions/second-string/tests/conftest.py new file mode 100644 index 000000000..2f1b94abc --- /dev/null +++ b/examples/extensions/second-string/tests/conftest.py @@ -0,0 +1,88 @@ +"""Run qualification against an explicitly selected native Sail executable.""" + +from __future__ import annotations + +import os +import signal +import socket +import subprocess +import sys +import sysconfig +import time +from collections.abc import Iterator +from pathlib import Path + +import pytest +from pyspark.sql.connect.session import SparkSession + + +def pytest_addoption(parser: pytest.Parser) -> None: + parser.addoption("--sail-binary", help="Native release Sail executable") + parser.addoption("--execution-mode", default="local", choices=["local", "process-cluster"]) + parser.addoption("--evidence-dir", default="target/second-string-evidence") + + +@pytest.fixture(scope="session") +def spark(request: pytest.FixtureRequest) -> Iterator[SparkSession]: + binary_option = request.config.getoption("--sail-binary") + if not isinstance(binary_option, str): + pytest.fail("Select a native release binary with --sail-binary") + binary = Path(binary_option).resolve() + if not binary.is_file(): + pytest.fail(f"Missing Sail executable: {binary}") + evidence = Path(request.config.getoption("--evidence-dir")) + evidence.mkdir(parents=True, exist_ok=True) + mode = request.config.getoption("--execution-mode") + with socket.socket() as listener: + listener.bind(("127.0.0.1", 0)) + port = listener.getsockname()[1] + env = dict(os.environ) + env["PYTHONHOME"] = sys.base_prefix + env["PYTHONPATH"] = sysconfig.get_paths()["purelib"] + env["DYLD_LIBRARY_PATH"] = str(sysconfig.get_config_var("LIBDIR") or "") + env["SAIL_EXPERIMENTAL_EXTENSIONS"] = "1" + env["SAIL_MODE"] = "local-cluster" if mode == "process-cluster" else "local" + env["TOKIO_WORKER_THREADS"] = "2" + env["RAYON_NUM_THREADS"] = "2" + env["SAIL_CLUSTER__WORKER_INITIAL_COUNT"] = "2" + env["SAIL_CLUSTER__WORKER_MAX_COUNT"] = "2" + # Slots hold streaming tasks; they are separate from the two CPU threads. + env["SAIL_CLUSTER__WORKER_TASK_SLOTS"] = "32" + env["LD_LIBRARY_PATH"] = env["DYLD_LIBRARY_PATH"] + if mode == "process-cluster": + env["SAIL_EXPERIMENTAL_PROCESS_WORKERS"] = "1" + log_path = evidence / f"server-{mode}.log" + session: SparkSession | None = None + with log_path.open("wb") as log: + process = subprocess.Popen( + [str(binary), "spark", "server", "--ip", "127.0.0.1", "--port", str(port)], + env=env, + stdin=subprocess.DEVNULL, + stdout=log, + stderr=subprocess.STDOUT, + start_new_session=True, + ) + try: + session = SparkSession.builder.remote(f"sc://127.0.0.1:{port}").create() + deadline = time.monotonic() + 30 + while True: + if process.poll() is not None: + pytest.fail(f"Sail exited {process.returncode}; see {log_path}") + try: + assert session.sql("SELECT 1 AS ready").collect()[0].ready == 1 + break + except Exception: + if time.monotonic() >= deadline: + raise + time.sleep(0.2) + yield session + finally: + if session is not None: + session.stop() + if process.poll() is None: + os.killpg(process.pid, signal.SIGTERM) + try: + process.wait(timeout=10) + except subprocess.TimeoutExpired: + os.killpg(process.pid, signal.SIGKILL) + process.wait(timeout=10) diff --git a/examples/extensions/second-string/tests/fixtures/oracle.json b/examples/extensions/second-string/tests/fixtures/oracle.json new file mode 100644 index 000000000..f45b12fca --- /dev/null +++ b/examples/extensions/second-string/tests/fixtures/oracle.json @@ -0,0 +1 @@ +{"reference":{"repository":"https://github.com/SemyonSinchenko/spark-second-string","commit":"a35db39fa8e9b65db2d201a45b86d11a6ca34b98","fingerprint_sha256":"cb122956b629434f48f17d1221a3da784e096d86d3f7bbed766487606aa302ba","generated_utc":"2026-10-06T18:52:09.491480+00:00","seed":6209709,"pair_count":300,"case_count":7296,"numeric_absolute_tolerance":1e-12,"evaluation":"compiled Scala companion methods, not Spark jobs","null_scope":"non-null oracle inputs; null propagation is tested at the Sail caller","metadata":{"commit":"a35db39fa8e9b65db2d201a45b86d11a6ca34b98","source":[{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/StringSimilarityFunctions.scala","bytes":35334,"sha256":"433a1288da8e1ed69cf5afc6a49ec2b338bef8324eabca27778b7d2f5c094da5"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/StringSimExpression.scala","bytes":4307,"sha256":"8cd4e36fb2dab005bc166a08a7f7aadafbc45fe25a72684e2ceea63997f28a82"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/AffineGap.scala","bytes":6311,"sha256":"c73aaa4cd6cbae80caca86fe02d40208c0c5a85a6599cc63954b637318471d4a"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/Jaro.scala","bytes":3872,"sha256":"983df2b0a72f70cb448105731996aafa48236b7b65210d061680c76d0eba1eae"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/JaroWinkler.scala","bytes":3059,"sha256":"7a6170794f95a6dbaf458093c1ab56f0637ca9030190a4e02d60fb8c77fc3288"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/LcsSimilarity.scala","bytes":2691,"sha256":"494862faa7b5962dac3a9c57a9925bb894af27ddac9f2d366a81fc1dcf6fc5af"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/Levenshtein.scala","bytes":2748,"sha256":"b62fd84b735d27fe5c152938feb89a6e37da97784159181fa152def57d8ab0c9"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/MatrixMetricKernelHelper.scala","bytes":2208,"sha256":"752b856a0ea6fd53b784cb42c473a986140ac829dea63efcac26373ab14937c0"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/NeedlemanWunsch.scala","bytes":4472,"sha256":"3892f473ab90f974c5e9663a333e66f581791ebdbfb9534288109e58de30c7b2"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/matrix/SmithWaterman.scala","bytes":4498,"sha256":"c08b9798ada1067d07b06531acf689af24b64b38f8a76ef4b50ca549e8445da4"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/phonetic/DoubleMetaphone.scala","bytes":1863,"sha256":"f46a5bd2afe44f4df1c8415418726688c8b207b91635541cb5a1d5139a6d20d3"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/phonetic/PhoneticExpression.scala","bytes":1209,"sha256":"f0935c62869d21f9e42076a5f661f9371f99863035559aa05fb25a54d04976c1"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/phonetic/RefinedSoundex.scala","bytes":2033,"sha256":"97381a665ba5e21b889e49db4b01f5803176e73354e708a9e93d44cbf783f262"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/phonetic/Soundex.scala","bytes":2662,"sha256":"87c7050e1d380124c4b107c6e68263046e9379938d2973490d9f319695e88a9f"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/BraunBlanquet.scala","bytes":2593,"sha256":"9fe22164bca512515e2a5c934fb0f2f5d1c7a960ad2238add7a28efa684174c6"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/Cosine.scala","bytes":2559,"sha256":"0765d58dd1d48d6f4d1e4c0e75d8f1e7ca6d99d6642b69881e09a8e02f0a8a42"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/Jaccard.scala","bytes":3434,"sha256":"9c3199438911c83f9b1068aa277a038b2cda02f6e3f06799906c4950331fd6a7"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/MongeElkan.scala","bytes":5180,"sha256":"a98f284fd229ea348e7a79cbe39b65f624bc28d5b216c29a846a10614f53bcd6"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/OverlapCoefficient.scala","bytes":2623,"sha256":"65c5339bcba75c69e2c8b1e765e0733f79be448dbaada45359f7f029cb4a5bb0"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/SorensenDice.scala","bytes":2589,"sha256":"8bec6802a1885604e2545c0d7b30007da9bab962118ce143ea475e864828e9a2"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/expressions/token/TokenMetricKernelHelper.scala","bytes":2491,"sha256":"37fd0475fdbf7e0e54b069586bbb95aa7d805d15d2dafc46dbb963f6b49446ee"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/sql/SparkSecondStringExtension.scala","bytes":577,"sha256":"82a8354744c7b79ca39728d09ed78871ac557cf679d9fabe99d46e60fa185666"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/src/main/scala/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions.scala","bytes":9463,"sha256":"20a0ea3473673761fdd314b2833880ff40ab5e7f28f854bdd437043b19c2927b"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/build.sbt","bytes":8326,"sha256":"5d79fa909305c1337104055b95e3599e489a29c6d248893e4dea8051157ed6bf"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/project/build.properties","bytes":19,"sha256":"f472cb620491a4796660a37fda5e08193d15fdc28ab3502fdd7f99fe85a8ccb3"}],"loaded_class_origins":[{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.21.0/commons-codec-1.21.0.jar","bytes":402494,"sha256":"4da851cb6abfb98bfe9eb77c5e5fc47f5414fa28b94e21b7fd9a646705dc167f"},{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-unsafe_2.13/4.0.2/spark-unsafe_2.13-4.0.2.jar","bytes":139756,"sha256":"f5c811f117489814bcd72fcd0450b49a9a5eb4541ed43d729ba49f1f7cf8aa1a"},{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.18/scala-library-2.13.18.jar","bytes":5940741,"sha256":"4e85d96ff7bc7dc627985523c3541b9917aaa08e956391380c42db21a2c4e5a0"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/StringSimilarityFunctions$.class","bytes":12443,"sha256":"c6a0187b1a3535c204f91bc69b4d372b4d615a159987aa2897c2f94e3cb2978e"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/StringSimilarityFunctions.class","bytes":10628,"sha256":"ca9856d58a4318c305c481fd2537f647ed0c9b57e38c498c1a8acf0de840eb7a"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/MatrixMetricExpression.class","bytes":2084,"sha256":"591d0c4dd5a75a628362526f1b47b1ece08cf413bb315f226986a8de275459ed"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/NullIntolerantCompat.class","bytes":1197,"sha256":"7eeb46cf73ffe04b69081b3cc2288f13cb1aab66105e8258ae2867b29293522a"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/StringSimExpression.class","bytes":8671,"sha256":"74f01edc04b700b535523611973c5d4f7c2c9c873a7bb7ee7d924dd7948aec75"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/TokenMetricExpression.class","bytes":2077,"sha256":"1761726147ca7428b947d68a1e9b8c6d5305e940199db33ea327974ed36e2fe0"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/AffineGap$.class","bytes":7980,"sha256":"651986444f1ea3660933ef29cbdf21dc89ea2b486c4dc1c49e40df61b0ef6ae4"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/AffineGap.class","bytes":11027,"sha256":"3e5cede622e71d0a2e7bfbad36a78042db7c1efc0f2c5684eb3ceed42b69c354"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/Jaro$.class","bytes":5329,"sha256":"54cef777e9d689874687d68dfd3efb61e3bff0048bca42e756394db6db2de979"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/Jaro.class","bytes":7830,"sha256":"b96cf55cf3e7f66d818332ac0e42073ae7ed2c420f6905faaee2b966b39a1869"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/JaroWinkler$.class","bytes":4605,"sha256":"fb265f1bc86395ff01cc1e8f51e18b07adf82b20f5e1e3e2ceecc6d46f2a9c07"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/JaroWinkler.class","bytes":10057,"sha256":"4de3455a2340d0e0eedc943b7de6a66a9db12ccdc4c9fea628eeaed089004120"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/LcsSimilarity$.class","bytes":4567,"sha256":"cba125f826cfdc106b9fdf8e44c7c14ab4711324bc2e128703182948e59dd1c2"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/LcsSimilarity.class","bytes":7753,"sha256":"372eea0116b827ae865b09827be1224eb36582904e7174f75b07c6d34fbfb9f9"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/Levenshtein$.class","bytes":4613,"sha256":"bd8827854f987c3a59dc33281eda37e8a39ee131a0b69b6b335fdaa864b71d8e"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/Levenshtein.class","bytes":7722,"sha256":"5678c40a5254f31d9f74c6b5f2a0955e6b30cf50dcae4ae4c109a797bdec5396"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/MatrixMetricKernelHelper$.class","bytes":1802,"sha256":"014f663ac67faeff1ae2cd532680ad4a6e4a25eb6d0dd0e282ed45b20a32fad1"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/MatrixMetricKernelHelper$ResolvedStrings.class","bytes":2590,"sha256":"8101f736f9c73eb7296ea81ff9a438b649c9a522213dddabcbd4c2d4c4f220bb"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/MatrixMetricKernelHelper.class","bytes":1759,"sha256":"516615f838d4c517306f4becf812f1ab8e97ce2a7d0407ffb0897b8ccea60df3"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/NeedlemanWunsch$.class","bytes":5750,"sha256":"ef3f56d9d505434c3f830077d696605d06b02aa887a54879a75610aad04b56fb"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/NeedlemanWunsch.class","bytes":10872,"sha256":"a87f9aebeaa303bdb86b384b6738690d5318919d65db5c753f4070ea8204bbbb"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/SmithWaterman$.class","bytes":5861,"sha256":"c136db86058c03755b59a836f05c73e349cdc1a42150ea38659ff1b5d4496351"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/matrix/SmithWaterman.class","bytes":10858,"sha256":"bf4d52a55a7879d7853e79dc0bd50735248c2f93f27f2d325330c8daa11ccd2c"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/DoubleMetaphone$$anon$1.class","bytes":1106,"sha256":"185ebd782a166b7efb5fedd9cba240f158d5ab07b7b26a1f608dc4d2c15d63fe"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/DoubleMetaphone$.class","bytes":3820,"sha256":"2898ffceef253a6b1236f8e001502dae86730d5a8ed36683a21a9e9145d60cf2"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/DoubleMetaphone.class","bytes":6868,"sha256":"51ca9897f1b46ada473dd62335d87316d6981070e940db12694a5f272bf22228"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/PhoneticExpression.class","bytes":6191,"sha256":"382f4b7fe9b4b2b3d3d7574963cc952b47c1f75ba13a7627b59fd9ab3019bd1f"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/RefinedSoundex$.class","bytes":3713,"sha256":"5a7e9d9707c0e409a102ac39d1e41a1eae062d3e11dc9d1495955c9a64736568"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/RefinedSoundex.class","bytes":6762,"sha256":"0ebde79db1f9f8e10f2d416183da864cb27b0aaf11d2a36223b50612d0dce335"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/Soundex$.class","bytes":5519,"sha256":"767fdb6646c7ad34a54f41ee15f325d6259dde0a52fbb63e442829d77887402c"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/phonetic/Soundex.class","bytes":6809,"sha256":"77d116ce6c8fdf40bd3422df8b1e7252011d2894d438d3e761c2fd232b19e947"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/BraunBlanquet$.class","bytes":3757,"sha256":"dbb5b32b7c54cd2f07b4c6f0223c9244bf673245aed72e6264fdae7b1b854441"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/BraunBlanquet.class","bytes":9151,"sha256":"c90055464e1733c3a3493065675723071050160c9646d29db3bae10e2a65510e"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/Cosine$.class","bytes":3709,"sha256":"bb155236579a92e79236a90d34d3052ef522b1d66c3aff26bde4fdd71d7ef827"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/Cosine.class","bytes":9026,"sha256":"70fc32c8266ff4df02007192031ac0c35bc7d8db8835825f78a8c8e2cc964eb7"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/Jaccard$.class","bytes":3665,"sha256":"ec254d8baea0139a01e4367c51a5b2eea24d6c9e4ddd216cacb2ad1e4cb72c12"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/Jaccard.class","bytes":9047,"sha256":"60907eda7eeee75ed717cb1530edb5109c1aaefb8ff1694449739444ad37d8ad"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/MongeElkan$.class","bytes":7707,"sha256":"2a870e5d3708ce4bb891c391c08e640a87745044988a4bd536bcafdfb139ad32"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/MongeElkan.class","bytes":10600,"sha256":"63b88b23cca01f4724725d419d2344927a727ab6e09c5e4cacf9f5a752923ebc"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/OverlapCoefficient$.class","bytes":3797,"sha256":"3c801952484134d3c4e9473d2de232bb189bf86baa7a6d2949bb3454c7278a63"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/OverlapCoefficient.class","bytes":9235,"sha256":"7f65314a479308cc90184aabfc68f504b07e4f64efc7dea9c6de4bf994af1d58"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/SorensenDice$.class","bytes":3717,"sha256":"f7e32af24b16b66ee92bcc76b9e9d0d2152d2796b594145c8382ebdccf2c935a"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/SorensenDice.class","bytes":9136,"sha256":"23765d9d56bbd0e1bc6c5ede936b81c6bee01f464f5824d6f45a40ede634ab00"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/TokenMetricKernelHelper$.class","bytes":3380,"sha256":"7fc36205aa962d1d3e4140c1b961451f352a2791f60e4ce9effe8979a65694c9"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/expressions/token/TokenMetricKernelHelper.class","bytes":973,"sha256":"b5e125db12899c05b8dee19ca08114be8e85a607944107b7bee8d26d693d6f4d"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/internal/SparkColumnInterop$.class","bytes":1173,"sha256":"59808306d8c5a3e88dcb5f724864661ba642696990fd1b9b479042f6eae96c79"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/internal/SparkColumnInterop.class","bytes":1377,"sha256":"e8bf7e4531d2f29c5c267ac4f641788f1574b0c12da62e711147341ec79837e7"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/SparkSecondStringExtension.class","bytes":8614,"sha256":"728f5a5376805199578369fac86c368ee412f574490d189fbba760e3caf4a7c6"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions$.class","bytes":16835,"sha256":"16d2c090b5b1bdadc816bba3cce71bb1d0386f5e08bcdcc9bb13643e483aeb50"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions$RegisteredFunction$.class","bytes":3563,"sha256":"335297cf65928502c9ee30b8febca715411ba1f5dcafc5c009f50207b78677aa"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions$RegisteredFunction.class","bytes":4770,"sha256":"ba2ac12a108c95529dfb17cfe534730c3bf3b6971a432a24e8aa49e0a85324b1"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions$StringSimilaritySparkSessionOps$.class","bytes":4408,"sha256":"f1c0caffaa579ac0e864e2f7313466de20577cd7f1af091a8ba51e483a7ea9bc"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions$StringSimilaritySparkSessionOps.class","bytes":1917,"sha256":"8362c4a0aa6322a8cb8cffd7f2dbb28757ae9a8ef7dd81e3e9dac80db014ff48"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/io/github/semyonsinchenko/sparkss/sql/StringSimilaritySparkSessionExtensions.class","bytes":4465,"sha256":"0871117cc3d9792876f010694bafeaee03d7a8c4e6d4d642861ed28b8c553a84"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/org/apache/spark/sql/classic/SparkColumnCompatBridge$.class","bytes":1672,"sha256":"c59ce7153466b74924fe595ea2899cf8380f54415d958b950a204d0f10e46dff"},{"path":"/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/org/apache/spark/sql/classic/SparkColumnCompatBridge.class","bytes":1303,"sha256":"d219cc1d2ce82518ec38e16e97d05614b67f4ecc4c0db226631d1e6876158f2c"}],"java":{"commons-codec":"file:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.21.0/commons-codec-1.21.0.jar","java.vendor":"Azul Systems, Inc.","java.version":"17.0.20.1","module:ss_affine_gap":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_braun_blanquet":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_cosine":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_double_metaphone":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_jaccard":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_jaro":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_jaro_winkler":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_lcs_similarity":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_levenshtein":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_monge_elkan":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_needleman_wunsch":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_overlap_coefficient":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_refined_soundex":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_smith_waterman":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_sorensen_dice":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","module:ss_soundex":"file:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes/","scala":"file:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.18/scala-library-2.13.18.jar","utf8":"file:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-unsafe_2.13/4.0.2/spark-unsafe_2.13-4.0.2.jar"}},"helpers":[{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/sail/examples/extensions/second-string/scripts/Oracle.java","bytes":7568,"sha256":"b37976b578a827a9451024c901e3229c7cd4d5b1d4af8e4d36aa87ec4fd71e6c"},{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/sail/examples/extensions/second-string/scripts/generate_oracle.py","bytes":16666,"sha256":"36908a474bbe7e406b3e32b3bd479358ccad59fc12da08b3ff3d0da2976c4e8a"},{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/reference-classpath.txt","bytes":30508,"sha256":"537bc640320026c46feede9219e39988c6cbce9368cb15523d0dc49183f002bd"}],"commands":[{"argv":["/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/jdk/zulu17.68.203-ca-jdk17.0.20.1-macosx_x64/Contents/Home/bin/javac","-encoding","UTF-8","-d","/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/oracle01/classes","/Volumes/Apo/graph-tests/workspaces/second-string-20261006/sail/examples/extensions/second-string/scripts/Oracle.java"],"returncode":0,"stdout":{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/oracle01/javac.stdout","bytes":0,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"stderr":{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/oracle01/javac.stderr","bytes":0,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"argv":["/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/jdk/zulu17.68.203-ca-jdk17.0.20.1-macosx_x64/Contents/Home/bin/java","-Xmx512m","--add-opens=java.base/sun.nio.ch=ALL-UNNAMED","--add-opens=java.base/java.lang=ALL-UNNAMED","--add-opens=java.base/java.nio=ALL-UNNAMED","--add-opens=java.base/java.lang.invoke=ALL-UNNAMED","--add-opens=java.base/java.util=ALL-UNNAMED","--add-opens=java.base/sun.security.action=ALL-UNNAMED","--add-opens=java.base/java.io=ALL-UNNAMED","-cp","/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/oracle01/classes:/Volumes/Apo/graph-tests/workspaces/spark-second-string-reference/target/scala-2.13/classes:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.18/scala-library-2.13.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-sql_2.13/4.0.2/spark-sql_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.21.0/commons-codec-1.21.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/rocksdb/rocksdbjni/9.8.4/rocksdbjni-9.8.4.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/univocity/univocity-parsers/2.9.1/univocity-parsers-2.9.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-sketch_2.13/4.0.2/spark-sketch_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-core_2.13/4.0.2/spark-core_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/avro/avro/1.12.0/avro-1.12.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/avro/avro-mapred/1.12.0/avro-mapred-1.12.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/avro/avro-ipc/1.12.0/avro-ipc-1.12.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/tukaani/xz/1.10/xz-1.10.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/twitter/chill_2.13/0.10.0/chill_2.13-0.10.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/twitter/chill-java/0.10.0/chill-java-0.10.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/esotericsoftware/kryo-shaded/4.0.3/kryo-shaded-4.0.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/hadoop/hadoop-client-api/3.4.1/hadoop-client-api-3.4.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/hadoop/hadoop-client-runtime/3.4.1/hadoop-client-runtime-3.4.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-launcher_2.13/4.0.2/spark-launcher_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-kvstore_2.13/4.0.2/spark-kvstore_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-all/1.8/leveldbjni-all-1.8.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-network-common_2.13/4.0.2/spark-network-common_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.70.Final/netty-tcnative-boringssl-static-2.0.70.Final-linux-x86_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-classes/2.0.70.Final/netty-tcnative-classes-2.0.70.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.70.Final/netty-tcnative-boringssl-static-2.0.70.Final-windows-x86_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.70.Final/netty-tcnative-boringssl-static-2.0.70.Final-linux-aarch_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.70.Final/netty-tcnative-boringssl-static-2.0.70.Final-osx-aarch_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.70.Final/netty-tcnative-boringssl-static-2.0.70.Final-osx-x86_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/crypto/tink/tink/1.16.0/tink-1.16.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-network-shuffle_2.13/4.0.2/spark-network-shuffle_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-unsafe_2.13/4.0.2/spark-unsafe_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-common-utils_2.13/4.0.2/spark-common-utils_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/ivy/ivy/2.5.3/ivy-2.5.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/oro/oro/2.0.8/oro-2.0.8.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/slf4j/jul-to-slf4j/2.0.16/jul-to-slf4j-2.0.16.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/slf4j/jcl-over-slf4j/2.0.16/jcl-over-slf4j-2.0.16.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j2-impl/2.24.3/log4j-slf4j2-impl-2.24.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.24.3/log4j-api-2.24.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-1.2-api/2.24.3/log4j-1.2-api-2.24.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-layout-template-json/2.24.3/log4j-layout-template-json-2.24.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/curator/curator-recipes/5.7.1/curator-recipes-5.7.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/curator/curator-framework/5.7.1/curator-framework-5.7.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/curator/curator-client/5.7.1/curator-client-5.7.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/3.9.3/zookeeper-3.9.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/zookeeper/zookeeper-jute/3.9.3/zookeeper-jute-3.9.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/yetus/audience-annotations/0.12.0/audience-annotations-0.12.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/jsonwebtoken/jjwt-api/0.12.6/jjwt-api-0.12.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/jsonwebtoken/jjwt-impl/0.12.6/jjwt-impl-0.12.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/jsonwebtoken/jjwt-jackson/0.12.6/jjwt-jackson-0.12.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/jakarta/servlet/jakarta.servlet-api/5.0.0/jakarta.servlet-api-5.0.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/commons/commons-compress/1.27.1/commons-compress-1.27.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.17.0/commons-lang3-3.17.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/commons/commons-text/1.13.0/commons-text-1.13.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/commons-io/commons-io/2.18.0/commons-io-2.18.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/ning/compress-lzf/1.1.2/compress-lzf-1.1.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/xerial/snappy/snappy-java/1.1.10.7/snappy-java-1.1.10.7.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/github/luben/zstd-jni/1.5.6-9/zstd-jni-1.5.6-9.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/roaringbitmap/RoaringBitmap/1.3.0/RoaringBitmap-1.3.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.13/2.3.0/scala-xml_2.13-2.3.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.18/scala-reflect-2.13.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/json4s/json4s-jackson_2.13/4.0.7/json4s-jackson_2.13-4.0.7.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/json4s/json4s-core_2.13/4.0.7/json4s-core_2.13-4.0.7.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/json4s/json4s-ast_2.13/4.0.7/json4s-ast_2.13-4.0.7.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/json4s/json4s-scalap_2.13/4.0.7/json4s-scalap_2.13-4.0.7.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/json4s/json4s-jackson-core_2.13/4.0.7/json4s-jackson-core_2.13-4.0.7.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-client/3.0.18/jersey-client-3.0.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/jakarta/ws/rs/jakarta.ws.rs-api/3.0.0/jakarta.ws.rs-api-3.0.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-common/3.0.18/jersey-common-3.0.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator/1.0.3/osgi-resource-locator-1.0.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-server/3.0.18/jersey-server-3.0.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet/3.0.18/jersey-container-servlet-3.0.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet-core/3.0.18/jersey-container-servlet-core-3.0.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/jersey/inject/jersey-hk2/3.0.18/jersey-hk2-3.0.18.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator/3.0.6/hk2-locator-3.0.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged/3.0.6/aopalliance-repackaged-3.0.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/hk2/hk2-api/3.0.6/hk2-api-3.0.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/glassfish/hk2/hk2-utils/3.0.6/hk2-utils-3.0.6.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/javassist/javassist/3.30.2-GA/javassist-3.30.2-GA.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-all/4.1.118.Final/netty-all-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.118.Final/netty-buffer-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.118.Final/netty-codec-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-codec-dns/4.1.118.Final/netty-codec-dns-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.118.Final/netty-codec-http-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.118.Final/netty-codec-http2-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.118.Final/netty-codec-socks-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.118.Final/netty-common-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.118.Final/netty-handler-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.118.Final/netty-transport-native-unix-common-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.118.Final/netty-handler-proxy-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.118.Final/netty-resolver-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-resolver-dns/4.1.118.Final/netty-resolver-dns-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.118.Final/netty-transport-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.118.Final/netty-transport-classes-epoll-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.118.Final/netty-transport-classes-kqueue-4.1.118.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.118.Final/netty-transport-native-epoll-4.1.118.Final-linux-riscv64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.118.Final/netty-transport-native-epoll-4.1.118.Final-linux-x86_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.118.Final/netty-transport-native-epoll-4.1.118.Final-linux-aarch_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.118.Final/netty-transport-native-kqueue-4.1.118.Final-osx-aarch_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.118.Final/netty-transport-native-kqueue-4.1.118.Final-osx-x86_64.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/clearspring/analytics/stream/2.9.8/stream-2.9.8.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/dropwizard/metrics/metrics-core/4.2.30/metrics-core-4.2.30.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/dropwizard/metrics/metrics-jvm/4.2.30/metrics-jvm-4.2.30.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/dropwizard/metrics/metrics-json/4.2.30/metrics-json-4.2.30.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/dropwizard/metrics/metrics-graphite/4.2.30/metrics-graphite-4.2.30.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/dropwizard/metrics/metrics-jmx/4.2.30/metrics-jmx-4.2.30.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-scala_2.13/2.18.2/jackson-module-scala_2.13-2.18.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/thoughtworks/paranamer/paranamer/2.8/paranamer-2.8.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/net/razorvine/pickle/1.5/pickle-1.5.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/net/sf/py4j/py4j/0.10.9.9/py4j-0.10.9.9.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/commons/commons-crypto/1.1.0/commons-crypto-1.1.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-catalyst_2.13/4.0.2/spark-catalyst_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-sql-api_2.13/4.0.2/spark-sql-api_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-variant_2.13/4.0.2/spark-variant_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/codehaus/janino/janino/3.1.9/janino-3.1.9.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/codehaus/janino/commons-compiler/3.1.9/commons-compiler-3.1.9.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/datasketches/datasketches-java/6.1.1/datasketches-java-6.1.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/datasketches/datasketches-memory/3.0.2/datasketches-memory-3.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.13/2.4.0/scala-parser-combinators_2.13-2.4.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/antlr/antlr4-runtime/4.13.1/antlr4-runtime-4.13.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/arrow/arrow-vector/18.1.0/arrow-vector-18.1.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/arrow/arrow-format/18.1.0/arrow-format-18.1.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/arrow/arrow-memory-core/18.1.0/arrow-memory-core-18.1.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.18.2/jackson-datatype-jsr310-2.18.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/flatbuffers/flatbuffers-java/24.3.25/flatbuffers-java-24.3.25.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/arrow/arrow-memory-netty/18.1.0/arrow-memory-netty-18.1.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/arrow/arrow-memory-netty-buffer-patch/18.1.0/arrow-memory-netty-buffer-patch-18.1.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/spark/spark-tags_2.13/4.0.2/spark-tags_2.13-4.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_2.13/1.2.0/scala-parallel-collections_2.13-1.2.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/orc/orc-format/1.1.1/orc-format-1.1.1-shaded-protobuf.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/orc/orc-core/2.1.4/orc-core-2.1.4-shaded-protobuf.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/orc/orc-shims/2.1.4/orc-shims-2.1.4.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/airlift/aircompressor/2.0.2/aircompressor-2.0.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/jetbrains/annotations/17.0.0/annotations-17.0.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/threeten/threeten-extra/1.8.0/threeten-extra-1.8.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/orc/orc-mapreduce/2.1.4/orc-mapreduce-2.1.4-shaded-protobuf.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/hive/hive-storage-api/2.8.1/hive-storage-api-2.8.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/parquet/parquet-column/1.15.2/parquet-column-1.15.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/parquet/parquet-common/1.15.2/parquet-common-1.15.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/parquet/parquet-encoding/1.15.2/parquet-encoding-1.15.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/parquet/parquet-format-structures/1.15.2/parquet-format-structures-1.15.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/parquet/parquet-hadoop/1.15.2/parquet-hadoop-1.15.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/parquet/parquet-jackson/1.15.2/parquet-jackson-1.15.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.18.2/jackson-databind-2.18.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/ws/xmlschema/xmlschema-core/2.3.1/xmlschema-core-2.3.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/apache/xbean/xbean-asm9-shaded/4.26/xbean-asm9-shaded-4.26.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/4.29.3/protobuf-java-4.29.3.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/ibm/icu/icu4j/76.1/icu4j-76.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/guava/guava/32.0.0-jre/guava-32.0.0-jre.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.70.Final/netty-tcnative-boringssl-static-2.0.70.Final.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar:/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/coursier/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar","Oracle"],"returncode":0,"stdout":{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/oracle01/oracle.stdout","bytes":161297,"sha256":"3749e351360554cd06f0faa2087dcb73a898e0dc363bf470d5681b959de6c122"},"stderr":{"path":"/Volumes/Apo/graph-tests/workspaces/second-string-20261006/validation/oracle01/oracle.stderr","bytes":0,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}}]},"upper_ascii":[{"unit":65,"uppercase":"A"},{"unit":66,"uppercase":"B"},{"unit":67,"uppercase":"C"},{"unit":68,"uppercase":"D"},{"unit":69,"uppercase":"E"},{"unit":70,"uppercase":"F"},{"unit":71,"uppercase":"G"},{"unit":72,"uppercase":"H"},{"unit":73,"uppercase":"I"},{"unit":74,"uppercase":"J"},{"unit":75,"uppercase":"K"},{"unit":76,"uppercase":"L"},{"unit":77,"uppercase":"M"},{"unit":78,"uppercase":"N"},{"unit":79,"uppercase":"O"},{"unit":80,"uppercase":"P"},{"unit":81,"uppercase":"Q"},{"unit":82,"uppercase":"R"},{"unit":83,"uppercase":"S"},{"unit":84,"uppercase":"T"},{"unit":85,"uppercase":"U"},{"unit":86,"uppercase":"V"},{"unit":87,"uppercase":"W"},{"unit":88,"uppercase":"X"},{"unit":89,"uppercase":"Y"},{"unit":90,"uppercase":"Z"},{"unit":97,"uppercase":"A"},{"unit":98,"uppercase":"B"},{"unit":99,"uppercase":"C"},{"unit":100,"uppercase":"D"},{"unit":101,"uppercase":"E"},{"unit":102,"uppercase":"F"},{"unit":103,"uppercase":"G"},{"unit":104,"uppercase":"H"},{"unit":105,"uppercase":"I"},{"unit":106,"uppercase":"J"},{"unit":107,"uppercase":"K"},{"unit":108,"uppercase":"L"},{"unit":109,"uppercase":"M"},{"unit":110,"uppercase":"N"},{"unit":111,"uppercase":"O"},{"unit":112,"uppercase":"P"},{"unit":113,"uppercase":"Q"},{"unit":114,"uppercase":"R"},{"unit":115,"uppercase":"S"},{"unit":116,"uppercase":"T"},{"unit":117,"uppercase":"U"},{"unit":118,"uppercase":"V"},{"unit":119,"uppercase":"W"},{"unit":120,"uppercase":"X"},{"unit":121,"uppercase":"Y"},{"unit":122,"uppercase":"Z"},{"unit":305,"uppercase":"I"},{"unit":383,"uppercase":"S"}],"pairs":[{"left":"","right":""},{"left":"","right":"hello"},{"left":"hello","right":""},{"left":"","right":" \t"},{"left":" \t","right":"alpha"},{"left":" \t\n","right":"\r "},{"left":"a b c","right":"a b d"},{"left":"a b","right":"a b c"},{"left":"a a a b","right":"a b"},{"left":"a a b","right":"a c c"},{"left":"hello world","right":"hello world"},{"left":"hello\tworld","right":"hello\nworld"},{"left":"alpha,beta","right":"alpha beta"},{"left":"Alpha beta","right":"alpha Beta"},{"left":"abcd","right":"abce"},{"left":"abc","right":"xyz"},{"left":"ab","right":"abc"},{"left":"a b","right":"a c"},{"left":"aaaa","right":"aa"},{"left":"a","right":"b"},{"left":"stephen smyth","right":"steven smith"},{"left":"alpha beta","right":"alpha gamma"},{"left":"alpha alpha beta","right":"alpha gamma"},{"left":"beta alpha","right":"alpha beta"},{"left":"martha","right":"marhta"},{"left":"DWAYNE","right":"DUANE"},{"left":"DIXON","right":"DICKSONX"},{"left":"kitten","right":"sitting"},{"left":"spark","right":"spork"},{"left":"abc","right":"ac"},{"left":"café","right":"cafe"},{"left":"café","right":"café"},{"left":"résumé","right":"resume"},{"left":"Müller","right":"Mueller"},{"left":"東京","right":"東京"},{"left":"東京","right":"大阪"},{"left":"東京 都","right":"東京"},{"left":"😀","right":"😀"},{"left":"😀","right":"😁"},{"left":"hello 世界","right":"hello world"},{"left":"John Смит","right":"John Smith"},{"left":"alpha​beta","right":"alpha beta"},{"left":"alpha⁠beta","right":"alpha beta"},{"left":"北京大学","right":"北京大学院"},{"left":"😀a","right":"😁a"},{"left":"😀😁","right":"😁😀"},{"left":"a😀a","right":"a😁a"},{"left":"𐐀","right":"𐐨"},{"left":"İıſß","right":"IiSs"},{"left":"Robert","right":"Rupert"},{"left":"Rubin","right":"Robert"},{"left":"Ashcraft","right":"Ashcroft"},{"left":"Pfister","right":"Tymczak"},{"left":"Smith","right":"Schmidt"},{"left":"Schneider","right":"Snyder"},{"left":"Washington","right":"Jackson"},{"left":"O'Brien","right":"Obrien"},{"left":"A-İ-ı-ſ-Z","right":"AIISZ"},{"left":"1234","right":"!@#$"},{"left":"ÆØŁ","right":"AEOL"},{"left":"аβ中","right":"ABC"},{"left":"a\u0000b","right":"ab"},{"left":"a\r\nb","right":"a b"},{"left":"abcabc","right":"abc"},{"left":"a\tb","right":"a b"},{"left":"a\nb","right":"a b"},{"left":"a\u000bb","right":"a b"},{"left":"a\fb","right":"a b"},{"left":"a\rb","right":"a b"},{"left":"a\u001cb","right":"a b"},{"left":"a\u001db","right":"a b"},{"left":"a\u001eb","right":"a b"},{"left":"a\u001fb","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a
b","right":"a b"},{"left":"a
b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a…b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a᠎b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a​b","right":"a b"},{"left":"a b","right":"a b"},{"left":"a⁠b","right":"a b"},{"left":"ab","right":"a b"},{"left":"McDonald","right":"mCdONALD"},{"left":"Macdonald","right":"mACDONALD"},{"left":"Gough","right":"gOUGH"},{"left":"Laugh","right":"lAUGH"},{"left":"Knight","right":"kNIGHT"},{"left":"Wright","right":"wRIGHT"},{"left":"Xavier","right":"xAVIER"},{"left":"Jose","right":"jOSE"},{"left":"José","right":"jOSÉ"},{"left":"Jorge","right":"jORGE"},{"left":"San Jacinto","right":"sAN jACINTO"},{"left":"Thomas","right":"tHOMAS"},{"left":"Thompson","right":"tHOMPSON"},{"left":"Schwarz","right":"sCHWARZ"},{"left":"Wicz","right":"wICZ"},{"left":"Witz","right":"wITZ"},{"left":"Szczepan","right":"sZCZEPAN"},{"left":"Cheng","right":"cHENG"},{"left":"Campbell","right":"cAMPBELL"},{"left":"Sugar","right":"sUGAR"},{"left":"Allen","right":"aLLEN"},{"left":"A","right":"a"},{"left":"BB","right":"bb"},{"left":"Pf","right":"pF"},{"left":"Cz","right":"cZ"},{"left":"Accident","right":"aCCIDENT"},{"left":"Wheeler","right":"wHEELER"},{"left":"Schaeffer","right":"sCHAEFFER"},{"left":"Bacher","right":"bACHER"},{"left":"ıcac 00​","right":"東東.a d,2​​2́-éX"},{"left":"Z","right":"Z"},{"left":"Za b1Xé ſY. ZaXX😀","right":"Za b1Xé ſY. ZaXX😀\n"},{"left":"😁0, ac\n\n😀Z ","right":"😁0, ac\n\n😀Z 😁"},{"left":"\t\t東Z 1 ","right":"\t\t東Z 1 "},{"left":"é😁XZſ2 ","right":" d,😀d😀"},{"left":"  東東é0ſ́","right":"b1dZ\nı"},{"left":" ","right":"😀😀😁😀😁d中a中 "},{"left":"​Z, 😀​X​ ​Z中-\t","right":"\t-中Z​ ​X​😀 ,Z​"},{"left":"dd東","right":"X​ 東東 ́ſaZ béa"},{"left":"Z2","right":"Z2"},{"left":"d́.😀b X1d\tX1,.\nſ","right":"d́.😀b X1d\tX1,.\nſ0"},{"left":"ıcXd2Z中東1\td","right":"d\t1東中Z2dXcı"},{"left":"Y-12,.Yé-a1,Z ","right":"Y-12,.Yé-a1,Z 😀"},{"left":"\t1,a,a\n東​ ſ","right":"ſ ​東\na,a,1\t"},{"left":"","right":""},{"left":"  1X1Z​,-dd.","right":"  1X1Z​,-dd.中"},{"left":"","right":""},{"left":"́a😀.aY 2d😁","right":"́a😀.aY 2d😁"},{"left":"中中ı,b,1 c.​abſ","right":"中中ı,b,1 c.​abſ"},{"left":"0​ac2\n21 ́2Yc 2","right":"2 cY2́ 12\n2ca​0"},{"left":"😀Y22Xa-ccba😁\n2😁\n2","right":"😀Y22Xa-ccba😁\n2😁\n2😀"},{"left":"b\n02á","right":"b\n02á"},{"left":"0b2d​Z 2X0\nb😀d","right":" 😁Ź"},{"left":"\nZX 😁1,😁c\n","right":"\nc😁,1😁 XZ\n"},{"left":"b","right":"1c東"},{"left":"YcbZ Zb ́ſſ","right":"YcbZ Zb ́ſſ"},{"left":"😁😀ca2ı中​ı中é","right":"é中ı​中ı2ac😀😁"},{"left":"​adſ 0中ſı0東東 X東​","right":"​東X 東東0ıſ中0 ſda​"},{"left":",  \nſ 東- 😁1😁 1​2","right":"-ı X0b2\tZ1ſd"},{"left":"c.😀😁Yſ b東東 中","right":"c.😀😁Yſ b東東 中"},{"left":"dZı- Xıı21é😀́ 中2","right":"2中 ́😀é12ııX -ıZd"},{"left":"ıZſX20ſ😁éı東","right":"ıZſX20ſ😁éı東"},{"left":"ſc😀11ſ東東","right":"東東ſ11😀cſ"},{"left":".b\t́中0,́- 中aZ0Z","right":".b\t́中0,́- 中aZ0Z"},{"left":"","right":""},{"left":"ab​́Y-0acſ,c2Zſ😁é","right":"é😁ſZ2c,ſca0-Ý​ba"},{"left":"\taZa ́ca東0😁d\n Yb","right":"\taZa ́ca東0😁d\n Yb "},{"left":",aX\ná\na","right":"a\ńa\nXa,"},{"left":"é ſc​😁.\t​  2Z.ſZX","right":"é ſc​😁.\t​  2Z.ſZX"},{"left":"d.😁Z,é,Y東ſ ć.東","right":"d.😁Z,é,Y東ſ ć.東,"},{"left":"Xb😀中Z東 é中 ","right":"Xb😀中Z東 é中 "},{"left":"\n Zſ😀Y1,́  東..0́d","right":".é \t"},{"left":"\t😀\nſ.","right":"\t😀\nſ.b"},{"left":"é,cé😀a​ 10","right":"é,cé😀a​ 10"},{"left":"","right":"😁,\taZXZ😀\n"},{"left":"ZYY","right":"ZYY."},{"left":"c\nXı ​   中ı́​ı.中","right":"中.ı​́ı中   ​ ıX\nc"},{"left":"中 😀c","right":"中 😀c-"},{"left":"́́c0ı ,中\naa","right":"aa\n中, ı0ć́"},{"left":"Y 2éa.2\t.bX́東 é.","right":".é 東́Xb.\t2.aé2 Y"},{"left":"😀2 中,ſ東a\tſ😁cXZ","right":"😀2 中,ſ東a\tſ😁cXZ"},{"left":"","right":""},{"left":".\tXa a.c22😀dıY","right":"東ſ b 0​​2Z"},{"left":"1X0中Yaédſ0.1","right":"1X0中Yaédſ0.1"},{"left":"11東,é́ı,","right":"11東,é́ı,"},{"left":"éc中éd中😀 ÝX","right":"éc中éd中😀 ÝX"},{"left":"cd.a","right":"a.dc"},{"left":"-中,Z\n😀 a","right":"-中,Z\n😀 a "},{"left":"​ıZ2c東22😀-Z2X,cſd","right":"​ıZ2c東22😀-Z2X,cſd-"},{"left":" é1​,X,ſ ","right":" ſ,X,​1é "},{"left":"\t😀b2ı2ı\ta ,​b́ da","right":"\t😀b2ı2ı\ta ,​b́ daa"},{"left":"-😁中 aY中😀.éZ ​","right":"​ Zé.😀中Ya 中😁-"},{"left":"0-c😁c\n","right":"\nc😁c-0"},{"left":"\t中é́b1​2éſ","right":"\t中é́b1​2éſZ"},{"left":"\tc","right":"c\t"},{"left":".X\t,X\n-​\né​Y 😁中","right":"中😁 Y​é\n​-\nX,\tX."},{"left":"","right":""},{"left":"😀\n2- éı0\nY-\tı😀","right":"d😁́2-.​Yſ ı\n,,Y."},{"left":"dıZ","right":"Zıd"},{"left":"2éabc","right":"2éabc"},{"left":",-\tcX,c中 1,.\nZ","right":",-\tcX,c中 1,.\nZ "},{"left":" 😀2","right":"2😀 "},{"left":"d","right":"d"},{"left":"中Ý́bX́2cc中.2Z2😁,","right":",😁2Z2.中cc2́Xb́́Y中"},{"left":"\téı😀bd😁ſ́.​😁́\t Z","right":"\téı😀bd😁ſ́.​😁́\t Z"},{"left":"b2 ​","right":"b2 ​d"},{"left":",c 0-中Xı","right":""},{"left":"0\ta​XZ2\t2Y","right":"Y2\t2ZX​a\t0"},{"left":". ,2​\tſY​東-","right":". ,2​\tſY​東-"},{"left":"中1ſ caé","right":" 中ı,ſXX東"},{"left":" 😁b, ","right":" \t éX 😁.😀2ſſ,c1ı́"},{"left":"éY","right":"éY1"},{"left":"a😀X,bı́","right":"a😀X,bı́"},{"left":" b, X.éX,​","right":" b, X.éX,​"},{"left":"d 2 \t2中a","right":"​\ncdZZ"},{"left":"中c\tYd","right":"dY\tc中"},{"left":"Z -","right":"Z -\t"},{"left":"Xb😁́\t. c\nX2","right":"-ZXı0\néY"},{"left":"-X","right":"-X"},{"left":"😀ſ0\n.","right":"😀ſ0\n."},{"left":"😀Xc ́dZ😁́😁2,","right":"😀Xc ́dZ😁́😁2,Y"},{"left":"YYY0d0 東ſ","right":"2"},{"left":"","right":"c 東X"},{"left":"dı","right":"ıd"},{"left":"😁́ıX.-b X 中","right":"😁́ıX.-b X 中ı"},{"left":" 😁 éı,​ſc😁́\t","right":" é."},{"left":"Z ","right":" Z"},{"left":"0X\n,Z.ſ\nZ\nbſdY.X","right":"X.Ydſb\nZ\nſ.Z,\nX0"},{"left":"́ı東​","right":"́ı東​​"},{"left":"X,","right":",X"},{"left":"a1😁","right":",é中\n​\n"},{"left":"é́2","right":"é́2é"},{"left":"","right":""},{"left":"b- X-中ſ東- ,ı, bſ","right":"ſb ,ı, -東ſ中-X -b"},{"left":"XY,😀1​\ncd","right":"ſ東aŹ.éſ\n"},{"left":",-é​😀ſ.Z東0éc😀00😁́","right":"ſX́😀​\t2"},{"left":"ıc02-ſ\n😁́c0","right":"b1\n😀-ć"},{"left":"ſ\n😁X","right":"ſ\n😁X"},{"left":"  😁","right":"  😁"},{"left":"ı東-b́2ı́","right":"ı東-b́2ı́"},{"left":" ́0.","right":" ́0."},{"left":"","right":""},{"left":"Z😀 .Y\n😁-中 ","right":"ıÝ.東 ſ\t\t ,X 😀Z東é"},{"left":"\ndé0́c \n","right":"\ndé0́c \n"},{"left":".0́-Z0Z😀0YZ 😀0ıX ","right":".0́-Z0Z😀0YZ 😀0ıX "},{"left":"ı́c中\n","right":"ı́c中\n"},{"left":"d","right":"d"},{"left":"X-中b aſſ\t😁\tc","right":"́,2 ZX"},{"left":"Ź́","right":"​2é\tıd😁 1,\t"},{"left":"10Z,21😀 0ı.X\t","right":"b\t "},{"left":"0 é,b​😁 .​́-ı 2","right":"YYdYX​\tıſ😀cXZ2"},{"left":"á","right":"2YéYıZ\n東"},{"left":"Ź  ","right":"Ź  ſ"},{"left":"ı ​́.2X\t​d","right":"ı ​́.2X\t​dY"},{"left":"aſ","right":"aſ"},{"left":"😀ı\na","right":"😀ı\na"},{"left":"0 11\n😁00ſ́ ","right":"0 11\n😁00ſ́ "},{"left":"Y Yd\n.a-","right":"Y Yd\n.a-"},{"left":" \na😀Z ́é😁éb東😀​Z😀","right":" \na😀Z ́é😁éb東😀​Z😀東"},{"left":"","right":""},{"left":"ſ😀\n東東.éb😁é ","right":"\n,中"},{"left":"11bZX.😀\nX\na,0","right":"11bZX.😀\nX\na,0 "},{"left":"01ıb0d😁ı́","right":""},{"left":",\taX中1c Zſ","right":",\taX中1c Zſ"},{"left":"c 東cY 1東 X​\n\t","right":"\t\n​X 東1 Yc東 c"},{"left":"b 中東́-.中東X\n ,","right":" "},{"left":"東c😁-éıc😁-","right":"Y a,c-ddé東"},{"left":"b","right":"b😀"},{"left":"Yb中 2XX2X中b ıſ","right":"  東c\tbZ \nbd,\t́"},{"left":"d","right":"😁aſ Z😁\nX2​ 😀ı"},{"left":" 中​1-ZbZ","right":" 中​1-ZbZ"},{"left":"Zb-中é​YaéX中Z","right":"Zb-中é​YaéX中ZX"},{"left":"XcYbaYX😀ı a-東2 ,","right":"XcYbaYX😀ı a-東2 ,2"},{"left":"😁","right":"😁"},{"left":"東.ıb0  1ſ.東c中\n,","right":",\n中c東.ſ1  0bı.東"},{"left":"é2,cYbdYd1́","right":" ​ı ​😀a😁"},{"left":"ab","right":"-"},{"left":"","right":""},{"left":"c","right":"c"},{"left":"\t-東c1,2😀a","right":"\t-東c1,2😀a\n"},{"left":"中Y bſ","right":"中Y bſ "},{"left":"😁1-\ta","right":"😁1-\tá"},{"left":"2Z 😁0ı́ 東 Z \t","right":"\t Z 東 ́ı0😁 Z2"},{"left":".😀,中 11Z\t\tı́1\n","right":" 中Y 2中Y2東 ſY"},{"left":"\nı 0","right":"\nı 0中"},{"left":"c😀20ı東- ı.","right":"c😀20ı東- ı."},{"left":"b","right":"b"},{"left":"Ycı00a","right":"Ycı00a"},{"left":" 中","right":"中 "},{"left":"é1Xb😀c中́ı  😁\n\t","right":"́c-😁--a東d"},{"left":"","right":""},{"left":"c1ſ","right":"ſébéda,d.0中c1東a😁"},{"left":"é","right":"é"},{"left":",cX中1Z\n0中1東2́ſ ","right":",cX中1Z\n0中1東2́ſ "},{"left":"Z中X daécY中b😁","right":"😁b中Ycéad X中Z"},{"left":"","right":""},{"left":"a\n 0東東中😀a","right":"a\n 0東東中😀a"},{"left":"​","right":".😀"},{"left":"X\td","right":"d\tX"},{"left":"\ta,","right":"\ta,"},{"left":"😀0ſſ,X.東 bZ\ń\tc中","right":"中c\t́\nZb 東.X,ſſ0😀"},{"left":"2-Y-,cć cb中\n\n","right":"\n\n中bc ́cc,-Y-2"},{"left":"c​ 😀cb00東1 \t-","right":"😀0"}],"cases":[{"id":"c00000","function":"ss_jaccard","pair":0,"parameters":[],"expected":1.0},{"id":"c00001","function":"ss_cosine","pair":0,"parameters":[],"expected":1.0},{"id":"c00002","function":"ss_sorensen_dice","pair":0,"parameters":[],"expected":1.0},{"id":"c00003","function":"ss_overlap_coefficient","pair":0,"parameters":[],"expected":1.0},{"id":"c00004","function":"ss_braun_blanquet","pair":0,"parameters":[],"expected":1.0},{"id":"c00005","function":"ss_monge_elkan","pair":0,"parameters":[],"expected":1.0},{"id":"c00006","function":"ss_levenshtein","pair":0,"parameters":[],"expected":1.0},{"id":"c00007","function":"ss_lcs_similarity","pair":0,"parameters":[],"expected":1.0},{"id":"c00008","function":"ss_jaro","pair":0,"parameters":[],"expected":1.0},{"id":"c00009","function":"ss_jaro_winkler","pair":0,"parameters":[],"expected":1.0},{"id":"c00010","function":"ss_needleman_wunsch","pair":0,"parameters":[],"expected":1.0},{"id":"c00011","function":"ss_smith_waterman","pair":0,"parameters":[],"expected":1.0},{"id":"c00012","function":"ss_affine_gap","pair":0,"parameters":[],"expected":1.0},{"id":"c00013","function":"ss_soundex","pair":0,"parameters":[],"expected":""},{"id":"c00014","function":"ss_refined_soundex","pair":0,"parameters":[],"expected":""},{"id":"c00015","function":"ss_double_metaphone","pair":0,"parameters":[],"expected":""},{"id":"c00016","function":"ss_jaccard","pair":1,"parameters":[],"expected":0.0},{"id":"c00017","function":"ss_cosine","pair":1,"parameters":[],"expected":0.0},{"id":"c00018","function":"ss_sorensen_dice","pair":1,"parameters":[],"expected":0.0},{"id":"c00019","function":"ss_overlap_coefficient","pair":1,"parameters":[],"expected":0.0},{"id":"c00020","function":"ss_braun_blanquet","pair":1,"parameters":[],"expected":0.0},{"id":"c00021","function":"ss_monge_elkan","pair":1,"parameters":[],"expected":0.0},{"id":"c00022","function":"ss_levenshtein","pair":1,"parameters":[],"expected":0.0},{"id":"c00023","function":"ss_lcs_similarity","pair":1,"parameters":[],"expected":0.0},{"id":"c00024","function":"ss_jaro","pair":1,"parameters":[],"expected":0.0},{"id":"c00025","function":"ss_jaro_winkler","pair":1,"parameters":[],"expected":0.0},{"id":"c00026","function":"ss_needleman_wunsch","pair":1,"parameters":[],"expected":0.0},{"id":"c00027","function":"ss_smith_waterman","pair":1,"parameters":[],"expected":0.0},{"id":"c00028","function":"ss_affine_gap","pair":1,"parameters":[],"expected":0.0},{"id":"c00029","function":"ss_soundex","pair":1,"parameters":[],"expected":""},{"id":"c00030","function":"ss_refined_soundex","pair":1,"parameters":[],"expected":""},{"id":"c00031","function":"ss_double_metaphone","pair":1,"parameters":[],"expected":""},{"id":"c00032","function":"ss_jaccard","pair":2,"parameters":[],"expected":0.0},{"id":"c00033","function":"ss_cosine","pair":2,"parameters":[],"expected":0.0},{"id":"c00034","function":"ss_sorensen_dice","pair":2,"parameters":[],"expected":0.0},{"id":"c00035","function":"ss_overlap_coefficient","pair":2,"parameters":[],"expected":0.0},{"id":"c00036","function":"ss_braun_blanquet","pair":2,"parameters":[],"expected":0.0},{"id":"c00037","function":"ss_monge_elkan","pair":2,"parameters":[],"expected":0.0},{"id":"c00038","function":"ss_levenshtein","pair":2,"parameters":[],"expected":0.0},{"id":"c00039","function":"ss_lcs_similarity","pair":2,"parameters":[],"expected":0.0},{"id":"c00040","function":"ss_jaro","pair":2,"parameters":[],"expected":0.0},{"id":"c00041","function":"ss_jaro_winkler","pair":2,"parameters":[],"expected":0.0},{"id":"c00042","function":"ss_needleman_wunsch","pair":2,"parameters":[],"expected":0.0},{"id":"c00043","function":"ss_smith_waterman","pair":2,"parameters":[],"expected":0.0},{"id":"c00044","function":"ss_affine_gap","pair":2,"parameters":[],"expected":0.0},{"id":"c00045","function":"ss_soundex","pair":2,"parameters":[],"expected":"H400"},{"id":"c00046","function":"ss_refined_soundex","pair":2,"parameters":[],"expected":"H70"},{"id":"c00047","function":"ss_double_metaphone","pair":2,"parameters":[],"expected":"HL"},{"id":"c00048","function":"ss_jaccard","pair":3,"parameters":[],"expected":0.0},{"id":"c00049","function":"ss_cosine","pair":3,"parameters":[],"expected":0.0},{"id":"c00050","function":"ss_sorensen_dice","pair":3,"parameters":[],"expected":0.0},{"id":"c00051","function":"ss_overlap_coefficient","pair":3,"parameters":[],"expected":0.0},{"id":"c00052","function":"ss_braun_blanquet","pair":3,"parameters":[],"expected":0.0},{"id":"c00053","function":"ss_monge_elkan","pair":3,"parameters":[],"expected":1.0},{"id":"c00054","function":"ss_levenshtein","pair":3,"parameters":[],"expected":0.0},{"id":"c00055","function":"ss_lcs_similarity","pair":3,"parameters":[],"expected":0.0},{"id":"c00056","function":"ss_jaro","pair":3,"parameters":[],"expected":0.0},{"id":"c00057","function":"ss_jaro_winkler","pair":3,"parameters":[],"expected":0.0},{"id":"c00058","function":"ss_needleman_wunsch","pair":3,"parameters":[],"expected":0.0},{"id":"c00059","function":"ss_smith_waterman","pair":3,"parameters":[],"expected":0.0},{"id":"c00060","function":"ss_affine_gap","pair":3,"parameters":[],"expected":0.0},{"id":"c00061","function":"ss_soundex","pair":3,"parameters":[],"expected":""},{"id":"c00062","function":"ss_refined_soundex","pair":3,"parameters":[],"expected":""},{"id":"c00063","function":"ss_double_metaphone","pair":3,"parameters":[],"expected":""},{"id":"c00064","function":"ss_jaccard","pair":4,"parameters":[],"expected":0.0},{"id":"c00065","function":"ss_cosine","pair":4,"parameters":[],"expected":1.0},{"id":"c00066","function":"ss_sorensen_dice","pair":4,"parameters":[],"expected":0.0},{"id":"c00067","function":"ss_overlap_coefficient","pair":4,"parameters":[],"expected":1.0},{"id":"c00068","function":"ss_braun_blanquet","pair":4,"parameters":[],"expected":0.0},{"id":"c00069","function":"ss_monge_elkan","pair":4,"parameters":[],"expected":0.0},{"id":"c00070","function":"ss_levenshtein","pair":4,"parameters":[],"expected":0.0},{"id":"c00071","function":"ss_lcs_similarity","pair":4,"parameters":[],"expected":0.0},{"id":"c00072","function":"ss_jaro","pair":4,"parameters":[],"expected":0.0},{"id":"c00073","function":"ss_jaro_winkler","pair":4,"parameters":[],"expected":0.0},{"id":"c00074","function":"ss_needleman_wunsch","pair":4,"parameters":[],"expected":0.0},{"id":"c00075","function":"ss_smith_waterman","pair":4,"parameters":[],"expected":0.0},{"id":"c00076","function":"ss_affine_gap","pair":4,"parameters":[],"expected":0.0},{"id":"c00077","function":"ss_soundex","pair":4,"parameters":[],"expected":""},{"id":"c00078","function":"ss_refined_soundex","pair":4,"parameters":[],"expected":""},{"id":"c00079","function":"ss_double_metaphone","pair":4,"parameters":[],"expected":""},{"id":"c00080","function":"ss_jaccard","pair":5,"parameters":[],"expected":1.0},{"id":"c00081","function":"ss_cosine","pair":5,"parameters":[],"expected":1.0},{"id":"c00082","function":"ss_sorensen_dice","pair":5,"parameters":[],"expected":1.0},{"id":"c00083","function":"ss_overlap_coefficient","pair":5,"parameters":[],"expected":1.0},{"id":"c00084","function":"ss_braun_blanquet","pair":5,"parameters":[],"expected":1.0},{"id":"c00085","function":"ss_monge_elkan","pair":5,"parameters":[],"expected":1.0},{"id":"c00086","function":"ss_levenshtein","pair":5,"parameters":[],"expected":0.0},{"id":"c00087","function":"ss_lcs_similarity","pair":5,"parameters":[],"expected":0.3333333333333333},{"id":"c00088","function":"ss_jaro","pair":5,"parameters":[],"expected":0.0},{"id":"c00089","function":"ss_jaro_winkler","pair":5,"parameters":[],"expected":0.0},{"id":"c00090","function":"ss_needleman_wunsch","pair":5,"parameters":[],"expected":0.16666666666666666},{"id":"c00091","function":"ss_smith_waterman","pair":5,"parameters":[],"expected":0.5},{"id":"c00092","function":"ss_affine_gap","pair":5,"parameters":[],"expected":0.0},{"id":"c00093","function":"ss_soundex","pair":5,"parameters":[],"expected":""},{"id":"c00094","function":"ss_refined_soundex","pair":5,"parameters":[],"expected":""},{"id":"c00095","function":"ss_double_metaphone","pair":5,"parameters":[],"expected":""},{"id":"c00096","function":"ss_jaccard","pair":6,"parameters":[],"expected":0.5},{"id":"c00097","function":"ss_cosine","pair":6,"parameters":[],"expected":0.6666666666666666},{"id":"c00098","function":"ss_sorensen_dice","pair":6,"parameters":[],"expected":0.6666666666666666},{"id":"c00099","function":"ss_overlap_coefficient","pair":6,"parameters":[],"expected":0.6666666666666666},{"id":"c00100","function":"ss_braun_blanquet","pair":6,"parameters":[],"expected":0.6666666666666666},{"id":"c00101","function":"ss_monge_elkan","pair":6,"parameters":[],"expected":0.6666666666666666},{"id":"c00102","function":"ss_levenshtein","pair":6,"parameters":[],"expected":0.8},{"id":"c00103","function":"ss_lcs_similarity","pair":6,"parameters":[],"expected":0.8},{"id":"c00104","function":"ss_jaro","pair":6,"parameters":[],"expected":0.8666666666666667},{"id":"c00105","function":"ss_jaro_winkler","pair":6,"parameters":[],"expected":0.92},{"id":"c00106","function":"ss_needleman_wunsch","pair":6,"parameters":[],"expected":0.8},{"id":"c00107","function":"ss_smith_waterman","pair":6,"parameters":[],"expected":0.8},{"id":"c00108","function":"ss_affine_gap","pair":6,"parameters":[],"expected":0.8},{"id":"c00109","function":"ss_soundex","pair":6,"parameters":[],"expected":"A120"},{"id":"c00110","function":"ss_refined_soundex","pair":6,"parameters":[],"expected":"A12"},{"id":"c00111","function":"ss_double_metaphone","pair":6,"parameters":[],"expected":"APK"},{"id":"c00112","function":"ss_jaccard","pair":7,"parameters":[],"expected":0.6666666666666666},{"id":"c00113","function":"ss_cosine","pair":7,"parameters":[],"expected":0.8164965809277261},{"id":"c00114","function":"ss_sorensen_dice","pair":7,"parameters":[],"expected":0.8},{"id":"c00115","function":"ss_overlap_coefficient","pair":7,"parameters":[],"expected":1.0},{"id":"c00116","function":"ss_braun_blanquet","pair":7,"parameters":[],"expected":0.6666666666666666},{"id":"c00117","function":"ss_monge_elkan","pair":7,"parameters":[],"expected":0.8333333333333333},{"id":"c00118","function":"ss_levenshtein","pair":7,"parameters":[],"expected":0.6},{"id":"c00119","function":"ss_lcs_similarity","pair":7,"parameters":[],"expected":0.6},{"id":"c00120","function":"ss_jaro","pair":7,"parameters":[],"expected":0.8666666666666667},{"id":"c00121","function":"ss_jaro_winkler","pair":7,"parameters":[],"expected":0.9066666666666667},{"id":"c00122","function":"ss_needleman_wunsch","pair":7,"parameters":[],"expected":0.6},{"id":"c00123","function":"ss_smith_waterman","pair":7,"parameters":[],"expected":1.0},{"id":"c00124","function":"ss_affine_gap","pair":7,"parameters":[],"expected":0.19999999999999996},{"id":"c00125","function":"ss_soundex","pair":7,"parameters":[],"expected":"A100"},{"id":"c00126","function":"ss_refined_soundex","pair":7,"parameters":[],"expected":"A1"},{"id":"c00127","function":"ss_double_metaphone","pair":7,"parameters":[],"expected":"AP"},{"id":"c00128","function":"ss_jaccard","pair":8,"parameters":[],"expected":1.0},{"id":"c00129","function":"ss_cosine","pair":8,"parameters":[],"expected":1.0},{"id":"c00130","function":"ss_sorensen_dice","pair":8,"parameters":[],"expected":1.0},{"id":"c00131","function":"ss_overlap_coefficient","pair":8,"parameters":[],"expected":1.0},{"id":"c00132","function":"ss_braun_blanquet","pair":8,"parameters":[],"expected":1.0},{"id":"c00133","function":"ss_monge_elkan","pair":8,"parameters":[],"expected":1.0},{"id":"c00134","function":"ss_levenshtein","pair":8,"parameters":[],"expected":0.4285714285714286},{"id":"c00135","function":"ss_lcs_similarity","pair":8,"parameters":[],"expected":0.42857142857142855},{"id":"c00136","function":"ss_jaro","pair":8,"parameters":[],"expected":0.6507936507936508},{"id":"c00137","function":"ss_jaro_winkler","pair":8,"parameters":[],"expected":0.7206349206349206},{"id":"c00138","function":"ss_needleman_wunsch","pair":8,"parameters":[],"expected":0.42857142857142855},{"id":"c00139","function":"ss_smith_waterman","pair":8,"parameters":[],"expected":1.0},{"id":"c00140","function":"ss_affine_gap","pair":8,"parameters":[],"expected":0.1428571428571429},{"id":"c00141","function":"ss_soundex","pair":8,"parameters":[],"expected":"A100"},{"id":"c00142","function":"ss_refined_soundex","pair":8,"parameters":[],"expected":"A1"},{"id":"c00143","function":"ss_double_metaphone","pair":8,"parameters":[],"expected":"AP"},{"id":"c00144","function":"ss_jaccard","pair":9,"parameters":[],"expected":0.3333333333333333},{"id":"c00145","function":"ss_cosine","pair":9,"parameters":[],"expected":0.5},{"id":"c00146","function":"ss_sorensen_dice","pair":9,"parameters":[],"expected":0.5},{"id":"c00147","function":"ss_overlap_coefficient","pair":9,"parameters":[],"expected":0.5},{"id":"c00148","function":"ss_braun_blanquet","pair":9,"parameters":[],"expected":0.5},{"id":"c00149","function":"ss_monge_elkan","pair":9,"parameters":[],"expected":0.5},{"id":"c00150","function":"ss_levenshtein","pair":9,"parameters":[],"expected":0.6},{"id":"c00151","function":"ss_lcs_similarity","pair":9,"parameters":[],"expected":0.6},{"id":"c00152","function":"ss_jaro","pair":9,"parameters":[],"expected":0.7333333333333334},{"id":"c00153","function":"ss_jaro_winkler","pair":9,"parameters":[],"expected":0.7866666666666667},{"id":"c00154","function":"ss_needleman_wunsch","pair":9,"parameters":[],"expected":0.6},{"id":"c00155","function":"ss_smith_waterman","pair":9,"parameters":[],"expected":0.5},{"id":"c00156","function":"ss_affine_gap","pair":9,"parameters":[],"expected":0.6},{"id":"c00157","function":"ss_soundex","pair":9,"parameters":[],"expected":"A100"},{"id":"c00158","function":"ss_refined_soundex","pair":9,"parameters":[],"expected":"A1"},{"id":"c00159","function":"ss_double_metaphone","pair":9,"parameters":[],"expected":"AP"},{"id":"c00160","function":"ss_jaccard","pair":10,"parameters":[],"expected":1.0},{"id":"c00161","function":"ss_cosine","pair":10,"parameters":[],"expected":1.0},{"id":"c00162","function":"ss_sorensen_dice","pair":10,"parameters":[],"expected":1.0},{"id":"c00163","function":"ss_overlap_coefficient","pair":10,"parameters":[],"expected":1.0},{"id":"c00164","function":"ss_braun_blanquet","pair":10,"parameters":[],"expected":1.0},{"id":"c00165","function":"ss_monge_elkan","pair":10,"parameters":[],"expected":1.0},{"id":"c00166","function":"ss_levenshtein","pair":10,"parameters":[],"expected":0.9166666666666666},{"id":"c00167","function":"ss_lcs_similarity","pair":10,"parameters":[],"expected":0.9166666666666666},{"id":"c00168","function":"ss_jaro","pair":10,"parameters":[],"expected":0.9722222222222222},{"id":"c00169","function":"ss_jaro_winkler","pair":10,"parameters":[],"expected":0.9833333333333333},{"id":"c00170","function":"ss_needleman_wunsch","pair":10,"parameters":[],"expected":0.9166666666666666},{"id":"c00171","function":"ss_smith_waterman","pair":10,"parameters":[],"expected":0.9545454545454546},{"id":"c00172","function":"ss_affine_gap","pair":10,"parameters":[],"expected":0.75},{"id":"c00173","function":"ss_soundex","pair":10,"parameters":[],"expected":"H464"},{"id":"c00174","function":"ss_refined_soundex","pair":10,"parameters":[],"expected":"H70973"},{"id":"c00175","function":"ss_double_metaphone","pair":10,"parameters":[],"expected":"HLRL"},{"id":"c00176","function":"ss_jaccard","pair":11,"parameters":[],"expected":1.0},{"id":"c00177","function":"ss_cosine","pair":11,"parameters":[],"expected":1.0},{"id":"c00178","function":"ss_sorensen_dice","pair":11,"parameters":[],"expected":1.0},{"id":"c00179","function":"ss_overlap_coefficient","pair":11,"parameters":[],"expected":1.0},{"id":"c00180","function":"ss_braun_blanquet","pair":11,"parameters":[],"expected":1.0},{"id":"c00181","function":"ss_monge_elkan","pair":11,"parameters":[],"expected":1.0},{"id":"c00182","function":"ss_levenshtein","pair":11,"parameters":[],"expected":0.9090909090909091},{"id":"c00183","function":"ss_lcs_similarity","pair":11,"parameters":[],"expected":0.9090909090909091},{"id":"c00184","function":"ss_jaro","pair":11,"parameters":[],"expected":0.9393939393939394},{"id":"c00185","function":"ss_jaro_winkler","pair":11,"parameters":[],"expected":0.9636363636363636},{"id":"c00186","function":"ss_needleman_wunsch","pair":11,"parameters":[],"expected":0.9090909090909091},{"id":"c00187","function":"ss_smith_waterman","pair":11,"parameters":[],"expected":0.8636363636363636},{"id":"c00188","function":"ss_affine_gap","pair":11,"parameters":[],"expected":0.9090909090909091},{"id":"c00189","function":"ss_soundex","pair":11,"parameters":[],"expected":"H464"},{"id":"c00190","function":"ss_refined_soundex","pair":11,"parameters":[],"expected":"H70973"},{"id":"c00191","function":"ss_double_metaphone","pair":11,"parameters":[],"expected":"HLRL"},{"id":"c00192","function":"ss_jaccard","pair":12,"parameters":[],"expected":0.0},{"id":"c00193","function":"ss_cosine","pair":12,"parameters":[],"expected":0.0},{"id":"c00194","function":"ss_sorensen_dice","pair":12,"parameters":[],"expected":0.0},{"id":"c00195","function":"ss_overlap_coefficient","pair":12,"parameters":[],"expected":0.0},{"id":"c00196","function":"ss_braun_blanquet","pair":12,"parameters":[],"expected":0.0},{"id":"c00197","function":"ss_monge_elkan","pair":12,"parameters":[],"expected":0.7875000000000001},{"id":"c00198","function":"ss_levenshtein","pair":12,"parameters":[],"expected":0.9},{"id":"c00199","function":"ss_lcs_similarity","pair":12,"parameters":[],"expected":0.9},{"id":"c00200","function":"ss_jaro","pair":12,"parameters":[],"expected":0.9333333333333332},{"id":"c00201","function":"ss_jaro_winkler","pair":12,"parameters":[],"expected":0.96},{"id":"c00202","function":"ss_needleman_wunsch","pair":12,"parameters":[],"expected":0.9},{"id":"c00203","function":"ss_smith_waterman","pair":12,"parameters":[],"expected":0.85},{"id":"c00204","function":"ss_affine_gap","pair":12,"parameters":[],"expected":0.9},{"id":"c00205","function":"ss_soundex","pair":12,"parameters":[],"expected":"A411"},{"id":"c00206","function":"ss_refined_soundex","pair":12,"parameters":[],"expected":"A7101030"},{"id":"c00207","function":"ss_double_metaphone","pair":12,"parameters":[],"expected":"ALFP"},{"id":"c00208","function":"ss_jaccard","pair":13,"parameters":[],"expected":0.0},{"id":"c00209","function":"ss_cosine","pair":13,"parameters":[],"expected":0.0},{"id":"c00210","function":"ss_sorensen_dice","pair":13,"parameters":[],"expected":0.0},{"id":"c00211","function":"ss_overlap_coefficient","pair":13,"parameters":[],"expected":0.0},{"id":"c00212","function":"ss_braun_blanquet","pair":13,"parameters":[],"expected":0.0},{"id":"c00213","function":"ss_monge_elkan","pair":13,"parameters":[],"expected":0.8500000000000001},{"id":"c00214","function":"ss_levenshtein","pair":13,"parameters":[],"expected":0.8},{"id":"c00215","function":"ss_lcs_similarity","pair":13,"parameters":[],"expected":0.8},{"id":"c00216","function":"ss_jaro","pair":13,"parameters":[],"expected":0.7833333333333333},{"id":"c00217","function":"ss_jaro_winkler","pair":13,"parameters":[],"expected":0.7833333333333333},{"id":"c00218","function":"ss_needleman_wunsch","pair":13,"parameters":[],"expected":0.8},{"id":"c00219","function":"ss_smith_waterman","pair":13,"parameters":[],"expected":0.75},{"id":"c00220","function":"ss_affine_gap","pair":13,"parameters":[],"expected":0.8},{"id":"c00221","function":"ss_soundex","pair":13,"parameters":[],"expected":"A411"},{"id":"c00222","function":"ss_refined_soundex","pair":13,"parameters":[],"expected":"A7101030"},{"id":"c00223","function":"ss_double_metaphone","pair":13,"parameters":[],"expected":"ALFP"},{"id":"c00224","function":"ss_jaccard","pair":14,"parameters":[],"expected":0.0},{"id":"c00225","function":"ss_cosine","pair":14,"parameters":[],"expected":0.0},{"id":"c00226","function":"ss_sorensen_dice","pair":14,"parameters":[],"expected":0.0},{"id":"c00227","function":"ss_overlap_coefficient","pair":14,"parameters":[],"expected":0.0},{"id":"c00228","function":"ss_braun_blanquet","pair":14,"parameters":[],"expected":0.0},{"id":"c00229","function":"ss_monge_elkan","pair":14,"parameters":[],"expected":0.8833333333333334},{"id":"c00230","function":"ss_levenshtein","pair":14,"parameters":[],"expected":0.75},{"id":"c00231","function":"ss_lcs_similarity","pair":14,"parameters":[],"expected":0.75},{"id":"c00232","function":"ss_jaro","pair":14,"parameters":[],"expected":0.8333333333333334},{"id":"c00233","function":"ss_jaro_winkler","pair":14,"parameters":[],"expected":0.8833333333333334},{"id":"c00234","function":"ss_needleman_wunsch","pair":14,"parameters":[],"expected":0.75},{"id":"c00235","function":"ss_smith_waterman","pair":14,"parameters":[],"expected":0.75},{"id":"c00236","function":"ss_affine_gap","pair":14,"parameters":[],"expected":0.75},{"id":"c00237","function":"ss_soundex","pair":14,"parameters":[],"expected":"A123"},{"id":"c00238","function":"ss_refined_soundex","pair":14,"parameters":[],"expected":"A123"},{"id":"c00239","function":"ss_double_metaphone","pair":14,"parameters":[],"expected":"APKT"},{"id":"c00240","function":"ss_jaccard","pair":15,"parameters":[],"expected":0.0},{"id":"c00241","function":"ss_cosine","pair":15,"parameters":[],"expected":0.0},{"id":"c00242","function":"ss_sorensen_dice","pair":15,"parameters":[],"expected":0.0},{"id":"c00243","function":"ss_overlap_coefficient","pair":15,"parameters":[],"expected":0.0},{"id":"c00244","function":"ss_braun_blanquet","pair":15,"parameters":[],"expected":0.0},{"id":"c00245","function":"ss_monge_elkan","pair":15,"parameters":[],"expected":0.0},{"id":"c00246","function":"ss_levenshtein","pair":15,"parameters":[],"expected":0.0},{"id":"c00247","function":"ss_lcs_similarity","pair":15,"parameters":[],"expected":0.0},{"id":"c00248","function":"ss_jaro","pair":15,"parameters":[],"expected":0.0},{"id":"c00249","function":"ss_jaro_winkler","pair":15,"parameters":[],"expected":0.0},{"id":"c00250","function":"ss_needleman_wunsch","pair":15,"parameters":[],"expected":0.0},{"id":"c00251","function":"ss_smith_waterman","pair":15,"parameters":[],"expected":0.0},{"id":"c00252","function":"ss_affine_gap","pair":15,"parameters":[],"expected":0.0},{"id":"c00253","function":"ss_soundex","pair":15,"parameters":[],"expected":"A120"},{"id":"c00254","function":"ss_refined_soundex","pair":15,"parameters":[],"expected":"A12"},{"id":"c00255","function":"ss_double_metaphone","pair":15,"parameters":[],"expected":"APK"},{"id":"c00256","function":"ss_jaccard","pair":16,"parameters":[],"expected":0.0},{"id":"c00257","function":"ss_cosine","pair":16,"parameters":[],"expected":0.0},{"id":"c00258","function":"ss_sorensen_dice","pair":16,"parameters":[],"expected":0.0},{"id":"c00259","function":"ss_overlap_coefficient","pair":16,"parameters":[],"expected":0.0},{"id":"c00260","function":"ss_braun_blanquet","pair":16,"parameters":[],"expected":0.0},{"id":"c00261","function":"ss_monge_elkan","pair":16,"parameters":[],"expected":0.9111111111111111},{"id":"c00262","function":"ss_levenshtein","pair":16,"parameters":[],"expected":0.6666666666666667},{"id":"c00263","function":"ss_lcs_similarity","pair":16,"parameters":[],"expected":0.6666666666666666},{"id":"c00264","function":"ss_jaro","pair":16,"parameters":[],"expected":0.8888888888888888},{"id":"c00265","function":"ss_jaro_winkler","pair":16,"parameters":[],"expected":0.9111111111111111},{"id":"c00266","function":"ss_needleman_wunsch","pair":16,"parameters":[],"expected":0.6666666666666666},{"id":"c00267","function":"ss_smith_waterman","pair":16,"parameters":[],"expected":1.0},{"id":"c00268","function":"ss_affine_gap","pair":16,"parameters":[],"expected":0.0},{"id":"c00269","function":"ss_soundex","pair":16,"parameters":[],"expected":"A100"},{"id":"c00270","function":"ss_refined_soundex","pair":16,"parameters":[],"expected":"A1"},{"id":"c00271","function":"ss_double_metaphone","pair":16,"parameters":[],"expected":"AP"},{"id":"c00272","function":"ss_jaccard","pair":17,"parameters":[],"expected":0.3333333333333333},{"id":"c00273","function":"ss_cosine","pair":17,"parameters":[],"expected":0.5},{"id":"c00274","function":"ss_sorensen_dice","pair":17,"parameters":[],"expected":0.5},{"id":"c00275","function":"ss_overlap_coefficient","pair":17,"parameters":[],"expected":0.5},{"id":"c00276","function":"ss_braun_blanquet","pair":17,"parameters":[],"expected":0.5},{"id":"c00277","function":"ss_monge_elkan","pair":17,"parameters":[],"expected":0.5},{"id":"c00278","function":"ss_levenshtein","pair":17,"parameters":[],"expected":0.6666666666666667},{"id":"c00279","function":"ss_lcs_similarity","pair":17,"parameters":[],"expected":0.6666666666666666},{"id":"c00280","function":"ss_jaro","pair":17,"parameters":[],"expected":0.7777777777777777},{"id":"c00281","function":"ss_jaro_winkler","pair":17,"parameters":[],"expected":0.8222222222222222},{"id":"c00282","function":"ss_needleman_wunsch","pair":17,"parameters":[],"expected":0.6666666666666666},{"id":"c00283","function":"ss_smith_waterman","pair":17,"parameters":[],"expected":0.6666666666666666},{"id":"c00284","function":"ss_affine_gap","pair":17,"parameters":[],"expected":0.6666666666666667},{"id":"c00285","function":"ss_soundex","pair":17,"parameters":[],"expected":"A100"},{"id":"c00286","function":"ss_refined_soundex","pair":17,"parameters":[],"expected":"A1"},{"id":"c00287","function":"ss_double_metaphone","pair":17,"parameters":[],"expected":"AP"},{"id":"c00288","function":"ss_jaccard","pair":18,"parameters":[],"expected":0.0},{"id":"c00289","function":"ss_cosine","pair":18,"parameters":[],"expected":0.0},{"id":"c00290","function":"ss_sorensen_dice","pair":18,"parameters":[],"expected":0.0},{"id":"c00291","function":"ss_overlap_coefficient","pair":18,"parameters":[],"expected":0.0},{"id":"c00292","function":"ss_braun_blanquet","pair":18,"parameters":[],"expected":0.0},{"id":"c00293","function":"ss_monge_elkan","pair":18,"parameters":[],"expected":0.8666666666666667},{"id":"c00294","function":"ss_levenshtein","pair":18,"parameters":[],"expected":0.5},{"id":"c00295","function":"ss_lcs_similarity","pair":18,"parameters":[],"expected":0.5},{"id":"c00296","function":"ss_jaro","pair":18,"parameters":[],"expected":0.8333333333333334},{"id":"c00297","function":"ss_jaro_winkler","pair":18,"parameters":[],"expected":0.8666666666666667},{"id":"c00298","function":"ss_needleman_wunsch","pair":18,"parameters":[],"expected":0.5},{"id":"c00299","function":"ss_smith_waterman","pair":18,"parameters":[],"expected":1.0},{"id":"c00300","function":"ss_affine_gap","pair":18,"parameters":[],"expected":0.0},{"id":"c00301","function":"ss_soundex","pair":18,"parameters":[],"expected":"A000"},{"id":"c00302","function":"ss_refined_soundex","pair":18,"parameters":[],"expected":"A"},{"id":"c00303","function":"ss_double_metaphone","pair":18,"parameters":[],"expected":"A"},{"id":"c00304","function":"ss_jaccard","pair":19,"parameters":[],"expected":0.0},{"id":"c00305","function":"ss_cosine","pair":19,"parameters":[],"expected":0.0},{"id":"c00306","function":"ss_sorensen_dice","pair":19,"parameters":[],"expected":0.0},{"id":"c00307","function":"ss_overlap_coefficient","pair":19,"parameters":[],"expected":0.0},{"id":"c00308","function":"ss_braun_blanquet","pair":19,"parameters":[],"expected":0.0},{"id":"c00309","function":"ss_monge_elkan","pair":19,"parameters":[],"expected":0.0},{"id":"c00310","function":"ss_levenshtein","pair":19,"parameters":[],"expected":0.0},{"id":"c00311","function":"ss_lcs_similarity","pair":19,"parameters":[],"expected":0.0},{"id":"c00312","function":"ss_jaro","pair":19,"parameters":[],"expected":0.0},{"id":"c00313","function":"ss_jaro_winkler","pair":19,"parameters":[],"expected":0.0},{"id":"c00314","function":"ss_needleman_wunsch","pair":19,"parameters":[],"expected":0.0},{"id":"c00315","function":"ss_smith_waterman","pair":19,"parameters":[],"expected":0.0},{"id":"c00316","function":"ss_affine_gap","pair":19,"parameters":[],"expected":0.0},{"id":"c00317","function":"ss_soundex","pair":19,"parameters":[],"expected":"A000"},{"id":"c00318","function":"ss_refined_soundex","pair":19,"parameters":[],"expected":"A"},{"id":"c00319","function":"ss_double_metaphone","pair":19,"parameters":[],"expected":"A"},{"id":"c00320","function":"ss_jaccard","pair":20,"parameters":[],"expected":0.0},{"id":"c00321","function":"ss_cosine","pair":20,"parameters":[],"expected":0.0},{"id":"c00322","function":"ss_sorensen_dice","pair":20,"parameters":[],"expected":0.0},{"id":"c00323","function":"ss_overlap_coefficient","pair":20,"parameters":[],"expected":0.0},{"id":"c00324","function":"ss_braun_blanquet","pair":20,"parameters":[],"expected":0.0},{"id":"c00325","function":"ss_monge_elkan","pair":20,"parameters":[],"expected":0.893888888888889},{"id":"c00326","function":"ss_levenshtein","pair":20,"parameters":[],"expected":0.7692307692307692},{"id":"c00327","function":"ss_lcs_similarity","pair":20,"parameters":[],"expected":0.7692307692307693},{"id":"c00328","function":"ss_jaro","pair":20,"parameters":[],"expected":0.8675213675213675},{"id":"c00329","function":"ss_jaro_winkler","pair":20,"parameters":[],"expected":0.9072649572649573},{"id":"c00330","function":"ss_needleman_wunsch","pair":20,"parameters":[],"expected":0.7692307692307693},{"id":"c00331","function":"ss_smith_waterman","pair":20,"parameters":[],"expected":0.7083333333333334},{"id":"c00332","function":"ss_affine_gap","pair":20,"parameters":[],"expected":0.6153846153846154},{"id":"c00333","function":"ss_soundex","pair":20,"parameters":[],"expected":"S315"},{"id":"c00334","function":"ss_refined_soundex","pair":20,"parameters":[],"expected":"S3010828030"},{"id":"c00335","function":"ss_double_metaphone","pair":20,"parameters":[],"expected":"STFN"},{"id":"c00336","function":"ss_jaccard","pair":21,"parameters":[],"expected":0.3333333333333333},{"id":"c00337","function":"ss_cosine","pair":21,"parameters":[],"expected":0.5},{"id":"c00338","function":"ss_sorensen_dice","pair":21,"parameters":[],"expected":0.5},{"id":"c00339","function":"ss_overlap_coefficient","pair":21,"parameters":[],"expected":0.5},{"id":"c00340","function":"ss_braun_blanquet","pair":21,"parameters":[],"expected":0.5},{"id":"c00341","function":"ss_monge_elkan","pair":21,"parameters":[],"expected":0.7708333333333334},{"id":"c00342","function":"ss_levenshtein","pair":21,"parameters":[],"expected":0.6363636363636364},{"id":"c00343","function":"ss_lcs_similarity","pair":21,"parameters":[],"expected":0.6363636363636364},{"id":"c00344","function":"ss_jaro","pair":21,"parameters":[],"expected":0.7787878787878788},{"id":"c00345","function":"ss_jaro_winkler","pair":21,"parameters":[],"expected":0.8672727272727273},{"id":"c00346","function":"ss_needleman_wunsch","pair":21,"parameters":[],"expected":0.6363636363636364},{"id":"c00347","function":"ss_smith_waterman","pair":21,"parameters":[],"expected":0.6},{"id":"c00348","function":"ss_affine_gap","pair":21,"parameters":[],"expected":0.4545454545454546},{"id":"c00349","function":"ss_soundex","pair":21,"parameters":[],"expected":"A411"},{"id":"c00350","function":"ss_refined_soundex","pair":21,"parameters":[],"expected":"A7101030"},{"id":"c00351","function":"ss_double_metaphone","pair":21,"parameters":[],"expected":"ALFP"},{"id":"c00352","function":"ss_jaccard","pair":22,"parameters":[],"expected":0.3333333333333333},{"id":"c00353","function":"ss_cosine","pair":22,"parameters":[],"expected":0.5},{"id":"c00354","function":"ss_sorensen_dice","pair":22,"parameters":[],"expected":0.5},{"id":"c00355","function":"ss_overlap_coefficient","pair":22,"parameters":[],"expected":0.5},{"id":"c00356","function":"ss_braun_blanquet","pair":22,"parameters":[],"expected":0.5},{"id":"c00357","function":"ss_monge_elkan","pair":22,"parameters":[],"expected":0.8138888888888889},{"id":"c00358","function":"ss_levenshtein","pair":22,"parameters":[],"expected":0.5},{"id":"c00359","function":"ss_lcs_similarity","pair":22,"parameters":[],"expected":0.5},{"id":"c00360","function":"ss_jaro","pair":22,"parameters":[],"expected":0.7424242424242425},{"id":"c00361","function":"ss_jaro_winkler","pair":22,"parameters":[],"expected":0.8454545454545456},{"id":"c00362","function":"ss_needleman_wunsch","pair":22,"parameters":[],"expected":0.5},{"id":"c00363","function":"ss_smith_waterman","pair":22,"parameters":[],"expected":0.5909090909090909},{"id":"c00364","function":"ss_affine_gap","pair":22,"parameters":[],"expected":0.3125},{"id":"c00365","function":"ss_soundex","pair":22,"parameters":[],"expected":"A414"},{"id":"c00366","function":"ss_refined_soundex","pair":22,"parameters":[],"expected":"A7107101030"},{"id":"c00367","function":"ss_double_metaphone","pair":22,"parameters":[],"expected":"ALFL"},{"id":"c00368","function":"ss_jaccard","pair":23,"parameters":[],"expected":1.0},{"id":"c00369","function":"ss_cosine","pair":23,"parameters":[],"expected":1.0},{"id":"c00370","function":"ss_sorensen_dice","pair":23,"parameters":[],"expected":1.0},{"id":"c00371","function":"ss_overlap_coefficient","pair":23,"parameters":[],"expected":1.0},{"id":"c00372","function":"ss_braun_blanquet","pair":23,"parameters":[],"expected":1.0},{"id":"c00373","function":"ss_monge_elkan","pair":23,"parameters":[],"expected":1.0},{"id":"c00374","function":"ss_levenshtein","pair":23,"parameters":[],"expected":0.19999999999999996},{"id":"c00375","function":"ss_lcs_similarity","pair":23,"parameters":[],"expected":0.5},{"id":"c00376","function":"ss_jaro","pair":23,"parameters":[],"expected":0.5166666666666667},{"id":"c00377","function":"ss_jaro_winkler","pair":23,"parameters":[],"expected":0.5166666666666667},{"id":"c00378","function":"ss_needleman_wunsch","pair":23,"parameters":[],"expected":0.25},{"id":"c00379","function":"ss_smith_waterman","pair":23,"parameters":[],"expected":0.5},{"id":"c00380","function":"ss_affine_gap","pair":23,"parameters":[],"expected":0.09999999999999998},{"id":"c00381","function":"ss_soundex","pair":23,"parameters":[],"expected":"B341"},{"id":"c00382","function":"ss_refined_soundex","pair":23,"parameters":[],"expected":"B030710"},{"id":"c00383","function":"ss_double_metaphone","pair":23,"parameters":[],"expected":"PTLF"},{"id":"c00384","function":"ss_jaccard","pair":24,"parameters":[],"expected":0.0},{"id":"c00385","function":"ss_cosine","pair":24,"parameters":[],"expected":0.0},{"id":"c00386","function":"ss_sorensen_dice","pair":24,"parameters":[],"expected":0.0},{"id":"c00387","function":"ss_overlap_coefficient","pair":24,"parameters":[],"expected":0.0},{"id":"c00388","function":"ss_braun_blanquet","pair":24,"parameters":[],"expected":0.0},{"id":"c00389","function":"ss_monge_elkan","pair":24,"parameters":[],"expected":0.9611111111111111},{"id":"c00390","function":"ss_levenshtein","pair":24,"parameters":[],"expected":0.6666666666666667},{"id":"c00391","function":"ss_lcs_similarity","pair":24,"parameters":[],"expected":0.8333333333333334},{"id":"c00392","function":"ss_jaro","pair":24,"parameters":[],"expected":0.9444444444444445},{"id":"c00393","function":"ss_jaro_winkler","pair":24,"parameters":[],"expected":0.9611111111111111},{"id":"c00394","function":"ss_needleman_wunsch","pair":24,"parameters":[],"expected":0.75},{"id":"c00395","function":"ss_smith_waterman","pair":24,"parameters":[],"expected":0.6666666666666666},{"id":"c00396","function":"ss_affine_gap","pair":24,"parameters":[],"expected":0.6666666666666667},{"id":"c00397","function":"ss_soundex","pair":24,"parameters":[],"expected":"M630"},{"id":"c00398","function":"ss_refined_soundex","pair":24,"parameters":[],"expected":"M0930"},{"id":"c00399","function":"ss_double_metaphone","pair":24,"parameters":[],"expected":"MR0"},{"id":"c00400","function":"ss_jaccard","pair":25,"parameters":[],"expected":0.0},{"id":"c00401","function":"ss_cosine","pair":25,"parameters":[],"expected":0.0},{"id":"c00402","function":"ss_sorensen_dice","pair":25,"parameters":[],"expected":0.0},{"id":"c00403","function":"ss_overlap_coefficient","pair":25,"parameters":[],"expected":0.0},{"id":"c00404","function":"ss_braun_blanquet","pair":25,"parameters":[],"expected":0.0},{"id":"c00405","function":"ss_monge_elkan","pair":25,"parameters":[],"expected":0.8400000000000001},{"id":"c00406","function":"ss_levenshtein","pair":25,"parameters":[],"expected":0.6666666666666667},{"id":"c00407","function":"ss_lcs_similarity","pair":25,"parameters":[],"expected":0.6666666666666666},{"id":"c00408","function":"ss_jaro","pair":25,"parameters":[],"expected":0.8222222222222223},{"id":"c00409","function":"ss_jaro_winkler","pair":25,"parameters":[],"expected":0.8400000000000001},{"id":"c00410","function":"ss_needleman_wunsch","pair":25,"parameters":[],"expected":0.6666666666666666},{"id":"c00411","function":"ss_smith_waterman","pair":25,"parameters":[],"expected":0.6},{"id":"c00412","function":"ss_affine_gap","pair":25,"parameters":[],"expected":0.33333333333333337},{"id":"c00413","function":"ss_soundex","pair":25,"parameters":[],"expected":"D500"},{"id":"c00414","function":"ss_refined_soundex","pair":25,"parameters":[],"expected":"D080"},{"id":"c00415","function":"ss_double_metaphone","pair":25,"parameters":[],"expected":"TN"},{"id":"c00416","function":"ss_jaccard","pair":26,"parameters":[],"expected":0.0},{"id":"c00417","function":"ss_cosine","pair":26,"parameters":[],"expected":0.0},{"id":"c00418","function":"ss_sorensen_dice","pair":26,"parameters":[],"expected":0.0},{"id":"c00419","function":"ss_overlap_coefficient","pair":26,"parameters":[],"expected":0.0},{"id":"c00420","function":"ss_braun_blanquet","pair":26,"parameters":[],"expected":0.0},{"id":"c00421","function":"ss_monge_elkan","pair":26,"parameters":[],"expected":0.8133333333333332},{"id":"c00422","function":"ss_levenshtein","pair":26,"parameters":[],"expected":0.5},{"id":"c00423","function":"ss_lcs_similarity","pair":26,"parameters":[],"expected":0.5},{"id":"c00424","function":"ss_jaro","pair":26,"parameters":[],"expected":0.7666666666666666},{"id":"c00425","function":"ss_jaro_winkler","pair":26,"parameters":[],"expected":0.8133333333333332},{"id":"c00426","function":"ss_needleman_wunsch","pair":26,"parameters":[],"expected":0.5},{"id":"c00427","function":"ss_smith_waterman","pair":26,"parameters":[],"expected":0.5},{"id":"c00428","function":"ss_affine_gap","pair":26,"parameters":[],"expected":0.0},{"id":"c00429","function":"ss_soundex","pair":26,"parameters":[],"expected":"D250"},{"id":"c00430","function":"ss_refined_soundex","pair":26,"parameters":[],"expected":"D0208"},{"id":"c00431","function":"ss_double_metaphone","pair":26,"parameters":[],"expected":"TKSN"},{"id":"c00432","function":"ss_jaccard","pair":27,"parameters":[],"expected":0.0},{"id":"c00433","function":"ss_cosine","pair":27,"parameters":[],"expected":0.0},{"id":"c00434","function":"ss_sorensen_dice","pair":27,"parameters":[],"expected":0.0},{"id":"c00435","function":"ss_overlap_coefficient","pair":27,"parameters":[],"expected":0.0},{"id":"c00436","function":"ss_braun_blanquet","pair":27,"parameters":[],"expected":0.0},{"id":"c00437","function":"ss_monge_elkan","pair":27,"parameters":[],"expected":0.746031746031746},{"id":"c00438","function":"ss_levenshtein","pair":27,"parameters":[],"expected":0.5714285714285714},{"id":"c00439","function":"ss_lcs_similarity","pair":27,"parameters":[],"expected":0.5714285714285714},{"id":"c00440","function":"ss_jaro","pair":27,"parameters":[],"expected":0.746031746031746},{"id":"c00441","function":"ss_jaro_winkler","pair":27,"parameters":[],"expected":0.746031746031746},{"id":"c00442","function":"ss_needleman_wunsch","pair":27,"parameters":[],"expected":0.5714285714285714},{"id":"c00443","function":"ss_smith_waterman","pair":27,"parameters":[],"expected":0.5833333333333334},{"id":"c00444","function":"ss_affine_gap","pair":27,"parameters":[],"expected":0.2857142857142857},{"id":"c00445","function":"ss_soundex","pair":27,"parameters":[],"expected":"K350"},{"id":"c00446","function":"ss_refined_soundex","pair":27,"parameters":[],"expected":"K0308"},{"id":"c00447","function":"ss_double_metaphone","pair":27,"parameters":[],"expected":"KTN"},{"id":"c00448","function":"ss_jaccard","pair":28,"parameters":[],"expected":0.0},{"id":"c00449","function":"ss_cosine","pair":28,"parameters":[],"expected":0.0},{"id":"c00450","function":"ss_sorensen_dice","pair":28,"parameters":[],"expected":0.0},{"id":"c00451","function":"ss_overlap_coefficient","pair":28,"parameters":[],"expected":0.0},{"id":"c00452","function":"ss_braun_blanquet","pair":28,"parameters":[],"expected":0.0},{"id":"c00453","function":"ss_monge_elkan","pair":28,"parameters":[],"expected":0.8933333333333333},{"id":"c00454","function":"ss_levenshtein","pair":28,"parameters":[],"expected":0.8},{"id":"c00455","function":"ss_lcs_similarity","pair":28,"parameters":[],"expected":0.8},{"id":"c00456","function":"ss_jaro","pair":28,"parameters":[],"expected":0.8666666666666667},{"id":"c00457","function":"ss_jaro_winkler","pair":28,"parameters":[],"expected":0.8933333333333333},{"id":"c00458","function":"ss_needleman_wunsch","pair":28,"parameters":[],"expected":0.8},{"id":"c00459","function":"ss_smith_waterman","pair":28,"parameters":[],"expected":0.7},{"id":"c00460","function":"ss_affine_gap","pair":28,"parameters":[],"expected":0.8},{"id":"c00461","function":"ss_soundex","pair":28,"parameters":[],"expected":"S162"},{"id":"c00462","function":"ss_refined_soundex","pair":28,"parameters":[],"expected":"S1092"},{"id":"c00463","function":"ss_double_metaphone","pair":28,"parameters":[],"expected":"SPRK"},{"id":"c00464","function":"ss_jaccard","pair":29,"parameters":[],"expected":0.0},{"id":"c00465","function":"ss_cosine","pair":29,"parameters":[],"expected":0.0},{"id":"c00466","function":"ss_sorensen_dice","pair":29,"parameters":[],"expected":0.0},{"id":"c00467","function":"ss_overlap_coefficient","pair":29,"parameters":[],"expected":0.0},{"id":"c00468","function":"ss_braun_blanquet","pair":29,"parameters":[],"expected":0.0},{"id":"c00469","function":"ss_monge_elkan","pair":29,"parameters":[],"expected":0.6499999999999999},{"id":"c00470","function":"ss_levenshtein","pair":29,"parameters":[],"expected":0.6666666666666667},{"id":"c00471","function":"ss_lcs_similarity","pair":29,"parameters":[],"expected":0.6666666666666666},{"id":"c00472","function":"ss_jaro","pair":29,"parameters":[],"expected":0.611111111111111},{"id":"c00473","function":"ss_jaro_winkler","pair":29,"parameters":[],"expected":0.6499999999999999},{"id":"c00474","function":"ss_needleman_wunsch","pair":29,"parameters":[],"expected":0.6666666666666666},{"id":"c00475","function":"ss_smith_waterman","pair":29,"parameters":[],"expected":0.75},{"id":"c00476","function":"ss_affine_gap","pair":29,"parameters":[],"expected":0.0},{"id":"c00477","function":"ss_soundex","pair":29,"parameters":[],"expected":"A120"},{"id":"c00478","function":"ss_refined_soundex","pair":29,"parameters":[],"expected":"A12"},{"id":"c00479","function":"ss_double_metaphone","pair":29,"parameters":[],"expected":"APK"},{"id":"c00480","function":"ss_jaccard","pair":30,"parameters":[],"expected":0.0},{"id":"c00481","function":"ss_cosine","pair":30,"parameters":[],"expected":0.0},{"id":"c00482","function":"ss_sorensen_dice","pair":30,"parameters":[],"expected":0.0},{"id":"c00483","function":"ss_overlap_coefficient","pair":30,"parameters":[],"expected":0.0},{"id":"c00484","function":"ss_braun_blanquet","pair":30,"parameters":[],"expected":0.0},{"id":"c00485","function":"ss_monge_elkan","pair":30,"parameters":[],"expected":0.8833333333333334},{"id":"c00486","function":"ss_levenshtein","pair":30,"parameters":[],"expected":0.75},{"id":"c00487","function":"ss_lcs_similarity","pair":30,"parameters":[],"expected":0.75},{"id":"c00488","function":"ss_jaro","pair":30,"parameters":[],"expected":0.8333333333333334},{"id":"c00489","function":"ss_jaro_winkler","pair":30,"parameters":[],"expected":0.8833333333333334},{"id":"c00490","function":"ss_needleman_wunsch","pair":30,"parameters":[],"expected":0.75},{"id":"c00491","function":"ss_smith_waterman","pair":30,"parameters":[],"expected":0.75},{"id":"c00492","function":"ss_affine_gap","pair":30,"parameters":[],"expected":0.75},{"id":"c00493","function":"ss_soundex","pair":30,"parameters":[],"expected":"C100"},{"id":"c00494","function":"ss_refined_soundex","pair":30,"parameters":[],"expected":"C05"},{"id":"c00495","function":"ss_double_metaphone","pair":30,"parameters":[],"expected":"KF"},{"id":"c00496","function":"ss_jaccard","pair":31,"parameters":[],"expected":0.0},{"id":"c00497","function":"ss_cosine","pair":31,"parameters":[],"expected":0.0},{"id":"c00498","function":"ss_sorensen_dice","pair":31,"parameters":[],"expected":0.0},{"id":"c00499","function":"ss_overlap_coefficient","pair":31,"parameters":[],"expected":0.0},{"id":"c00500","function":"ss_braun_blanquet","pair":31,"parameters":[],"expected":0.0},{"id":"c00501","function":"ss_monge_elkan","pair":31,"parameters":[],"expected":0.8483333333333334},{"id":"c00502","function":"ss_levenshtein","pair":31,"parameters":[],"expected":0.6},{"id":"c00503","function":"ss_lcs_similarity","pair":31,"parameters":[],"expected":0.6},{"id":"c00504","function":"ss_jaro","pair":31,"parameters":[],"expected":0.7833333333333333},{"id":"c00505","function":"ss_jaro_winkler","pair":31,"parameters":[],"expected":0.8483333333333334},{"id":"c00506","function":"ss_needleman_wunsch","pair":31,"parameters":[],"expected":0.6},{"id":"c00507","function":"ss_smith_waterman","pair":31,"parameters":[],"expected":0.75},{"id":"c00508","function":"ss_affine_gap","pair":31,"parameters":[],"expected":0.19999999999999996},{"id":"c00509","function":"ss_soundex","pair":31,"parameters":[],"expected":"C100"},{"id":"c00510","function":"ss_refined_soundex","pair":31,"parameters":[],"expected":"C050"},{"id":"c00511","function":"ss_double_metaphone","pair":31,"parameters":[],"expected":"KF"},{"id":"c00512","function":"ss_jaccard","pair":32,"parameters":[],"expected":0.0},{"id":"c00513","function":"ss_cosine","pair":32,"parameters":[],"expected":0.0},{"id":"c00514","function":"ss_sorensen_dice","pair":32,"parameters":[],"expected":0.0},{"id":"c00515","function":"ss_overlap_coefficient","pair":32,"parameters":[],"expected":0.0},{"id":"c00516","function":"ss_braun_blanquet","pair":32,"parameters":[],"expected":0.0},{"id":"c00517","function":"ss_monge_elkan","pair":32,"parameters":[],"expected":0.7999999999999999},{"id":"c00518","function":"ss_levenshtein","pair":32,"parameters":[],"expected":0.6666666666666667},{"id":"c00519","function":"ss_lcs_similarity","pair":32,"parameters":[],"expected":0.6666666666666666},{"id":"c00520","function":"ss_jaro","pair":32,"parameters":[],"expected":0.7777777777777777},{"id":"c00521","function":"ss_jaro_winkler","pair":32,"parameters":[],"expected":0.7999999999999999},{"id":"c00522","function":"ss_needleman_wunsch","pair":32,"parameters":[],"expected":0.6666666666666666},{"id":"c00523","function":"ss_smith_waterman","pair":32,"parameters":[],"expected":0.5833333333333334},{"id":"c00524","function":"ss_affine_gap","pair":32,"parameters":[],"expected":0.6666666666666667},{"id":"c00525","function":"ss_soundex","pair":32,"parameters":[],"expected":"R250"},{"id":"c00526","function":"ss_refined_soundex","pair":32,"parameters":[],"expected":"R208"},{"id":"c00527","function":"ss_double_metaphone","pair":32,"parameters":[],"expected":"RSM"},{"id":"c00528","function":"ss_jaccard","pair":33,"parameters":[],"expected":0.0},{"id":"c00529","function":"ss_cosine","pair":33,"parameters":[],"expected":0.0},{"id":"c00530","function":"ss_sorensen_dice","pair":33,"parameters":[],"expected":0.0},{"id":"c00531","function":"ss_overlap_coefficient","pair":33,"parameters":[],"expected":0.0},{"id":"c00532","function":"ss_braun_blanquet","pair":33,"parameters":[],"expected":0.0},{"id":"c00533","function":"ss_monge_elkan","pair":33,"parameters":[],"expected":0.8042857142857143},{"id":"c00534","function":"ss_levenshtein","pair":33,"parameters":[],"expected":0.7142857142857143},{"id":"c00535","function":"ss_lcs_similarity","pair":33,"parameters":[],"expected":0.7142857142857143},{"id":"c00536","function":"ss_jaro","pair":33,"parameters":[],"expected":0.7825396825396825},{"id":"c00537","function":"ss_jaro_winkler","pair":33,"parameters":[],"expected":0.8042857142857143},{"id":"c00538","function":"ss_needleman_wunsch","pair":33,"parameters":[],"expected":0.7142857142857143},{"id":"c00539","function":"ss_smith_waterman","pair":33,"parameters":[],"expected":0.6666666666666666},{"id":"c00540","function":"ss_affine_gap","pair":33,"parameters":[],"expected":0.4285714285714286},{"id":"c00541","function":"ss_soundex","pair":33,"parameters":[],"expected":"M460"},{"id":"c00542","function":"ss_refined_soundex","pair":33,"parameters":[],"expected":"M709"},{"id":"c00543","function":"ss_double_metaphone","pair":33,"parameters":[],"expected":"MLR"},{"id":"c00544","function":"ss_jaccard","pair":34,"parameters":[],"expected":1.0},{"id":"c00545","function":"ss_cosine","pair":34,"parameters":[],"expected":1.0},{"id":"c00546","function":"ss_sorensen_dice","pair":34,"parameters":[],"expected":1.0},{"id":"c00547","function":"ss_overlap_coefficient","pair":34,"parameters":[],"expected":1.0},{"id":"c00548","function":"ss_braun_blanquet","pair":34,"parameters":[],"expected":1.0},{"id":"c00549","function":"ss_monge_elkan","pair":34,"parameters":[],"expected":1.0},{"id":"c00550","function":"ss_levenshtein","pair":34,"parameters":[],"expected":1.0},{"id":"c00551","function":"ss_lcs_similarity","pair":34,"parameters":[],"expected":1.0},{"id":"c00552","function":"ss_jaro","pair":34,"parameters":[],"expected":1.0},{"id":"c00553","function":"ss_jaro_winkler","pair":34,"parameters":[],"expected":1.0},{"id":"c00554","function":"ss_needleman_wunsch","pair":34,"parameters":[],"expected":1.0},{"id":"c00555","function":"ss_smith_waterman","pair":34,"parameters":[],"expected":1.0},{"id":"c00556","function":"ss_affine_gap","pair":34,"parameters":[],"expected":1.0},{"id":"c00557","function":"ss_soundex","pair":34,"parameters":[],"expected":""},{"id":"c00558","function":"ss_refined_soundex","pair":34,"parameters":[],"expected":""},{"id":"c00559","function":"ss_double_metaphone","pair":34,"parameters":[],"expected":""},{"id":"c00560","function":"ss_jaccard","pair":35,"parameters":[],"expected":0.0},{"id":"c00561","function":"ss_cosine","pair":35,"parameters":[],"expected":0.0},{"id":"c00562","function":"ss_sorensen_dice","pair":35,"parameters":[],"expected":0.0},{"id":"c00563","function":"ss_overlap_coefficient","pair":35,"parameters":[],"expected":0.0},{"id":"c00564","function":"ss_braun_blanquet","pair":35,"parameters":[],"expected":0.0},{"id":"c00565","function":"ss_monge_elkan","pair":35,"parameters":[],"expected":0.0},{"id":"c00566","function":"ss_levenshtein","pair":35,"parameters":[],"expected":0.0},{"id":"c00567","function":"ss_lcs_similarity","pair":35,"parameters":[],"expected":0.0},{"id":"c00568","function":"ss_jaro","pair":35,"parameters":[],"expected":0.0},{"id":"c00569","function":"ss_jaro_winkler","pair":35,"parameters":[],"expected":0.0},{"id":"c00570","function":"ss_needleman_wunsch","pair":35,"parameters":[],"expected":0.0},{"id":"c00571","function":"ss_smith_waterman","pair":35,"parameters":[],"expected":0.0},{"id":"c00572","function":"ss_affine_gap","pair":35,"parameters":[],"expected":0.0},{"id":"c00573","function":"ss_soundex","pair":35,"parameters":[],"expected":""},{"id":"c00574","function":"ss_refined_soundex","pair":35,"parameters":[],"expected":""},{"id":"c00575","function":"ss_double_metaphone","pair":35,"parameters":[],"expected":""},{"id":"c00576","function":"ss_jaccard","pair":36,"parameters":[],"expected":0.5},{"id":"c00577","function":"ss_cosine","pair":36,"parameters":[],"expected":0.7071067811865475},{"id":"c00578","function":"ss_sorensen_dice","pair":36,"parameters":[],"expected":0.6666666666666666},{"id":"c00579","function":"ss_overlap_coefficient","pair":36,"parameters":[],"expected":1.0},{"id":"c00580","function":"ss_braun_blanquet","pair":36,"parameters":[],"expected":0.5},{"id":"c00581","function":"ss_monge_elkan","pair":36,"parameters":[],"expected":0.75},{"id":"c00582","function":"ss_levenshtein","pair":36,"parameters":[],"expected":0.5},{"id":"c00583","function":"ss_lcs_similarity","pair":36,"parameters":[],"expected":0.5},{"id":"c00584","function":"ss_jaro","pair":36,"parameters":[],"expected":0.8333333333333334},{"id":"c00585","function":"ss_jaro_winkler","pair":36,"parameters":[],"expected":0.8666666666666667},{"id":"c00586","function":"ss_needleman_wunsch","pair":36,"parameters":[],"expected":0.5},{"id":"c00587","function":"ss_smith_waterman","pair":36,"parameters":[],"expected":1.0},{"id":"c00588","function":"ss_affine_gap","pair":36,"parameters":[],"expected":0.0},{"id":"c00589","function":"ss_soundex","pair":36,"parameters":[],"expected":""},{"id":"c00590","function":"ss_refined_soundex","pair":36,"parameters":[],"expected":""},{"id":"c00591","function":"ss_double_metaphone","pair":36,"parameters":[],"expected":""},{"id":"c00592","function":"ss_jaccard","pair":37,"parameters":[],"expected":1.0},{"id":"c00593","function":"ss_cosine","pair":37,"parameters":[],"expected":1.0},{"id":"c00594","function":"ss_sorensen_dice","pair":37,"parameters":[],"expected":1.0},{"id":"c00595","function":"ss_overlap_coefficient","pair":37,"parameters":[],"expected":1.0},{"id":"c00596","function":"ss_braun_blanquet","pair":37,"parameters":[],"expected":1.0},{"id":"c00597","function":"ss_monge_elkan","pair":37,"parameters":[],"expected":1.0},{"id":"c00598","function":"ss_levenshtein","pair":37,"parameters":[],"expected":1.0},{"id":"c00599","function":"ss_lcs_similarity","pair":37,"parameters":[],"expected":1.0},{"id":"c00600","function":"ss_jaro","pair":37,"parameters":[],"expected":1.0},{"id":"c00601","function":"ss_jaro_winkler","pair":37,"parameters":[],"expected":1.0},{"id":"c00602","function":"ss_needleman_wunsch","pair":37,"parameters":[],"expected":1.0},{"id":"c00603","function":"ss_smith_waterman","pair":37,"parameters":[],"expected":1.0},{"id":"c00604","function":"ss_affine_gap","pair":37,"parameters":[],"expected":1.0},{"id":"c00605","function":"ss_soundex","pair":37,"parameters":[],"expected":""},{"id":"c00606","function":"ss_refined_soundex","pair":37,"parameters":[],"expected":""},{"id":"c00607","function":"ss_double_metaphone","pair":37,"parameters":[],"expected":""},{"id":"c00608","function":"ss_jaccard","pair":38,"parameters":[],"expected":0.0},{"id":"c00609","function":"ss_cosine","pair":38,"parameters":[],"expected":0.0},{"id":"c00610","function":"ss_sorensen_dice","pair":38,"parameters":[],"expected":0.0},{"id":"c00611","function":"ss_overlap_coefficient","pair":38,"parameters":[],"expected":0.0},{"id":"c00612","function":"ss_braun_blanquet","pair":38,"parameters":[],"expected":0.0},{"id":"c00613","function":"ss_monge_elkan","pair":38,"parameters":[],"expected":0.7},{"id":"c00614","function":"ss_levenshtein","pair":38,"parameters":[],"expected":0.5},{"id":"c00615","function":"ss_lcs_similarity","pair":38,"parameters":[],"expected":0.5},{"id":"c00616","function":"ss_jaro","pair":38,"parameters":[],"expected":0.6666666666666666},{"id":"c00617","function":"ss_jaro_winkler","pair":38,"parameters":[],"expected":0.7},{"id":"c00618","function":"ss_needleman_wunsch","pair":38,"parameters":[],"expected":0.5},{"id":"c00619","function":"ss_smith_waterman","pair":38,"parameters":[],"expected":0.5},{"id":"c00620","function":"ss_affine_gap","pair":38,"parameters":[],"expected":0.5},{"id":"c00621","function":"ss_soundex","pair":38,"parameters":[],"expected":""},{"id":"c00622","function":"ss_refined_soundex","pair":38,"parameters":[],"expected":""},{"id":"c00623","function":"ss_double_metaphone","pair":38,"parameters":[],"expected":""},{"id":"c00624","function":"ss_jaccard","pair":39,"parameters":[],"expected":0.3333333333333333},{"id":"c00625","function":"ss_cosine","pair":39,"parameters":[],"expected":0.5},{"id":"c00626","function":"ss_sorensen_dice","pair":39,"parameters":[],"expected":0.5},{"id":"c00627","function":"ss_overlap_coefficient","pair":39,"parameters":[],"expected":0.5},{"id":"c00628","function":"ss_braun_blanquet","pair":39,"parameters":[],"expected":0.5},{"id":"c00629","function":"ss_monge_elkan","pair":39,"parameters":[],"expected":0.6166666666666667},{"id":"c00630","function":"ss_levenshtein","pair":39,"parameters":[],"expected":0.5454545454545454},{"id":"c00631","function":"ss_lcs_similarity","pair":39,"parameters":[],"expected":0.5454545454545454},{"id":"c00632","function":"ss_jaro","pair":39,"parameters":[],"expected":0.7651515151515151},{"id":"c00633","function":"ss_jaro_winkler","pair":39,"parameters":[],"expected":0.8590909090909091},{"id":"c00634","function":"ss_needleman_wunsch","pair":39,"parameters":[],"expected":0.5454545454545454},{"id":"c00635","function":"ss_smith_waterman","pair":39,"parameters":[],"expected":0.75},{"id":"c00636","function":"ss_affine_gap","pair":39,"parameters":[],"expected":0.36363636363636365},{"id":"c00637","function":"ss_soundex","pair":39,"parameters":[],"expected":"H400"},{"id":"c00638","function":"ss_refined_soundex","pair":39,"parameters":[],"expected":"H70"},{"id":"c00639","function":"ss_double_metaphone","pair":39,"parameters":[],"expected":"HL"},{"id":"c00640","function":"ss_jaccard","pair":40,"parameters":[],"expected":0.3333333333333333},{"id":"c00641","function":"ss_cosine","pair":40,"parameters":[],"expected":0.5},{"id":"c00642","function":"ss_sorensen_dice","pair":40,"parameters":[],"expected":0.5},{"id":"c00643","function":"ss_overlap_coefficient","pair":40,"parameters":[],"expected":0.5},{"id":"c00644","function":"ss_braun_blanquet","pair":40,"parameters":[],"expected":0.5},{"id":"c00645","function":"ss_monge_elkan","pair":40,"parameters":[],"expected":0.5},{"id":"c00646","function":"ss_levenshtein","pair":40,"parameters":[],"expected":0.5},{"id":"c00647","function":"ss_lcs_similarity","pair":40,"parameters":[],"expected":0.5},{"id":"c00648","function":"ss_jaro","pair":40,"parameters":[],"expected":0.6851851851851851},{"id":"c00649","function":"ss_jaro_winkler","pair":40,"parameters":[],"expected":0.8111111111111111},{"id":"c00650","function":"ss_needleman_wunsch","pair":40,"parameters":[],"expected":0.5},{"id":"c00651","function":"ss_smith_waterman","pair":40,"parameters":[],"expected":0.5555555555555556},{"id":"c00652","function":"ss_affine_gap","pair":40,"parameters":[],"expected":0.30000000000000004},{"id":"c00653","function":"ss_soundex","pair":40,"parameters":[],"expected":"J500"},{"id":"c00654","function":"ss_refined_soundex","pair":40,"parameters":[],"expected":"J08"},{"id":"c00655","function":"ss_double_metaphone","pair":40,"parameters":[],"expected":"JN"},{"id":"c00656","function":"ss_jaccard","pair":41,"parameters":[],"expected":0.0},{"id":"c00657","function":"ss_cosine","pair":41,"parameters":[],"expected":0.0},{"id":"c00658","function":"ss_sorensen_dice","pair":41,"parameters":[],"expected":0.0},{"id":"c00659","function":"ss_overlap_coefficient","pair":41,"parameters":[],"expected":0.0},{"id":"c00660","function":"ss_braun_blanquet","pair":41,"parameters":[],"expected":0.0},{"id":"c00661","function":"ss_monge_elkan","pair":41,"parameters":[],"expected":0.7875000000000001},{"id":"c00662","function":"ss_levenshtein","pair":41,"parameters":[],"expected":0.9},{"id":"c00663","function":"ss_lcs_similarity","pair":41,"parameters":[],"expected":0.9},{"id":"c00664","function":"ss_jaro","pair":41,"parameters":[],"expected":0.9333333333333332},{"id":"c00665","function":"ss_jaro_winkler","pair":41,"parameters":[],"expected":0.96},{"id":"c00666","function":"ss_needleman_wunsch","pair":41,"parameters":[],"expected":0.9},{"id":"c00667","function":"ss_smith_waterman","pair":41,"parameters":[],"expected":0.85},{"id":"c00668","function":"ss_affine_gap","pair":41,"parameters":[],"expected":0.9},{"id":"c00669","function":"ss_soundex","pair":41,"parameters":[],"expected":"A411"},{"id":"c00670","function":"ss_refined_soundex","pair":41,"parameters":[],"expected":"A7101030"},{"id":"c00671","function":"ss_double_metaphone","pair":41,"parameters":[],"expected":"ALFP"},{"id":"c00672","function":"ss_jaccard","pair":42,"parameters":[],"expected":0.0},{"id":"c00673","function":"ss_cosine","pair":42,"parameters":[],"expected":0.0},{"id":"c00674","function":"ss_sorensen_dice","pair":42,"parameters":[],"expected":0.0},{"id":"c00675","function":"ss_overlap_coefficient","pair":42,"parameters":[],"expected":0.0},{"id":"c00676","function":"ss_braun_blanquet","pair":42,"parameters":[],"expected":0.0},{"id":"c00677","function":"ss_monge_elkan","pair":42,"parameters":[],"expected":0.7875000000000001},{"id":"c00678","function":"ss_levenshtein","pair":42,"parameters":[],"expected":0.9},{"id":"c00679","function":"ss_lcs_similarity","pair":42,"parameters":[],"expected":0.9},{"id":"c00680","function":"ss_jaro","pair":42,"parameters":[],"expected":0.9333333333333332},{"id":"c00681","function":"ss_jaro_winkler","pair":42,"parameters":[],"expected":0.96},{"id":"c00682","function":"ss_needleman_wunsch","pair":42,"parameters":[],"expected":0.9},{"id":"c00683","function":"ss_smith_waterman","pair":42,"parameters":[],"expected":0.85},{"id":"c00684","function":"ss_affine_gap","pair":42,"parameters":[],"expected":0.9},{"id":"c00685","function":"ss_soundex","pair":42,"parameters":[],"expected":"A411"},{"id":"c00686","function":"ss_refined_soundex","pair":42,"parameters":[],"expected":"A7101030"},{"id":"c00687","function":"ss_double_metaphone","pair":42,"parameters":[],"expected":"ALFP"},{"id":"c00688","function":"ss_jaccard","pair":43,"parameters":[],"expected":0.0},{"id":"c00689","function":"ss_cosine","pair":43,"parameters":[],"expected":0.0},{"id":"c00690","function":"ss_sorensen_dice","pair":43,"parameters":[],"expected":0.0},{"id":"c00691","function":"ss_overlap_coefficient","pair":43,"parameters":[],"expected":0.0},{"id":"c00692","function":"ss_braun_blanquet","pair":43,"parameters":[],"expected":0.0},{"id":"c00693","function":"ss_monge_elkan","pair":43,"parameters":[],"expected":0.96},{"id":"c00694","function":"ss_levenshtein","pair":43,"parameters":[],"expected":0.8},{"id":"c00695","function":"ss_lcs_similarity","pair":43,"parameters":[],"expected":0.8},{"id":"c00696","function":"ss_jaro","pair":43,"parameters":[],"expected":0.9333333333333332},{"id":"c00697","function":"ss_jaro_winkler","pair":43,"parameters":[],"expected":0.96},{"id":"c00698","function":"ss_needleman_wunsch","pair":43,"parameters":[],"expected":0.8},{"id":"c00699","function":"ss_smith_waterman","pair":43,"parameters":[],"expected":1.0},{"id":"c00700","function":"ss_affine_gap","pair":43,"parameters":[],"expected":0.4},{"id":"c00701","function":"ss_soundex","pair":43,"parameters":[],"expected":""},{"id":"c00702","function":"ss_refined_soundex","pair":43,"parameters":[],"expected":""},{"id":"c00703","function":"ss_double_metaphone","pair":43,"parameters":[],"expected":""},{"id":"c00704","function":"ss_jaccard","pair":44,"parameters":[],"expected":0.0},{"id":"c00705","function":"ss_cosine","pair":44,"parameters":[],"expected":0.0},{"id":"c00706","function":"ss_sorensen_dice","pair":44,"parameters":[],"expected":0.0},{"id":"c00707","function":"ss_overlap_coefficient","pair":44,"parameters":[],"expected":0.0},{"id":"c00708","function":"ss_braun_blanquet","pair":44,"parameters":[],"expected":0.0},{"id":"c00709","function":"ss_monge_elkan","pair":44,"parameters":[],"expected":0.7999999999999999},{"id":"c00710","function":"ss_levenshtein","pair":44,"parameters":[],"expected":0.6666666666666667},{"id":"c00711","function":"ss_lcs_similarity","pair":44,"parameters":[],"expected":0.6666666666666666},{"id":"c00712","function":"ss_jaro","pair":44,"parameters":[],"expected":0.7777777777777777},{"id":"c00713","function":"ss_jaro_winkler","pair":44,"parameters":[],"expected":0.7999999999999999},{"id":"c00714","function":"ss_needleman_wunsch","pair":44,"parameters":[],"expected":0.6666666666666666},{"id":"c00715","function":"ss_smith_waterman","pair":44,"parameters":[],"expected":0.5},{"id":"c00716","function":"ss_affine_gap","pair":44,"parameters":[],"expected":0.6666666666666667},{"id":"c00717","function":"ss_soundex","pair":44,"parameters":[],"expected":"A000"},{"id":"c00718","function":"ss_refined_soundex","pair":44,"parameters":[],"expected":"A"},{"id":"c00719","function":"ss_double_metaphone","pair":44,"parameters":[],"expected":"A"},{"id":"c00720","function":"ss_jaccard","pair":45,"parameters":[],"expected":0.0},{"id":"c00721","function":"ss_cosine","pair":45,"parameters":[],"expected":0.0},{"id":"c00722","function":"ss_sorensen_dice","pair":45,"parameters":[],"expected":0.0},{"id":"c00723","function":"ss_overlap_coefficient","pair":45,"parameters":[],"expected":0.0},{"id":"c00724","function":"ss_braun_blanquet","pair":45,"parameters":[],"expected":0.0},{"id":"c00725","function":"ss_monge_elkan","pair":45,"parameters":[],"expected":0.7},{"id":"c00726","function":"ss_levenshtein","pair":45,"parameters":[],"expected":0.5},{"id":"c00727","function":"ss_lcs_similarity","pair":45,"parameters":[],"expected":0.5},{"id":"c00728","function":"ss_jaro","pair":45,"parameters":[],"expected":0.6666666666666666},{"id":"c00729","function":"ss_jaro_winkler","pair":45,"parameters":[],"expected":0.7},{"id":"c00730","function":"ss_needleman_wunsch","pair":45,"parameters":[],"expected":0.5},{"id":"c00731","function":"ss_smith_waterman","pair":45,"parameters":[],"expected":0.5},{"id":"c00732","function":"ss_affine_gap","pair":45,"parameters":[],"expected":0.5},{"id":"c00733","function":"ss_soundex","pair":45,"parameters":[],"expected":""},{"id":"c00734","function":"ss_refined_soundex","pair":45,"parameters":[],"expected":""},{"id":"c00735","function":"ss_double_metaphone","pair":45,"parameters":[],"expected":""},{"id":"c00736","function":"ss_jaccard","pair":46,"parameters":[],"expected":0.0},{"id":"c00737","function":"ss_cosine","pair":46,"parameters":[],"expected":0.0},{"id":"c00738","function":"ss_sorensen_dice","pair":46,"parameters":[],"expected":0.0},{"id":"c00739","function":"ss_overlap_coefficient","pair":46,"parameters":[],"expected":0.0},{"id":"c00740","function":"ss_braun_blanquet","pair":46,"parameters":[],"expected":0.0},{"id":"c00741","function":"ss_monge_elkan","pair":46,"parameters":[],"expected":0.8666666666666667},{"id":"c00742","function":"ss_levenshtein","pair":46,"parameters":[],"expected":0.75},{"id":"c00743","function":"ss_lcs_similarity","pair":46,"parameters":[],"expected":0.75},{"id":"c00744","function":"ss_jaro","pair":46,"parameters":[],"expected":0.8333333333333334},{"id":"c00745","function":"ss_jaro_winkler","pair":46,"parameters":[],"expected":0.8666666666666667},{"id":"c00746","function":"ss_needleman_wunsch","pair":46,"parameters":[],"expected":0.75},{"id":"c00747","function":"ss_smith_waterman","pair":46,"parameters":[],"expected":0.625},{"id":"c00748","function":"ss_affine_gap","pair":46,"parameters":[],"expected":0.75},{"id":"c00749","function":"ss_soundex","pair":46,"parameters":[],"expected":"A000"},{"id":"c00750","function":"ss_refined_soundex","pair":46,"parameters":[],"expected":"A"},{"id":"c00751","function":"ss_double_metaphone","pair":46,"parameters":[],"expected":"A"},{"id":"c00752","function":"ss_jaccard","pair":47,"parameters":[],"expected":0.0},{"id":"c00753","function":"ss_cosine","pair":47,"parameters":[],"expected":0.0},{"id":"c00754","function":"ss_sorensen_dice","pair":47,"parameters":[],"expected":0.0},{"id":"c00755","function":"ss_overlap_coefficient","pair":47,"parameters":[],"expected":0.0},{"id":"c00756","function":"ss_braun_blanquet","pair":47,"parameters":[],"expected":0.0},{"id":"c00757","function":"ss_monge_elkan","pair":47,"parameters":[],"expected":0.7},{"id":"c00758","function":"ss_levenshtein","pair":47,"parameters":[],"expected":0.5},{"id":"c00759","function":"ss_lcs_similarity","pair":47,"parameters":[],"expected":0.5},{"id":"c00760","function":"ss_jaro","pair":47,"parameters":[],"expected":0.6666666666666666},{"id":"c00761","function":"ss_jaro_winkler","pair":47,"parameters":[],"expected":0.7},{"id":"c00762","function":"ss_needleman_wunsch","pair":47,"parameters":[],"expected":0.5},{"id":"c00763","function":"ss_smith_waterman","pair":47,"parameters":[],"expected":0.5},{"id":"c00764","function":"ss_affine_gap","pair":47,"parameters":[],"expected":0.5},{"id":"c00765","function":"ss_soundex","pair":47,"parameters":[],"expected":""},{"id":"c00766","function":"ss_refined_soundex","pair":47,"parameters":[],"expected":""},{"id":"c00767","function":"ss_double_metaphone","pair":47,"parameters":[],"expected":""},{"id":"c00768","function":"ss_jaccard","pair":48,"parameters":[],"expected":0.0},{"id":"c00769","function":"ss_cosine","pair":48,"parameters":[],"expected":0.0},{"id":"c00770","function":"ss_sorensen_dice","pair":48,"parameters":[],"expected":0.0},{"id":"c00771","function":"ss_overlap_coefficient","pair":48,"parameters":[],"expected":0.0},{"id":"c00772","function":"ss_braun_blanquet","pair":48,"parameters":[],"expected":0.0},{"id":"c00773","function":"ss_monge_elkan","pair":48,"parameters":[],"expected":0.0},{"id":"c00774","function":"ss_levenshtein","pair":48,"parameters":[],"expected":0.0},{"id":"c00775","function":"ss_lcs_similarity","pair":48,"parameters":[],"expected":0.0},{"id":"c00776","function":"ss_jaro","pair":48,"parameters":[],"expected":0.0},{"id":"c00777","function":"ss_jaro_winkler","pair":48,"parameters":[],"expected":0.0},{"id":"c00778","function":"ss_needleman_wunsch","pair":48,"parameters":[],"expected":0.0},{"id":"c00779","function":"ss_smith_waterman","pair":48,"parameters":[],"expected":0.0},{"id":"c00780","function":"ss_affine_gap","pair":48,"parameters":[],"expected":0.0},{"id":"c00781","function":"ss_soundex","pair":48,"parameters":[],"expected":"I200"},{"id":"c00782","function":"ss_refined_soundex","pair":48,"parameters":[],"expected":"I2"},{"id":"c00783","function":"ss_double_metaphone","pair":48,"parameters":[],"expected":"AS"},{"id":"c00784","function":"ss_jaccard","pair":49,"parameters":[],"expected":0.0},{"id":"c00785","function":"ss_cosine","pair":49,"parameters":[],"expected":0.0},{"id":"c00786","function":"ss_sorensen_dice","pair":49,"parameters":[],"expected":0.0},{"id":"c00787","function":"ss_overlap_coefficient","pair":49,"parameters":[],"expected":0.0},{"id":"c00788","function":"ss_braun_blanquet","pair":49,"parameters":[],"expected":0.0},{"id":"c00789","function":"ss_monge_elkan","pair":49,"parameters":[],"expected":0.7999999999999999},{"id":"c00790","function":"ss_levenshtein","pair":49,"parameters":[],"expected":0.6666666666666667},{"id":"c00791","function":"ss_lcs_similarity","pair":49,"parameters":[],"expected":0.6666666666666666},{"id":"c00792","function":"ss_jaro","pair":49,"parameters":[],"expected":0.7777777777777777},{"id":"c00793","function":"ss_jaro_winkler","pair":49,"parameters":[],"expected":0.7999999999999999},{"id":"c00794","function":"ss_needleman_wunsch","pair":49,"parameters":[],"expected":0.6666666666666666},{"id":"c00795","function":"ss_smith_waterman","pair":49,"parameters":[],"expected":0.5},{"id":"c00796","function":"ss_affine_gap","pair":49,"parameters":[],"expected":0.6666666666666667},{"id":"c00797","function":"ss_soundex","pair":49,"parameters":[],"expected":"R163"},{"id":"c00798","function":"ss_refined_soundex","pair":49,"parameters":[],"expected":"R01093"},{"id":"c00799","function":"ss_double_metaphone","pair":49,"parameters":[],"expected":"RPRT"},{"id":"c00800","function":"ss_jaccard","pair":50,"parameters":[],"expected":0.0},{"id":"c00801","function":"ss_cosine","pair":50,"parameters":[],"expected":0.0},{"id":"c00802","function":"ss_sorensen_dice","pair":50,"parameters":[],"expected":0.0},{"id":"c00803","function":"ss_overlap_coefficient","pair":50,"parameters":[],"expected":0.0},{"id":"c00804","function":"ss_braun_blanquet","pair":50,"parameters":[],"expected":0.0},{"id":"c00805","function":"ss_monge_elkan","pair":50,"parameters":[],"expected":0.6200000000000001},{"id":"c00806","function":"ss_levenshtein","pair":50,"parameters":[],"expected":0.33333333333333337},{"id":"c00807","function":"ss_lcs_similarity","pair":50,"parameters":[],"expected":0.3333333333333333},{"id":"c00808","function":"ss_jaro","pair":50,"parameters":[],"expected":0.5777777777777778},{"id":"c00809","function":"ss_jaro_winkler","pair":50,"parameters":[],"expected":0.6200000000000001},{"id":"c00810","function":"ss_needleman_wunsch","pair":50,"parameters":[],"expected":0.3333333333333333},{"id":"c00811","function":"ss_smith_waterman","pair":50,"parameters":[],"expected":0.3},{"id":"c00812","function":"ss_affine_gap","pair":50,"parameters":[],"expected":0.0},{"id":"c00813","function":"ss_soundex","pair":50,"parameters":[],"expected":"R150"},{"id":"c00814","function":"ss_refined_soundex","pair":50,"parameters":[],"expected":"R0108"},{"id":"c00815","function":"ss_double_metaphone","pair":50,"parameters":[],"expected":"RPN"},{"id":"c00816","function":"ss_jaccard","pair":51,"parameters":[],"expected":0.0},{"id":"c00817","function":"ss_cosine","pair":51,"parameters":[],"expected":0.0},{"id":"c00818","function":"ss_sorensen_dice","pair":51,"parameters":[],"expected":0.0},{"id":"c00819","function":"ss_overlap_coefficient","pair":51,"parameters":[],"expected":0.0},{"id":"c00820","function":"ss_braun_blanquet","pair":51,"parameters":[],"expected":0.0},{"id":"c00821","function":"ss_monge_elkan","pair":51,"parameters":[],"expected":0.95},{"id":"c00822","function":"ss_levenshtein","pair":51,"parameters":[],"expected":0.875},{"id":"c00823","function":"ss_lcs_similarity","pair":51,"parameters":[],"expected":0.875},{"id":"c00824","function":"ss_jaro","pair":51,"parameters":[],"expected":0.9166666666666666},{"id":"c00825","function":"ss_jaro_winkler","pair":51,"parameters":[],"expected":0.95},{"id":"c00826","function":"ss_needleman_wunsch","pair":51,"parameters":[],"expected":0.875},{"id":"c00827","function":"ss_smith_waterman","pair":51,"parameters":[],"expected":0.8125},{"id":"c00828","function":"ss_affine_gap","pair":51,"parameters":[],"expected":0.875},{"id":"c00829","function":"ss_soundex","pair":51,"parameters":[],"expected":"A261"},{"id":"c00830","function":"ss_refined_soundex","pair":51,"parameters":[],"expected":"A2029053"},{"id":"c00831","function":"ss_double_metaphone","pair":51,"parameters":[],"expected":"AXKR"},{"id":"c00832","function":"ss_jaccard","pair":52,"parameters":[],"expected":0.0},{"id":"c00833","function":"ss_cosine","pair":52,"parameters":[],"expected":0.0},{"id":"c00834","function":"ss_sorensen_dice","pair":52,"parameters":[],"expected":0.0},{"id":"c00835","function":"ss_overlap_coefficient","pair":52,"parameters":[],"expected":0.0},{"id":"c00836","function":"ss_braun_blanquet","pair":52,"parameters":[],"expected":0.0},{"id":"c00837","function":"ss_monge_elkan","pair":52,"parameters":[],"expected":0.0},{"id":"c00838","function":"ss_levenshtein","pair":52,"parameters":[],"expected":0.0},{"id":"c00839","function":"ss_lcs_similarity","pair":52,"parameters":[],"expected":0.0},{"id":"c00840","function":"ss_jaro","pair":52,"parameters":[],"expected":0.0},{"id":"c00841","function":"ss_jaro_winkler","pair":52,"parameters":[],"expected":0.0},{"id":"c00842","function":"ss_needleman_wunsch","pair":52,"parameters":[],"expected":0.0},{"id":"c00843","function":"ss_smith_waterman","pair":52,"parameters":[],"expected":0.0},{"id":"c00844","function":"ss_affine_gap","pair":52,"parameters":[],"expected":0.0},{"id":"c00845","function":"ss_soundex","pair":52,"parameters":[],"expected":"P236"},{"id":"c00846","function":"ss_refined_soundex","pair":52,"parameters":[],"expected":"P502309"},{"id":"c00847","function":"ss_double_metaphone","pair":52,"parameters":[],"expected":"PFST"},{"id":"c00848","function":"ss_jaccard","pair":53,"parameters":[],"expected":0.0},{"id":"c00849","function":"ss_cosine","pair":53,"parameters":[],"expected":0.0},{"id":"c00850","function":"ss_sorensen_dice","pair":53,"parameters":[],"expected":0.0},{"id":"c00851","function":"ss_overlap_coefficient","pair":53,"parameters":[],"expected":0.0},{"id":"c00852","function":"ss_braun_blanquet","pair":53,"parameters":[],"expected":0.0},{"id":"c00853","function":"ss_monge_elkan","pair":53,"parameters":[],"expected":0.6989285714285713},{"id":"c00854","function":"ss_levenshtein","pair":53,"parameters":[],"expected":0.4285714285714286},{"id":"c00855","function":"ss_lcs_similarity","pair":53,"parameters":[],"expected":0.5714285714285714},{"id":"c00856","function":"ss_jaro","pair":53,"parameters":[],"expected":0.6654761904761904},{"id":"c00857","function":"ss_jaro_winkler","pair":53,"parameters":[],"expected":0.6989285714285713},{"id":"c00858","function":"ss_needleman_wunsch","pair":53,"parameters":[],"expected":0.5},{"id":"c00859","function":"ss_smith_waterman","pair":53,"parameters":[],"expected":0.5},{"id":"c00860","function":"ss_affine_gap","pair":53,"parameters":[],"expected":0.1428571428571429},{"id":"c00861","function":"ss_soundex","pair":53,"parameters":[],"expected":"S530"},{"id":"c00862","function":"ss_refined_soundex","pair":53,"parameters":[],"expected":"S8030"},{"id":"c00863","function":"ss_double_metaphone","pair":53,"parameters":[],"expected":"SM0"},{"id":"c00864","function":"ss_jaccard","pair":54,"parameters":[],"expected":0.0},{"id":"c00865","function":"ss_cosine","pair":54,"parameters":[],"expected":0.0},{"id":"c00866","function":"ss_sorensen_dice","pair":54,"parameters":[],"expected":0.0},{"id":"c00867","function":"ss_overlap_coefficient","pair":54,"parameters":[],"expected":0.0},{"id":"c00868","function":"ss_braun_blanquet","pair":54,"parameters":[],"expected":0.0},{"id":"c00869","function":"ss_monge_elkan","pair":54,"parameters":[],"expected":0.7566666666666668},{"id":"c00870","function":"ss_levenshtein","pair":54,"parameters":[],"expected":0.5555555555555556},{"id":"c00871","function":"ss_lcs_similarity","pair":54,"parameters":[],"expected":0.5555555555555556},{"id":"c00872","function":"ss_jaro","pair":54,"parameters":[],"expected":0.7296296296296297},{"id":"c00873","function":"ss_jaro_winkler","pair":54,"parameters":[],"expected":0.7566666666666668},{"id":"c00874","function":"ss_needleman_wunsch","pair":54,"parameters":[],"expected":0.5555555555555556},{"id":"c00875","function":"ss_smith_waterman","pair":54,"parameters":[],"expected":0.5},{"id":"c00876","function":"ss_affine_gap","pair":54,"parameters":[],"expected":0.2222222222222222},{"id":"c00877","function":"ss_soundex","pair":54,"parameters":[],"expected":"S536"},{"id":"c00878","function":"ss_refined_soundex","pair":54,"parameters":[],"expected":"S080309"},{"id":"c00879","function":"ss_double_metaphone","pair":54,"parameters":[],"expected":"XNTR"},{"id":"c00880","function":"ss_jaccard","pair":55,"parameters":[],"expected":0.0},{"id":"c00881","function":"ss_cosine","pair":55,"parameters":[],"expected":0.0},{"id":"c00882","function":"ss_sorensen_dice","pair":55,"parameters":[],"expected":0.0},{"id":"c00883","function":"ss_overlap_coefficient","pair":55,"parameters":[],"expected":0.0},{"id":"c00884","function":"ss_braun_blanquet","pair":55,"parameters":[],"expected":0.0},{"id":"c00885","function":"ss_monge_elkan","pair":55,"parameters":[],"expected":0.5738095238095239},{"id":"c00886","function":"ss_levenshtein","pair":55,"parameters":[],"expected":0.30000000000000004},{"id":"c00887","function":"ss_lcs_similarity","pair":55,"parameters":[],"expected":0.4},{"id":"c00888","function":"ss_jaro","pair":55,"parameters":[],"expected":0.5738095238095239},{"id":"c00889","function":"ss_jaro_winkler","pair":55,"parameters":[],"expected":0.5738095238095239},{"id":"c00890","function":"ss_needleman_wunsch","pair":55,"parameters":[],"expected":0.3},{"id":"c00891","function":"ss_smith_waterman","pair":55,"parameters":[],"expected":0.2857142857142857},{"id":"c00892","function":"ss_affine_gap","pair":55,"parameters":[],"expected":0.09999999999999998},{"id":"c00893","function":"ss_soundex","pair":55,"parameters":[],"expected":"W252"},{"id":"c00894","function":"ss_refined_soundex","pair":55,"parameters":[],"expected":"W2086308"},{"id":"c00895","function":"ss_double_metaphone","pair":55,"parameters":[],"expected":"AXNK"},{"id":"c00896","function":"ss_jaccard","pair":56,"parameters":[],"expected":0.0},{"id":"c00897","function":"ss_cosine","pair":56,"parameters":[],"expected":0.0},{"id":"c00898","function":"ss_sorensen_dice","pair":56,"parameters":[],"expected":0.0},{"id":"c00899","function":"ss_overlap_coefficient","pair":56,"parameters":[],"expected":0.0},{"id":"c00900","function":"ss_braun_blanquet","pair":56,"parameters":[],"expected":0.0},{"id":"c00901","function":"ss_monge_elkan","pair":56,"parameters":[],"expected":0.8642857142857143},{"id":"c00902","function":"ss_levenshtein","pair":56,"parameters":[],"expected":0.7142857142857143},{"id":"c00903","function":"ss_lcs_similarity","pair":56,"parameters":[],"expected":0.7142857142857143},{"id":"c00904","function":"ss_jaro","pair":56,"parameters":[],"expected":0.8492063492063492},{"id":"c00905","function":"ss_jaro_winkler","pair":56,"parameters":[],"expected":0.8642857142857143},{"id":"c00906","function":"ss_needleman_wunsch","pair":56,"parameters":[],"expected":0.7142857142857143},{"id":"c00907","function":"ss_smith_waterman","pair":56,"parameters":[],"expected":0.6666666666666666},{"id":"c00908","function":"ss_affine_gap","pair":56,"parameters":[],"expected":0.4285714285714286},{"id":"c00909","function":"ss_soundex","pair":56,"parameters":[],"expected":"O165"},{"id":"c00910","function":"ss_refined_soundex","pair":56,"parameters":[],"expected":"O1908"},{"id":"c00911","function":"ss_double_metaphone","pair":56,"parameters":[],"expected":"APRN"},{"id":"c00912","function":"ss_jaccard","pair":57,"parameters":[],"expected":0.0},{"id":"c00913","function":"ss_cosine","pair":57,"parameters":[],"expected":0.0},{"id":"c00914","function":"ss_sorensen_dice","pair":57,"parameters":[],"expected":0.0},{"id":"c00915","function":"ss_overlap_coefficient","pair":57,"parameters":[],"expected":0.0},{"id":"c00916","function":"ss_braun_blanquet","pair":57,"parameters":[],"expected":0.0},{"id":"c00917","function":"ss_monge_elkan","pair":57,"parameters":[],"expected":0.49333333333333335},{"id":"c00918","function":"ss_levenshtein","pair":57,"parameters":[],"expected":0.2222222222222222},{"id":"c00919","function":"ss_lcs_similarity","pair":57,"parameters":[],"expected":0.2222222222222222},{"id":"c00920","function":"ss_jaro","pair":57,"parameters":[],"expected":0.43703703703703706},{"id":"c00921","function":"ss_jaro_winkler","pair":57,"parameters":[],"expected":0.49333333333333335},{"id":"c00922","function":"ss_needleman_wunsch","pair":57,"parameters":[],"expected":0.2222222222222222},{"id":"c00923","function":"ss_smith_waterman","pair":57,"parameters":[],"expected":0.2},{"id":"c00924","function":"ss_affine_gap","pair":57,"parameters":[],"expected":0.0},{"id":"c00925","function":"ss_soundex","pair":57,"parameters":[],"expected":"A200"},{"id":"c00926","function":"ss_refined_soundex","pair":57,"parameters":[],"expected":"A2"},{"id":"c00927","function":"ss_double_metaphone","pair":57,"parameters":[],"expected":"AS"},{"id":"c00928","function":"ss_jaccard","pair":58,"parameters":[],"expected":0.0},{"id":"c00929","function":"ss_cosine","pair":58,"parameters":[],"expected":0.0},{"id":"c00930","function":"ss_sorensen_dice","pair":58,"parameters":[],"expected":0.0},{"id":"c00931","function":"ss_overlap_coefficient","pair":58,"parameters":[],"expected":0.0},{"id":"c00932","function":"ss_braun_blanquet","pair":58,"parameters":[],"expected":0.0},{"id":"c00933","function":"ss_monge_elkan","pair":58,"parameters":[],"expected":0.0},{"id":"c00934","function":"ss_levenshtein","pair":58,"parameters":[],"expected":0.0},{"id":"c00935","function":"ss_lcs_similarity","pair":58,"parameters":[],"expected":0.0},{"id":"c00936","function":"ss_jaro","pair":58,"parameters":[],"expected":0.0},{"id":"c00937","function":"ss_jaro_winkler","pair":58,"parameters":[],"expected":0.0},{"id":"c00938","function":"ss_needleman_wunsch","pair":58,"parameters":[],"expected":0.0},{"id":"c00939","function":"ss_smith_waterman","pair":58,"parameters":[],"expected":0.0},{"id":"c00940","function":"ss_affine_gap","pair":58,"parameters":[],"expected":0.0},{"id":"c00941","function":"ss_soundex","pair":58,"parameters":[],"expected":""},{"id":"c00942","function":"ss_refined_soundex","pair":58,"parameters":[],"expected":""},{"id":"c00943","function":"ss_double_metaphone","pair":58,"parameters":[],"expected":""},{"id":"c00944","function":"ss_jaccard","pair":59,"parameters":[],"expected":0.0},{"id":"c00945","function":"ss_cosine","pair":59,"parameters":[],"expected":0.0},{"id":"c00946","function":"ss_sorensen_dice","pair":59,"parameters":[],"expected":0.0},{"id":"c00947","function":"ss_overlap_coefficient","pair":59,"parameters":[],"expected":0.0},{"id":"c00948","function":"ss_braun_blanquet","pair":59,"parameters":[],"expected":0.0},{"id":"c00949","function":"ss_monge_elkan","pair":59,"parameters":[],"expected":0.0},{"id":"c00950","function":"ss_levenshtein","pair":59,"parameters":[],"expected":0.0},{"id":"c00951","function":"ss_lcs_similarity","pair":59,"parameters":[],"expected":0.0},{"id":"c00952","function":"ss_jaro","pair":59,"parameters":[],"expected":0.0},{"id":"c00953","function":"ss_jaro_winkler","pair":59,"parameters":[],"expected":0.0},{"id":"c00954","function":"ss_needleman_wunsch","pair":59,"parameters":[],"expected":0.0},{"id":"c00955","function":"ss_smith_waterman","pair":59,"parameters":[],"expected":0.0},{"id":"c00956","function":"ss_affine_gap","pair":59,"parameters":[],"expected":0.0},{"id":"c00957","function":"ss_soundex","pair":59,"parameters":[],"expected":""},{"id":"c00958","function":"ss_refined_soundex","pair":59,"parameters":[],"expected":""},{"id":"c00959","function":"ss_double_metaphone","pair":59,"parameters":[],"expected":""},{"id":"c00960","function":"ss_jaccard","pair":60,"parameters":[],"expected":0.0},{"id":"c00961","function":"ss_cosine","pair":60,"parameters":[],"expected":0.0},{"id":"c00962","function":"ss_sorensen_dice","pair":60,"parameters":[],"expected":0.0},{"id":"c00963","function":"ss_overlap_coefficient","pair":60,"parameters":[],"expected":0.0},{"id":"c00964","function":"ss_braun_blanquet","pair":60,"parameters":[],"expected":0.0},{"id":"c00965","function":"ss_monge_elkan","pair":60,"parameters":[],"expected":0.0},{"id":"c00966","function":"ss_levenshtein","pair":60,"parameters":[],"expected":0.0},{"id":"c00967","function":"ss_lcs_similarity","pair":60,"parameters":[],"expected":0.0},{"id":"c00968","function":"ss_jaro","pair":60,"parameters":[],"expected":0.0},{"id":"c00969","function":"ss_jaro_winkler","pair":60,"parameters":[],"expected":0.0},{"id":"c00970","function":"ss_needleman_wunsch","pair":60,"parameters":[],"expected":0.0},{"id":"c00971","function":"ss_smith_waterman","pair":60,"parameters":[],"expected":0.0},{"id":"c00972","function":"ss_affine_gap","pair":60,"parameters":[],"expected":0.0},{"id":"c00973","function":"ss_soundex","pair":60,"parameters":[],"expected":""},{"id":"c00974","function":"ss_refined_soundex","pair":60,"parameters":[],"expected":""},{"id":"c00975","function":"ss_double_metaphone","pair":60,"parameters":[],"expected":""},{"id":"c00976","function":"ss_jaccard","pair":61,"parameters":[],"expected":0.0},{"id":"c00977","function":"ss_cosine","pair":61,"parameters":[],"expected":0.0},{"id":"c00978","function":"ss_sorensen_dice","pair":61,"parameters":[],"expected":0.0},{"id":"c00979","function":"ss_overlap_coefficient","pair":61,"parameters":[],"expected":0.0},{"id":"c00980","function":"ss_braun_blanquet","pair":61,"parameters":[],"expected":0.0},{"id":"c00981","function":"ss_monge_elkan","pair":61,"parameters":[],"expected":0.6499999999999999},{"id":"c00982","function":"ss_levenshtein","pair":61,"parameters":[],"expected":0.6666666666666667},{"id":"c00983","function":"ss_lcs_similarity","pair":61,"parameters":[],"expected":0.6666666666666666},{"id":"c00984","function":"ss_jaro","pair":61,"parameters":[],"expected":0.611111111111111},{"id":"c00985","function":"ss_jaro_winkler","pair":61,"parameters":[],"expected":0.6499999999999999},{"id":"c00986","function":"ss_needleman_wunsch","pair":61,"parameters":[],"expected":0.6666666666666666},{"id":"c00987","function":"ss_smith_waterman","pair":61,"parameters":[],"expected":0.75},{"id":"c00988","function":"ss_affine_gap","pair":61,"parameters":[],"expected":0.0},{"id":"c00989","function":"ss_soundex","pair":61,"parameters":[],"expected":"A100"},{"id":"c00990","function":"ss_refined_soundex","pair":61,"parameters":[],"expected":"A1"},{"id":"c00991","function":"ss_double_metaphone","pair":61,"parameters":[],"expected":"AP"},{"id":"c00992","function":"ss_jaccard","pair":62,"parameters":[],"expected":1.0},{"id":"c00993","function":"ss_cosine","pair":62,"parameters":[],"expected":1.0},{"id":"c00994","function":"ss_sorensen_dice","pair":62,"parameters":[],"expected":1.0},{"id":"c00995","function":"ss_overlap_coefficient","pair":62,"parameters":[],"expected":1.0},{"id":"c00996","function":"ss_braun_blanquet","pair":62,"parameters":[],"expected":1.0},{"id":"c00997","function":"ss_monge_elkan","pair":62,"parameters":[],"expected":1.0},{"id":"c00998","function":"ss_levenshtein","pair":62,"parameters":[],"expected":0.5},{"id":"c00999","function":"ss_lcs_similarity","pair":62,"parameters":[],"expected":0.5},{"id":"c01000","function":"ss_jaro","pair":62,"parameters":[],"expected":0.7222222222222222},{"id":"c01001","function":"ss_jaro_winkler","pair":62,"parameters":[],"expected":0.75},{"id":"c01002","function":"ss_needleman_wunsch","pair":62,"parameters":[],"expected":0.5},{"id":"c01003","function":"ss_smith_waterman","pair":62,"parameters":[],"expected":0.3333333333333333},{"id":"c01004","function":"ss_affine_gap","pair":62,"parameters":[],"expected":0.0},{"id":"c01005","function":"ss_soundex","pair":62,"parameters":[],"expected":"A100"},{"id":"c01006","function":"ss_refined_soundex","pair":62,"parameters":[],"expected":"A1"},{"id":"c01007","function":"ss_double_metaphone","pair":62,"parameters":[],"expected":"AP"},{"id":"c01008","function":"ss_jaccard","pair":63,"parameters":[],"expected":0.0},{"id":"c01009","function":"ss_cosine","pair":63,"parameters":[],"expected":0.0},{"id":"c01010","function":"ss_sorensen_dice","pair":63,"parameters":[],"expected":0.0},{"id":"c01011","function":"ss_overlap_coefficient","pair":63,"parameters":[],"expected":0.0},{"id":"c01012","function":"ss_braun_blanquet","pair":63,"parameters":[],"expected":0.0},{"id":"c01013","function":"ss_monge_elkan","pair":63,"parameters":[],"expected":0.8833333333333334},{"id":"c01014","function":"ss_levenshtein","pair":63,"parameters":[],"expected":0.5},{"id":"c01015","function":"ss_lcs_similarity","pair":63,"parameters":[],"expected":0.5},{"id":"c01016","function":"ss_jaro","pair":63,"parameters":[],"expected":0.8333333333333334},{"id":"c01017","function":"ss_jaro_winkler","pair":63,"parameters":[],"expected":0.8833333333333334},{"id":"c01018","function":"ss_needleman_wunsch","pair":63,"parameters":[],"expected":0.5},{"id":"c01019","function":"ss_smith_waterman","pair":63,"parameters":[],"expected":1.0},{"id":"c01020","function":"ss_affine_gap","pair":63,"parameters":[],"expected":0.16666666666666663},{"id":"c01021","function":"ss_soundex","pair":63,"parameters":[],"expected":"A121"},{"id":"c01022","function":"ss_refined_soundex","pair":63,"parameters":[],"expected":"A12012"},{"id":"c01023","function":"ss_double_metaphone","pair":63,"parameters":[],"expected":"APKP"},{"id":"c01024","function":"ss_jaccard","pair":64,"parameters":[],"expected":1.0},{"id":"c01025","function":"ss_cosine","pair":64,"parameters":[],"expected":1.0},{"id":"c01026","function":"ss_sorensen_dice","pair":64,"parameters":[],"expected":1.0},{"id":"c01027","function":"ss_overlap_coefficient","pair":64,"parameters":[],"expected":1.0},{"id":"c01028","function":"ss_braun_blanquet","pair":64,"parameters":[],"expected":1.0},{"id":"c01029","function":"ss_monge_elkan","pair":64,"parameters":[],"expected":1.0},{"id":"c01030","function":"ss_levenshtein","pair":64,"parameters":[],"expected":0.6666666666666667},{"id":"c01031","function":"ss_lcs_similarity","pair":64,"parameters":[],"expected":0.6666666666666666},{"id":"c01032","function":"ss_jaro","pair":64,"parameters":[],"expected":0.7777777777777777},{"id":"c01033","function":"ss_jaro_winkler","pair":64,"parameters":[],"expected":0.7999999999999999},{"id":"c01034","function":"ss_needleman_wunsch","pair":64,"parameters":[],"expected":0.6666666666666666},{"id":"c01035","function":"ss_smith_waterman","pair":64,"parameters":[],"expected":0.5},{"id":"c01036","function":"ss_affine_gap","pair":64,"parameters":[],"expected":0.6666666666666667},{"id":"c01037","function":"ss_soundex","pair":64,"parameters":[],"expected":"A100"},{"id":"c01038","function":"ss_refined_soundex","pair":64,"parameters":[],"expected":"A1"},{"id":"c01039","function":"ss_double_metaphone","pair":64,"parameters":[],"expected":"AP"},{"id":"c01040","function":"ss_jaccard","pair":65,"parameters":[],"expected":1.0},{"id":"c01041","function":"ss_cosine","pair":65,"parameters":[],"expected":1.0},{"id":"c01042","function":"ss_sorensen_dice","pair":65,"parameters":[],"expected":1.0},{"id":"c01043","function":"ss_overlap_coefficient","pair":65,"parameters":[],"expected":1.0},{"id":"c01044","function":"ss_braun_blanquet","pair":65,"parameters":[],"expected":1.0},{"id":"c01045","function":"ss_monge_elkan","pair":65,"parameters":[],"expected":1.0},{"id":"c01046","function":"ss_levenshtein","pair":65,"parameters":[],"expected":0.6666666666666667},{"id":"c01047","function":"ss_lcs_similarity","pair":65,"parameters":[],"expected":0.6666666666666666},{"id":"c01048","function":"ss_jaro","pair":65,"parameters":[],"expected":0.7777777777777777},{"id":"c01049","function":"ss_jaro_winkler","pair":65,"parameters":[],"expected":0.7999999999999999},{"id":"c01050","function":"ss_needleman_wunsch","pair":65,"parameters":[],"expected":0.6666666666666666},{"id":"c01051","function":"ss_smith_waterman","pair":65,"parameters":[],"expected":0.5},{"id":"c01052","function":"ss_affine_gap","pair":65,"parameters":[],"expected":0.6666666666666667},{"id":"c01053","function":"ss_soundex","pair":65,"parameters":[],"expected":"A100"},{"id":"c01054","function":"ss_refined_soundex","pair":65,"parameters":[],"expected":"A1"},{"id":"c01055","function":"ss_double_metaphone","pair":65,"parameters":[],"expected":"AP"},{"id":"c01056","function":"ss_jaccard","pair":66,"parameters":[],"expected":1.0},{"id":"c01057","function":"ss_cosine","pair":66,"parameters":[],"expected":1.0},{"id":"c01058","function":"ss_sorensen_dice","pair":66,"parameters":[],"expected":1.0},{"id":"c01059","function":"ss_overlap_coefficient","pair":66,"parameters":[],"expected":1.0},{"id":"c01060","function":"ss_braun_blanquet","pair":66,"parameters":[],"expected":1.0},{"id":"c01061","function":"ss_monge_elkan","pair":66,"parameters":[],"expected":1.0},{"id":"c01062","function":"ss_levenshtein","pair":66,"parameters":[],"expected":0.6666666666666667},{"id":"c01063","function":"ss_lcs_similarity","pair":66,"parameters":[],"expected":0.6666666666666666},{"id":"c01064","function":"ss_jaro","pair":66,"parameters":[],"expected":0.7777777777777777},{"id":"c01065","function":"ss_jaro_winkler","pair":66,"parameters":[],"expected":0.7999999999999999},{"id":"c01066","function":"ss_needleman_wunsch","pair":66,"parameters":[],"expected":0.6666666666666666},{"id":"c01067","function":"ss_smith_waterman","pair":66,"parameters":[],"expected":0.5},{"id":"c01068","function":"ss_affine_gap","pair":66,"parameters":[],"expected":0.6666666666666667},{"id":"c01069","function":"ss_soundex","pair":66,"parameters":[],"expected":"A100"},{"id":"c01070","function":"ss_refined_soundex","pair":66,"parameters":[],"expected":"A1"},{"id":"c01071","function":"ss_double_metaphone","pair":66,"parameters":[],"expected":"AP"},{"id":"c01072","function":"ss_jaccard","pair":67,"parameters":[],"expected":1.0},{"id":"c01073","function":"ss_cosine","pair":67,"parameters":[],"expected":1.0},{"id":"c01074","function":"ss_sorensen_dice","pair":67,"parameters":[],"expected":1.0},{"id":"c01075","function":"ss_overlap_coefficient","pair":67,"parameters":[],"expected":1.0},{"id":"c01076","function":"ss_braun_blanquet","pair":67,"parameters":[],"expected":1.0},{"id":"c01077","function":"ss_monge_elkan","pair":67,"parameters":[],"expected":1.0},{"id":"c01078","function":"ss_levenshtein","pair":67,"parameters":[],"expected":0.6666666666666667},{"id":"c01079","function":"ss_lcs_similarity","pair":67,"parameters":[],"expected":0.6666666666666666},{"id":"c01080","function":"ss_jaro","pair":67,"parameters":[],"expected":0.7777777777777777},{"id":"c01081","function":"ss_jaro_winkler","pair":67,"parameters":[],"expected":0.7999999999999999},{"id":"c01082","function":"ss_needleman_wunsch","pair":67,"parameters":[],"expected":0.6666666666666666},{"id":"c01083","function":"ss_smith_waterman","pair":67,"parameters":[],"expected":0.5},{"id":"c01084","function":"ss_affine_gap","pair":67,"parameters":[],"expected":0.6666666666666667},{"id":"c01085","function":"ss_soundex","pair":67,"parameters":[],"expected":"A100"},{"id":"c01086","function":"ss_refined_soundex","pair":67,"parameters":[],"expected":"A1"},{"id":"c01087","function":"ss_double_metaphone","pair":67,"parameters":[],"expected":"AP"},{"id":"c01088","function":"ss_jaccard","pair":68,"parameters":[],"expected":1.0},{"id":"c01089","function":"ss_cosine","pair":68,"parameters":[],"expected":1.0},{"id":"c01090","function":"ss_sorensen_dice","pair":68,"parameters":[],"expected":1.0},{"id":"c01091","function":"ss_overlap_coefficient","pair":68,"parameters":[],"expected":1.0},{"id":"c01092","function":"ss_braun_blanquet","pair":68,"parameters":[],"expected":1.0},{"id":"c01093","function":"ss_monge_elkan","pair":68,"parameters":[],"expected":1.0},{"id":"c01094","function":"ss_levenshtein","pair":68,"parameters":[],"expected":0.6666666666666667},{"id":"c01095","function":"ss_lcs_similarity","pair":68,"parameters":[],"expected":0.6666666666666666},{"id":"c01096","function":"ss_jaro","pair":68,"parameters":[],"expected":0.7777777777777777},{"id":"c01097","function":"ss_jaro_winkler","pair":68,"parameters":[],"expected":0.7999999999999999},{"id":"c01098","function":"ss_needleman_wunsch","pair":68,"parameters":[],"expected":0.6666666666666666},{"id":"c01099","function":"ss_smith_waterman","pair":68,"parameters":[],"expected":0.5},{"id":"c01100","function":"ss_affine_gap","pair":68,"parameters":[],"expected":0.6666666666666667},{"id":"c01101","function":"ss_soundex","pair":68,"parameters":[],"expected":"A100"},{"id":"c01102","function":"ss_refined_soundex","pair":68,"parameters":[],"expected":"A1"},{"id":"c01103","function":"ss_double_metaphone","pair":68,"parameters":[],"expected":"AP"},{"id":"c01104","function":"ss_jaccard","pair":69,"parameters":[],"expected":1.0},{"id":"c01105","function":"ss_cosine","pair":69,"parameters":[],"expected":1.0},{"id":"c01106","function":"ss_sorensen_dice","pair":69,"parameters":[],"expected":1.0},{"id":"c01107","function":"ss_overlap_coefficient","pair":69,"parameters":[],"expected":1.0},{"id":"c01108","function":"ss_braun_blanquet","pair":69,"parameters":[],"expected":1.0},{"id":"c01109","function":"ss_monge_elkan","pair":69,"parameters":[],"expected":1.0},{"id":"c01110","function":"ss_levenshtein","pair":69,"parameters":[],"expected":0.6666666666666667},{"id":"c01111","function":"ss_lcs_similarity","pair":69,"parameters":[],"expected":0.6666666666666666},{"id":"c01112","function":"ss_jaro","pair":69,"parameters":[],"expected":0.7777777777777777},{"id":"c01113","function":"ss_jaro_winkler","pair":69,"parameters":[],"expected":0.7999999999999999},{"id":"c01114","function":"ss_needleman_wunsch","pair":69,"parameters":[],"expected":0.6666666666666666},{"id":"c01115","function":"ss_smith_waterman","pair":69,"parameters":[],"expected":0.5},{"id":"c01116","function":"ss_affine_gap","pair":69,"parameters":[],"expected":0.6666666666666667},{"id":"c01117","function":"ss_soundex","pair":69,"parameters":[],"expected":"A100"},{"id":"c01118","function":"ss_refined_soundex","pair":69,"parameters":[],"expected":"A1"},{"id":"c01119","function":"ss_double_metaphone","pair":69,"parameters":[],"expected":"AP"},{"id":"c01120","function":"ss_jaccard","pair":70,"parameters":[],"expected":1.0},{"id":"c01121","function":"ss_cosine","pair":70,"parameters":[],"expected":1.0},{"id":"c01122","function":"ss_sorensen_dice","pair":70,"parameters":[],"expected":1.0},{"id":"c01123","function":"ss_overlap_coefficient","pair":70,"parameters":[],"expected":1.0},{"id":"c01124","function":"ss_braun_blanquet","pair":70,"parameters":[],"expected":1.0},{"id":"c01125","function":"ss_monge_elkan","pair":70,"parameters":[],"expected":1.0},{"id":"c01126","function":"ss_levenshtein","pair":70,"parameters":[],"expected":0.6666666666666667},{"id":"c01127","function":"ss_lcs_similarity","pair":70,"parameters":[],"expected":0.6666666666666666},{"id":"c01128","function":"ss_jaro","pair":70,"parameters":[],"expected":0.7777777777777777},{"id":"c01129","function":"ss_jaro_winkler","pair":70,"parameters":[],"expected":0.7999999999999999},{"id":"c01130","function":"ss_needleman_wunsch","pair":70,"parameters":[],"expected":0.6666666666666666},{"id":"c01131","function":"ss_smith_waterman","pair":70,"parameters":[],"expected":0.5},{"id":"c01132","function":"ss_affine_gap","pair":70,"parameters":[],"expected":0.6666666666666667},{"id":"c01133","function":"ss_soundex","pair":70,"parameters":[],"expected":"A100"},{"id":"c01134","function":"ss_refined_soundex","pair":70,"parameters":[],"expected":"A1"},{"id":"c01135","function":"ss_double_metaphone","pair":70,"parameters":[],"expected":"AP"},{"id":"c01136","function":"ss_jaccard","pair":71,"parameters":[],"expected":1.0},{"id":"c01137","function":"ss_cosine","pair":71,"parameters":[],"expected":1.0},{"id":"c01138","function":"ss_sorensen_dice","pair":71,"parameters":[],"expected":1.0},{"id":"c01139","function":"ss_overlap_coefficient","pair":71,"parameters":[],"expected":1.0},{"id":"c01140","function":"ss_braun_blanquet","pair":71,"parameters":[],"expected":1.0},{"id":"c01141","function":"ss_monge_elkan","pair":71,"parameters":[],"expected":1.0},{"id":"c01142","function":"ss_levenshtein","pair":71,"parameters":[],"expected":0.6666666666666667},{"id":"c01143","function":"ss_lcs_similarity","pair":71,"parameters":[],"expected":0.6666666666666666},{"id":"c01144","function":"ss_jaro","pair":71,"parameters":[],"expected":0.7777777777777777},{"id":"c01145","function":"ss_jaro_winkler","pair":71,"parameters":[],"expected":0.7999999999999999},{"id":"c01146","function":"ss_needleman_wunsch","pair":71,"parameters":[],"expected":0.6666666666666666},{"id":"c01147","function":"ss_smith_waterman","pair":71,"parameters":[],"expected":0.5},{"id":"c01148","function":"ss_affine_gap","pair":71,"parameters":[],"expected":0.6666666666666667},{"id":"c01149","function":"ss_soundex","pair":71,"parameters":[],"expected":"A100"},{"id":"c01150","function":"ss_refined_soundex","pair":71,"parameters":[],"expected":"A1"},{"id":"c01151","function":"ss_double_metaphone","pair":71,"parameters":[],"expected":"AP"},{"id":"c01152","function":"ss_jaccard","pair":72,"parameters":[],"expected":1.0},{"id":"c01153","function":"ss_cosine","pair":72,"parameters":[],"expected":1.0},{"id":"c01154","function":"ss_sorensen_dice","pair":72,"parameters":[],"expected":1.0},{"id":"c01155","function":"ss_overlap_coefficient","pair":72,"parameters":[],"expected":1.0},{"id":"c01156","function":"ss_braun_blanquet","pair":72,"parameters":[],"expected":1.0},{"id":"c01157","function":"ss_monge_elkan","pair":72,"parameters":[],"expected":1.0},{"id":"c01158","function":"ss_levenshtein","pair":72,"parameters":[],"expected":0.6666666666666667},{"id":"c01159","function":"ss_lcs_similarity","pair":72,"parameters":[],"expected":0.6666666666666666},{"id":"c01160","function":"ss_jaro","pair":72,"parameters":[],"expected":0.7777777777777777},{"id":"c01161","function":"ss_jaro_winkler","pair":72,"parameters":[],"expected":0.7999999999999999},{"id":"c01162","function":"ss_needleman_wunsch","pair":72,"parameters":[],"expected":0.6666666666666666},{"id":"c01163","function":"ss_smith_waterman","pair":72,"parameters":[],"expected":0.5},{"id":"c01164","function":"ss_affine_gap","pair":72,"parameters":[],"expected":0.6666666666666667},{"id":"c01165","function":"ss_soundex","pair":72,"parameters":[],"expected":"A100"},{"id":"c01166","function":"ss_refined_soundex","pair":72,"parameters":[],"expected":"A1"},{"id":"c01167","function":"ss_double_metaphone","pair":72,"parameters":[],"expected":"AP"},{"id":"c01168","function":"ss_jaccard","pair":73,"parameters":[],"expected":1.0},{"id":"c01169","function":"ss_cosine","pair":73,"parameters":[],"expected":1.0},{"id":"c01170","function":"ss_sorensen_dice","pair":73,"parameters":[],"expected":1.0},{"id":"c01171","function":"ss_overlap_coefficient","pair":73,"parameters":[],"expected":1.0},{"id":"c01172","function":"ss_braun_blanquet","pair":73,"parameters":[],"expected":1.0},{"id":"c01173","function":"ss_monge_elkan","pair":73,"parameters":[],"expected":1.0},{"id":"c01174","function":"ss_levenshtein","pair":73,"parameters":[],"expected":1.0},{"id":"c01175","function":"ss_lcs_similarity","pair":73,"parameters":[],"expected":1.0},{"id":"c01176","function":"ss_jaro","pair":73,"parameters":[],"expected":1.0},{"id":"c01177","function":"ss_jaro_winkler","pair":73,"parameters":[],"expected":1.0},{"id":"c01178","function":"ss_needleman_wunsch","pair":73,"parameters":[],"expected":1.0},{"id":"c01179","function":"ss_smith_waterman","pair":73,"parameters":[],"expected":1.0},{"id":"c01180","function":"ss_affine_gap","pair":73,"parameters":[],"expected":1.0},{"id":"c01181","function":"ss_soundex","pair":73,"parameters":[],"expected":"A100"},{"id":"c01182","function":"ss_refined_soundex","pair":73,"parameters":[],"expected":"A1"},{"id":"c01183","function":"ss_double_metaphone","pair":73,"parameters":[],"expected":"AP"},{"id":"c01184","function":"ss_jaccard","pair":74,"parameters":[],"expected":1.0},{"id":"c01185","function":"ss_cosine","pair":74,"parameters":[],"expected":1.0},{"id":"c01186","function":"ss_sorensen_dice","pair":74,"parameters":[],"expected":1.0},{"id":"c01187","function":"ss_overlap_coefficient","pair":74,"parameters":[],"expected":1.0},{"id":"c01188","function":"ss_braun_blanquet","pair":74,"parameters":[],"expected":1.0},{"id":"c01189","function":"ss_monge_elkan","pair":74,"parameters":[],"expected":1.0},{"id":"c01190","function":"ss_levenshtein","pair":74,"parameters":[],"expected":0.6666666666666667},{"id":"c01191","function":"ss_lcs_similarity","pair":74,"parameters":[],"expected":0.6666666666666666},{"id":"c01192","function":"ss_jaro","pair":74,"parameters":[],"expected":0.7777777777777777},{"id":"c01193","function":"ss_jaro_winkler","pair":74,"parameters":[],"expected":0.7999999999999999},{"id":"c01194","function":"ss_needleman_wunsch","pair":74,"parameters":[],"expected":0.6666666666666666},{"id":"c01195","function":"ss_smith_waterman","pair":74,"parameters":[],"expected":0.5},{"id":"c01196","function":"ss_affine_gap","pair":74,"parameters":[],"expected":0.6666666666666667},{"id":"c01197","function":"ss_soundex","pair":74,"parameters":[],"expected":"A100"},{"id":"c01198","function":"ss_refined_soundex","pair":74,"parameters":[],"expected":"A1"},{"id":"c01199","function":"ss_double_metaphone","pair":74,"parameters":[],"expected":"AP"},{"id":"c01200","function":"ss_jaccard","pair":75,"parameters":[],"expected":1.0},{"id":"c01201","function":"ss_cosine","pair":75,"parameters":[],"expected":1.0},{"id":"c01202","function":"ss_sorensen_dice","pair":75,"parameters":[],"expected":1.0},{"id":"c01203","function":"ss_overlap_coefficient","pair":75,"parameters":[],"expected":1.0},{"id":"c01204","function":"ss_braun_blanquet","pair":75,"parameters":[],"expected":1.0},{"id":"c01205","function":"ss_monge_elkan","pair":75,"parameters":[],"expected":1.0},{"id":"c01206","function":"ss_levenshtein","pair":75,"parameters":[],"expected":0.6666666666666667},{"id":"c01207","function":"ss_lcs_similarity","pair":75,"parameters":[],"expected":0.6666666666666666},{"id":"c01208","function":"ss_jaro","pair":75,"parameters":[],"expected":0.7777777777777777},{"id":"c01209","function":"ss_jaro_winkler","pair":75,"parameters":[],"expected":0.7999999999999999},{"id":"c01210","function":"ss_needleman_wunsch","pair":75,"parameters":[],"expected":0.6666666666666666},{"id":"c01211","function":"ss_smith_waterman","pair":75,"parameters":[],"expected":0.5},{"id":"c01212","function":"ss_affine_gap","pair":75,"parameters":[],"expected":0.6666666666666667},{"id":"c01213","function":"ss_soundex","pair":75,"parameters":[],"expected":"A100"},{"id":"c01214","function":"ss_refined_soundex","pair":75,"parameters":[],"expected":"A1"},{"id":"c01215","function":"ss_double_metaphone","pair":75,"parameters":[],"expected":"AP"},{"id":"c01216","function":"ss_jaccard","pair":76,"parameters":[],"expected":1.0},{"id":"c01217","function":"ss_cosine","pair":76,"parameters":[],"expected":1.0},{"id":"c01218","function":"ss_sorensen_dice","pair":76,"parameters":[],"expected":1.0},{"id":"c01219","function":"ss_overlap_coefficient","pair":76,"parameters":[],"expected":1.0},{"id":"c01220","function":"ss_braun_blanquet","pair":76,"parameters":[],"expected":1.0},{"id":"c01221","function":"ss_monge_elkan","pair":76,"parameters":[],"expected":1.0},{"id":"c01222","function":"ss_levenshtein","pair":76,"parameters":[],"expected":0.6666666666666667},{"id":"c01223","function":"ss_lcs_similarity","pair":76,"parameters":[],"expected":0.6666666666666666},{"id":"c01224","function":"ss_jaro","pair":76,"parameters":[],"expected":0.7777777777777777},{"id":"c01225","function":"ss_jaro_winkler","pair":76,"parameters":[],"expected":0.7999999999999999},{"id":"c01226","function":"ss_needleman_wunsch","pair":76,"parameters":[],"expected":0.6666666666666666},{"id":"c01227","function":"ss_smith_waterman","pair":76,"parameters":[],"expected":0.5},{"id":"c01228","function":"ss_affine_gap","pair":76,"parameters":[],"expected":0.6666666666666667},{"id":"c01229","function":"ss_soundex","pair":76,"parameters":[],"expected":"A100"},{"id":"c01230","function":"ss_refined_soundex","pair":76,"parameters":[],"expected":"A1"},{"id":"c01231","function":"ss_double_metaphone","pair":76,"parameters":[],"expected":"AP"},{"id":"c01232","function":"ss_jaccard","pair":77,"parameters":[],"expected":1.0},{"id":"c01233","function":"ss_cosine","pair":77,"parameters":[],"expected":1.0},{"id":"c01234","function":"ss_sorensen_dice","pair":77,"parameters":[],"expected":1.0},{"id":"c01235","function":"ss_overlap_coefficient","pair":77,"parameters":[],"expected":1.0},{"id":"c01236","function":"ss_braun_blanquet","pair":77,"parameters":[],"expected":1.0},{"id":"c01237","function":"ss_monge_elkan","pair":77,"parameters":[],"expected":1.0},{"id":"c01238","function":"ss_levenshtein","pair":77,"parameters":[],"expected":0.6666666666666667},{"id":"c01239","function":"ss_lcs_similarity","pair":77,"parameters":[],"expected":0.6666666666666666},{"id":"c01240","function":"ss_jaro","pair":77,"parameters":[],"expected":0.7777777777777777},{"id":"c01241","function":"ss_jaro_winkler","pair":77,"parameters":[],"expected":0.7999999999999999},{"id":"c01242","function":"ss_needleman_wunsch","pair":77,"parameters":[],"expected":0.6666666666666666},{"id":"c01243","function":"ss_smith_waterman","pair":77,"parameters":[],"expected":0.5},{"id":"c01244","function":"ss_affine_gap","pair":77,"parameters":[],"expected":0.6666666666666667},{"id":"c01245","function":"ss_soundex","pair":77,"parameters":[],"expected":"A100"},{"id":"c01246","function":"ss_refined_soundex","pair":77,"parameters":[],"expected":"A1"},{"id":"c01247","function":"ss_double_metaphone","pair":77,"parameters":[],"expected":"AP"},{"id":"c01248","function":"ss_jaccard","pair":78,"parameters":[],"expected":1.0},{"id":"c01249","function":"ss_cosine","pair":78,"parameters":[],"expected":1.0},{"id":"c01250","function":"ss_sorensen_dice","pair":78,"parameters":[],"expected":1.0},{"id":"c01251","function":"ss_overlap_coefficient","pair":78,"parameters":[],"expected":1.0},{"id":"c01252","function":"ss_braun_blanquet","pair":78,"parameters":[],"expected":1.0},{"id":"c01253","function":"ss_monge_elkan","pair":78,"parameters":[],"expected":1.0},{"id":"c01254","function":"ss_levenshtein","pair":78,"parameters":[],"expected":0.6666666666666667},{"id":"c01255","function":"ss_lcs_similarity","pair":78,"parameters":[],"expected":0.6666666666666666},{"id":"c01256","function":"ss_jaro","pair":78,"parameters":[],"expected":0.7777777777777777},{"id":"c01257","function":"ss_jaro_winkler","pair":78,"parameters":[],"expected":0.7999999999999999},{"id":"c01258","function":"ss_needleman_wunsch","pair":78,"parameters":[],"expected":0.6666666666666666},{"id":"c01259","function":"ss_smith_waterman","pair":78,"parameters":[],"expected":0.5},{"id":"c01260","function":"ss_affine_gap","pair":78,"parameters":[],"expected":0.6666666666666667},{"id":"c01261","function":"ss_soundex","pair":78,"parameters":[],"expected":"A100"},{"id":"c01262","function":"ss_refined_soundex","pair":78,"parameters":[],"expected":"A1"},{"id":"c01263","function":"ss_double_metaphone","pair":78,"parameters":[],"expected":"AP"},{"id":"c01264","function":"ss_jaccard","pair":79,"parameters":[],"expected":1.0},{"id":"c01265","function":"ss_cosine","pair":79,"parameters":[],"expected":1.0},{"id":"c01266","function":"ss_sorensen_dice","pair":79,"parameters":[],"expected":1.0},{"id":"c01267","function":"ss_overlap_coefficient","pair":79,"parameters":[],"expected":1.0},{"id":"c01268","function":"ss_braun_blanquet","pair":79,"parameters":[],"expected":1.0},{"id":"c01269","function":"ss_monge_elkan","pair":79,"parameters":[],"expected":1.0},{"id":"c01270","function":"ss_levenshtein","pair":79,"parameters":[],"expected":0.6666666666666667},{"id":"c01271","function":"ss_lcs_similarity","pair":79,"parameters":[],"expected":0.6666666666666666},{"id":"c01272","function":"ss_jaro","pair":79,"parameters":[],"expected":0.7777777777777777},{"id":"c01273","function":"ss_jaro_winkler","pair":79,"parameters":[],"expected":0.7999999999999999},{"id":"c01274","function":"ss_needleman_wunsch","pair":79,"parameters":[],"expected":0.6666666666666666},{"id":"c01275","function":"ss_smith_waterman","pair":79,"parameters":[],"expected":0.5},{"id":"c01276","function":"ss_affine_gap","pair":79,"parameters":[],"expected":0.6666666666666667},{"id":"c01277","function":"ss_soundex","pair":79,"parameters":[],"expected":"A100"},{"id":"c01278","function":"ss_refined_soundex","pair":79,"parameters":[],"expected":"A1"},{"id":"c01279","function":"ss_double_metaphone","pair":79,"parameters":[],"expected":"AP"},{"id":"c01280","function":"ss_jaccard","pair":80,"parameters":[],"expected":1.0},{"id":"c01281","function":"ss_cosine","pair":80,"parameters":[],"expected":1.0},{"id":"c01282","function":"ss_sorensen_dice","pair":80,"parameters":[],"expected":1.0},{"id":"c01283","function":"ss_overlap_coefficient","pair":80,"parameters":[],"expected":1.0},{"id":"c01284","function":"ss_braun_blanquet","pair":80,"parameters":[],"expected":1.0},{"id":"c01285","function":"ss_monge_elkan","pair":80,"parameters":[],"expected":1.0},{"id":"c01286","function":"ss_levenshtein","pair":80,"parameters":[],"expected":0.6666666666666667},{"id":"c01287","function":"ss_lcs_similarity","pair":80,"parameters":[],"expected":0.6666666666666666},{"id":"c01288","function":"ss_jaro","pair":80,"parameters":[],"expected":0.7777777777777777},{"id":"c01289","function":"ss_jaro_winkler","pair":80,"parameters":[],"expected":0.7999999999999999},{"id":"c01290","function":"ss_needleman_wunsch","pair":80,"parameters":[],"expected":0.6666666666666666},{"id":"c01291","function":"ss_smith_waterman","pair":80,"parameters":[],"expected":0.5},{"id":"c01292","function":"ss_affine_gap","pair":80,"parameters":[],"expected":0.6666666666666667},{"id":"c01293","function":"ss_soundex","pair":80,"parameters":[],"expected":"A100"},{"id":"c01294","function":"ss_refined_soundex","pair":80,"parameters":[],"expected":"A1"},{"id":"c01295","function":"ss_double_metaphone","pair":80,"parameters":[],"expected":"AP"},{"id":"c01296","function":"ss_jaccard","pair":81,"parameters":[],"expected":1.0},{"id":"c01297","function":"ss_cosine","pair":81,"parameters":[],"expected":1.0},{"id":"c01298","function":"ss_sorensen_dice","pair":81,"parameters":[],"expected":1.0},{"id":"c01299","function":"ss_overlap_coefficient","pair":81,"parameters":[],"expected":1.0},{"id":"c01300","function":"ss_braun_blanquet","pair":81,"parameters":[],"expected":1.0},{"id":"c01301","function":"ss_monge_elkan","pair":81,"parameters":[],"expected":1.0},{"id":"c01302","function":"ss_levenshtein","pair":81,"parameters":[],"expected":0.6666666666666667},{"id":"c01303","function":"ss_lcs_similarity","pair":81,"parameters":[],"expected":0.6666666666666666},{"id":"c01304","function":"ss_jaro","pair":81,"parameters":[],"expected":0.7777777777777777},{"id":"c01305","function":"ss_jaro_winkler","pair":81,"parameters":[],"expected":0.7999999999999999},{"id":"c01306","function":"ss_needleman_wunsch","pair":81,"parameters":[],"expected":0.6666666666666666},{"id":"c01307","function":"ss_smith_waterman","pair":81,"parameters":[],"expected":0.5},{"id":"c01308","function":"ss_affine_gap","pair":81,"parameters":[],"expected":0.6666666666666667},{"id":"c01309","function":"ss_soundex","pair":81,"parameters":[],"expected":"A100"},{"id":"c01310","function":"ss_refined_soundex","pair":81,"parameters":[],"expected":"A1"},{"id":"c01311","function":"ss_double_metaphone","pair":81,"parameters":[],"expected":"AP"},{"id":"c01312","function":"ss_jaccard","pair":82,"parameters":[],"expected":1.0},{"id":"c01313","function":"ss_cosine","pair":82,"parameters":[],"expected":1.0},{"id":"c01314","function":"ss_sorensen_dice","pair":82,"parameters":[],"expected":1.0},{"id":"c01315","function":"ss_overlap_coefficient","pair":82,"parameters":[],"expected":1.0},{"id":"c01316","function":"ss_braun_blanquet","pair":82,"parameters":[],"expected":1.0},{"id":"c01317","function":"ss_monge_elkan","pair":82,"parameters":[],"expected":1.0},{"id":"c01318","function":"ss_levenshtein","pair":82,"parameters":[],"expected":0.6666666666666667},{"id":"c01319","function":"ss_lcs_similarity","pair":82,"parameters":[],"expected":0.6666666666666666},{"id":"c01320","function":"ss_jaro","pair":82,"parameters":[],"expected":0.7777777777777777},{"id":"c01321","function":"ss_jaro_winkler","pair":82,"parameters":[],"expected":0.7999999999999999},{"id":"c01322","function":"ss_needleman_wunsch","pair":82,"parameters":[],"expected":0.6666666666666666},{"id":"c01323","function":"ss_smith_waterman","pair":82,"parameters":[],"expected":0.5},{"id":"c01324","function":"ss_affine_gap","pair":82,"parameters":[],"expected":0.6666666666666667},{"id":"c01325","function":"ss_soundex","pair":82,"parameters":[],"expected":"A100"},{"id":"c01326","function":"ss_refined_soundex","pair":82,"parameters":[],"expected":"A1"},{"id":"c01327","function":"ss_double_metaphone","pair":82,"parameters":[],"expected":"AP"},{"id":"c01328","function":"ss_jaccard","pair":83,"parameters":[],"expected":1.0},{"id":"c01329","function":"ss_cosine","pair":83,"parameters":[],"expected":1.0},{"id":"c01330","function":"ss_sorensen_dice","pair":83,"parameters":[],"expected":1.0},{"id":"c01331","function":"ss_overlap_coefficient","pair":83,"parameters":[],"expected":1.0},{"id":"c01332","function":"ss_braun_blanquet","pair":83,"parameters":[],"expected":1.0},{"id":"c01333","function":"ss_monge_elkan","pair":83,"parameters":[],"expected":1.0},{"id":"c01334","function":"ss_levenshtein","pair":83,"parameters":[],"expected":0.6666666666666667},{"id":"c01335","function":"ss_lcs_similarity","pair":83,"parameters":[],"expected":0.6666666666666666},{"id":"c01336","function":"ss_jaro","pair":83,"parameters":[],"expected":0.7777777777777777},{"id":"c01337","function":"ss_jaro_winkler","pair":83,"parameters":[],"expected":0.7999999999999999},{"id":"c01338","function":"ss_needleman_wunsch","pair":83,"parameters":[],"expected":0.6666666666666666},{"id":"c01339","function":"ss_smith_waterman","pair":83,"parameters":[],"expected":0.5},{"id":"c01340","function":"ss_affine_gap","pair":83,"parameters":[],"expected":0.6666666666666667},{"id":"c01341","function":"ss_soundex","pair":83,"parameters":[],"expected":"A100"},{"id":"c01342","function":"ss_refined_soundex","pair":83,"parameters":[],"expected":"A1"},{"id":"c01343","function":"ss_double_metaphone","pair":83,"parameters":[],"expected":"AP"},{"id":"c01344","function":"ss_jaccard","pair":84,"parameters":[],"expected":1.0},{"id":"c01345","function":"ss_cosine","pair":84,"parameters":[],"expected":1.0},{"id":"c01346","function":"ss_sorensen_dice","pair":84,"parameters":[],"expected":1.0},{"id":"c01347","function":"ss_overlap_coefficient","pair":84,"parameters":[],"expected":1.0},{"id":"c01348","function":"ss_braun_blanquet","pair":84,"parameters":[],"expected":1.0},{"id":"c01349","function":"ss_monge_elkan","pair":84,"parameters":[],"expected":1.0},{"id":"c01350","function":"ss_levenshtein","pair":84,"parameters":[],"expected":0.6666666666666667},{"id":"c01351","function":"ss_lcs_similarity","pair":84,"parameters":[],"expected":0.6666666666666666},{"id":"c01352","function":"ss_jaro","pair":84,"parameters":[],"expected":0.7777777777777777},{"id":"c01353","function":"ss_jaro_winkler","pair":84,"parameters":[],"expected":0.7999999999999999},{"id":"c01354","function":"ss_needleman_wunsch","pair":84,"parameters":[],"expected":0.6666666666666666},{"id":"c01355","function":"ss_smith_waterman","pair":84,"parameters":[],"expected":0.5},{"id":"c01356","function":"ss_affine_gap","pair":84,"parameters":[],"expected":0.6666666666666667},{"id":"c01357","function":"ss_soundex","pair":84,"parameters":[],"expected":"A100"},{"id":"c01358","function":"ss_refined_soundex","pair":84,"parameters":[],"expected":"A1"},{"id":"c01359","function":"ss_double_metaphone","pair":84,"parameters":[],"expected":"AP"},{"id":"c01360","function":"ss_jaccard","pair":85,"parameters":[],"expected":1.0},{"id":"c01361","function":"ss_cosine","pair":85,"parameters":[],"expected":1.0},{"id":"c01362","function":"ss_sorensen_dice","pair":85,"parameters":[],"expected":1.0},{"id":"c01363","function":"ss_overlap_coefficient","pair":85,"parameters":[],"expected":1.0},{"id":"c01364","function":"ss_braun_blanquet","pair":85,"parameters":[],"expected":1.0},{"id":"c01365","function":"ss_monge_elkan","pair":85,"parameters":[],"expected":1.0},{"id":"c01366","function":"ss_levenshtein","pair":85,"parameters":[],"expected":0.6666666666666667},{"id":"c01367","function":"ss_lcs_similarity","pair":85,"parameters":[],"expected":0.6666666666666666},{"id":"c01368","function":"ss_jaro","pair":85,"parameters":[],"expected":0.7777777777777777},{"id":"c01369","function":"ss_jaro_winkler","pair":85,"parameters":[],"expected":0.7999999999999999},{"id":"c01370","function":"ss_needleman_wunsch","pair":85,"parameters":[],"expected":0.6666666666666666},{"id":"c01371","function":"ss_smith_waterman","pair":85,"parameters":[],"expected":0.5},{"id":"c01372","function":"ss_affine_gap","pair":85,"parameters":[],"expected":0.6666666666666667},{"id":"c01373","function":"ss_soundex","pair":85,"parameters":[],"expected":"A100"},{"id":"c01374","function":"ss_refined_soundex","pair":85,"parameters":[],"expected":"A1"},{"id":"c01375","function":"ss_double_metaphone","pair":85,"parameters":[],"expected":"AP"},{"id":"c01376","function":"ss_jaccard","pair":86,"parameters":[],"expected":1.0},{"id":"c01377","function":"ss_cosine","pair":86,"parameters":[],"expected":1.0},{"id":"c01378","function":"ss_sorensen_dice","pair":86,"parameters":[],"expected":1.0},{"id":"c01379","function":"ss_overlap_coefficient","pair":86,"parameters":[],"expected":1.0},{"id":"c01380","function":"ss_braun_blanquet","pair":86,"parameters":[],"expected":1.0},{"id":"c01381","function":"ss_monge_elkan","pair":86,"parameters":[],"expected":1.0},{"id":"c01382","function":"ss_levenshtein","pair":86,"parameters":[],"expected":0.6666666666666667},{"id":"c01383","function":"ss_lcs_similarity","pair":86,"parameters":[],"expected":0.6666666666666666},{"id":"c01384","function":"ss_jaro","pair":86,"parameters":[],"expected":0.7777777777777777},{"id":"c01385","function":"ss_jaro_winkler","pair":86,"parameters":[],"expected":0.7999999999999999},{"id":"c01386","function":"ss_needleman_wunsch","pair":86,"parameters":[],"expected":0.6666666666666666},{"id":"c01387","function":"ss_smith_waterman","pair":86,"parameters":[],"expected":0.5},{"id":"c01388","function":"ss_affine_gap","pair":86,"parameters":[],"expected":0.6666666666666667},{"id":"c01389","function":"ss_soundex","pair":86,"parameters":[],"expected":"A100"},{"id":"c01390","function":"ss_refined_soundex","pair":86,"parameters":[],"expected":"A1"},{"id":"c01391","function":"ss_double_metaphone","pair":86,"parameters":[],"expected":"AP"},{"id":"c01392","function":"ss_jaccard","pair":87,"parameters":[],"expected":1.0},{"id":"c01393","function":"ss_cosine","pair":87,"parameters":[],"expected":1.0},{"id":"c01394","function":"ss_sorensen_dice","pair":87,"parameters":[],"expected":1.0},{"id":"c01395","function":"ss_overlap_coefficient","pair":87,"parameters":[],"expected":1.0},{"id":"c01396","function":"ss_braun_blanquet","pair":87,"parameters":[],"expected":1.0},{"id":"c01397","function":"ss_monge_elkan","pair":87,"parameters":[],"expected":1.0},{"id":"c01398","function":"ss_levenshtein","pair":87,"parameters":[],"expected":0.6666666666666667},{"id":"c01399","function":"ss_lcs_similarity","pair":87,"parameters":[],"expected":0.6666666666666666},{"id":"c01400","function":"ss_jaro","pair":87,"parameters":[],"expected":0.7777777777777777},{"id":"c01401","function":"ss_jaro_winkler","pair":87,"parameters":[],"expected":0.7999999999999999},{"id":"c01402","function":"ss_needleman_wunsch","pair":87,"parameters":[],"expected":0.6666666666666666},{"id":"c01403","function":"ss_smith_waterman","pair":87,"parameters":[],"expected":0.5},{"id":"c01404","function":"ss_affine_gap","pair":87,"parameters":[],"expected":0.6666666666666667},{"id":"c01405","function":"ss_soundex","pair":87,"parameters":[],"expected":"A100"},{"id":"c01406","function":"ss_refined_soundex","pair":87,"parameters":[],"expected":"A1"},{"id":"c01407","function":"ss_double_metaphone","pair":87,"parameters":[],"expected":"AP"},{"id":"c01408","function":"ss_jaccard","pair":88,"parameters":[],"expected":1.0},{"id":"c01409","function":"ss_cosine","pair":88,"parameters":[],"expected":1.0},{"id":"c01410","function":"ss_sorensen_dice","pair":88,"parameters":[],"expected":1.0},{"id":"c01411","function":"ss_overlap_coefficient","pair":88,"parameters":[],"expected":1.0},{"id":"c01412","function":"ss_braun_blanquet","pair":88,"parameters":[],"expected":1.0},{"id":"c01413","function":"ss_monge_elkan","pair":88,"parameters":[],"expected":1.0},{"id":"c01414","function":"ss_levenshtein","pair":88,"parameters":[],"expected":0.6666666666666667},{"id":"c01415","function":"ss_lcs_similarity","pair":88,"parameters":[],"expected":0.6666666666666666},{"id":"c01416","function":"ss_jaro","pair":88,"parameters":[],"expected":0.7777777777777777},{"id":"c01417","function":"ss_jaro_winkler","pair":88,"parameters":[],"expected":0.7999999999999999},{"id":"c01418","function":"ss_needleman_wunsch","pair":88,"parameters":[],"expected":0.6666666666666666},{"id":"c01419","function":"ss_smith_waterman","pair":88,"parameters":[],"expected":0.5},{"id":"c01420","function":"ss_affine_gap","pair":88,"parameters":[],"expected":0.6666666666666667},{"id":"c01421","function":"ss_soundex","pair":88,"parameters":[],"expected":"A100"},{"id":"c01422","function":"ss_refined_soundex","pair":88,"parameters":[],"expected":"A1"},{"id":"c01423","function":"ss_double_metaphone","pair":88,"parameters":[],"expected":"AP"},{"id":"c01424","function":"ss_jaccard","pair":89,"parameters":[],"expected":0.0},{"id":"c01425","function":"ss_cosine","pair":89,"parameters":[],"expected":0.0},{"id":"c01426","function":"ss_sorensen_dice","pair":89,"parameters":[],"expected":0.0},{"id":"c01427","function":"ss_overlap_coefficient","pair":89,"parameters":[],"expected":0.0},{"id":"c01428","function":"ss_braun_blanquet","pair":89,"parameters":[],"expected":0.0},{"id":"c01429","function":"ss_monge_elkan","pair":89,"parameters":[],"expected":0.6},{"id":"c01430","function":"ss_levenshtein","pair":89,"parameters":[],"expected":0.6666666666666667},{"id":"c01431","function":"ss_lcs_similarity","pair":89,"parameters":[],"expected":0.6666666666666666},{"id":"c01432","function":"ss_jaro","pair":89,"parameters":[],"expected":0.7777777777777777},{"id":"c01433","function":"ss_jaro_winkler","pair":89,"parameters":[],"expected":0.7999999999999999},{"id":"c01434","function":"ss_needleman_wunsch","pair":89,"parameters":[],"expected":0.6666666666666666},{"id":"c01435","function":"ss_smith_waterman","pair":89,"parameters":[],"expected":0.5},{"id":"c01436","function":"ss_affine_gap","pair":89,"parameters":[],"expected":0.6666666666666667},{"id":"c01437","function":"ss_soundex","pair":89,"parameters":[],"expected":"A100"},{"id":"c01438","function":"ss_refined_soundex","pair":89,"parameters":[],"expected":"A1"},{"id":"c01439","function":"ss_double_metaphone","pair":89,"parameters":[],"expected":"AP"},{"id":"c01440","function":"ss_jaccard","pair":90,"parameters":[],"expected":0.0},{"id":"c01441","function":"ss_cosine","pair":90,"parameters":[],"expected":0.0},{"id":"c01442","function":"ss_sorensen_dice","pair":90,"parameters":[],"expected":0.0},{"id":"c01443","function":"ss_overlap_coefficient","pair":90,"parameters":[],"expected":0.0},{"id":"c01444","function":"ss_braun_blanquet","pair":90,"parameters":[],"expected":0.0},{"id":"c01445","function":"ss_monge_elkan","pair":90,"parameters":[],"expected":0.6},{"id":"c01446","function":"ss_levenshtein","pair":90,"parameters":[],"expected":0.6666666666666667},{"id":"c01447","function":"ss_lcs_similarity","pair":90,"parameters":[],"expected":0.6666666666666666},{"id":"c01448","function":"ss_jaro","pair":90,"parameters":[],"expected":0.7777777777777777},{"id":"c01449","function":"ss_jaro_winkler","pair":90,"parameters":[],"expected":0.7999999999999999},{"id":"c01450","function":"ss_needleman_wunsch","pair":90,"parameters":[],"expected":0.6666666666666666},{"id":"c01451","function":"ss_smith_waterman","pair":90,"parameters":[],"expected":0.5},{"id":"c01452","function":"ss_affine_gap","pair":90,"parameters":[],"expected":0.6666666666666667},{"id":"c01453","function":"ss_soundex","pair":90,"parameters":[],"expected":"A100"},{"id":"c01454","function":"ss_refined_soundex","pair":90,"parameters":[],"expected":"A1"},{"id":"c01455","function":"ss_double_metaphone","pair":90,"parameters":[],"expected":"AP"},{"id":"c01456","function":"ss_jaccard","pair":91,"parameters":[],"expected":0.0},{"id":"c01457","function":"ss_cosine","pair":91,"parameters":[],"expected":0.0},{"id":"c01458","function":"ss_sorensen_dice","pair":91,"parameters":[],"expected":0.0},{"id":"c01459","function":"ss_overlap_coefficient","pair":91,"parameters":[],"expected":0.0},{"id":"c01460","function":"ss_braun_blanquet","pair":91,"parameters":[],"expected":0.0},{"id":"c01461","function":"ss_monge_elkan","pair":91,"parameters":[],"expected":0.6},{"id":"c01462","function":"ss_levenshtein","pair":91,"parameters":[],"expected":0.6666666666666667},{"id":"c01463","function":"ss_lcs_similarity","pair":91,"parameters":[],"expected":0.6666666666666666},{"id":"c01464","function":"ss_jaro","pair":91,"parameters":[],"expected":0.7777777777777777},{"id":"c01465","function":"ss_jaro_winkler","pair":91,"parameters":[],"expected":0.7999999999999999},{"id":"c01466","function":"ss_needleman_wunsch","pair":91,"parameters":[],"expected":0.6666666666666666},{"id":"c01467","function":"ss_smith_waterman","pair":91,"parameters":[],"expected":0.5},{"id":"c01468","function":"ss_affine_gap","pair":91,"parameters":[],"expected":0.6666666666666667},{"id":"c01469","function":"ss_soundex","pair":91,"parameters":[],"expected":"A100"},{"id":"c01470","function":"ss_refined_soundex","pair":91,"parameters":[],"expected":"A1"},{"id":"c01471","function":"ss_double_metaphone","pair":91,"parameters":[],"expected":"AP"},{"id":"c01472","function":"ss_jaccard","pair":92,"parameters":[],"expected":0.0},{"id":"c01473","function":"ss_cosine","pair":92,"parameters":[],"expected":0.0},{"id":"c01474","function":"ss_sorensen_dice","pair":92,"parameters":[],"expected":0.0},{"id":"c01475","function":"ss_overlap_coefficient","pair":92,"parameters":[],"expected":0.0},{"id":"c01476","function":"ss_braun_blanquet","pair":92,"parameters":[],"expected":0.0},{"id":"c01477","function":"ss_monge_elkan","pair":92,"parameters":[],"expected":0.6},{"id":"c01478","function":"ss_levenshtein","pair":92,"parameters":[],"expected":0.6666666666666667},{"id":"c01479","function":"ss_lcs_similarity","pair":92,"parameters":[],"expected":0.6666666666666666},{"id":"c01480","function":"ss_jaro","pair":92,"parameters":[],"expected":0.7777777777777777},{"id":"c01481","function":"ss_jaro_winkler","pair":92,"parameters":[],"expected":0.7999999999999999},{"id":"c01482","function":"ss_needleman_wunsch","pair":92,"parameters":[],"expected":0.6666666666666666},{"id":"c01483","function":"ss_smith_waterman","pair":92,"parameters":[],"expected":0.5},{"id":"c01484","function":"ss_affine_gap","pair":92,"parameters":[],"expected":0.6666666666666667},{"id":"c01485","function":"ss_soundex","pair":92,"parameters":[],"expected":"A100"},{"id":"c01486","function":"ss_refined_soundex","pair":92,"parameters":[],"expected":"A1"},{"id":"c01487","function":"ss_double_metaphone","pair":92,"parameters":[],"expected":"AP"},{"id":"c01488","function":"ss_jaccard","pair":93,"parameters":[],"expected":0.0},{"id":"c01489","function":"ss_cosine","pair":93,"parameters":[],"expected":0.0},{"id":"c01490","function":"ss_sorensen_dice","pair":93,"parameters":[],"expected":0.0},{"id":"c01491","function":"ss_overlap_coefficient","pair":93,"parameters":[],"expected":0.0},{"id":"c01492","function":"ss_braun_blanquet","pair":93,"parameters":[],"expected":0.0},{"id":"c01493","function":"ss_monge_elkan","pair":93,"parameters":[],"expected":0.6},{"id":"c01494","function":"ss_levenshtein","pair":93,"parameters":[],"expected":0.6666666666666667},{"id":"c01495","function":"ss_lcs_similarity","pair":93,"parameters":[],"expected":0.6666666666666666},{"id":"c01496","function":"ss_jaro","pair":93,"parameters":[],"expected":0.7777777777777777},{"id":"c01497","function":"ss_jaro_winkler","pair":93,"parameters":[],"expected":0.7999999999999999},{"id":"c01498","function":"ss_needleman_wunsch","pair":93,"parameters":[],"expected":0.6666666666666666},{"id":"c01499","function":"ss_smith_waterman","pair":93,"parameters":[],"expected":0.5},{"id":"c01500","function":"ss_affine_gap","pair":93,"parameters":[],"expected":0.6666666666666667},{"id":"c01501","function":"ss_soundex","pair":93,"parameters":[],"expected":"A100"},{"id":"c01502","function":"ss_refined_soundex","pair":93,"parameters":[],"expected":"A1"},{"id":"c01503","function":"ss_double_metaphone","pair":93,"parameters":[],"expected":"AP"},{"id":"c01504","function":"ss_jaccard","pair":94,"parameters":[],"expected":0.0},{"id":"c01505","function":"ss_cosine","pair":94,"parameters":[],"expected":0.0},{"id":"c01506","function":"ss_sorensen_dice","pair":94,"parameters":[],"expected":0.0},{"id":"c01507","function":"ss_overlap_coefficient","pair":94,"parameters":[],"expected":0.0},{"id":"c01508","function":"ss_braun_blanquet","pair":94,"parameters":[],"expected":0.0},{"id":"c01509","function":"ss_monge_elkan","pair":94,"parameters":[],"expected":0.6},{"id":"c01510","function":"ss_levenshtein","pair":94,"parameters":[],"expected":0.6666666666666667},{"id":"c01511","function":"ss_lcs_similarity","pair":94,"parameters":[],"expected":0.6666666666666666},{"id":"c01512","function":"ss_jaro","pair":94,"parameters":[],"expected":0.7777777777777777},{"id":"c01513","function":"ss_jaro_winkler","pair":94,"parameters":[],"expected":0.7999999999999999},{"id":"c01514","function":"ss_needleman_wunsch","pair":94,"parameters":[],"expected":0.6666666666666666},{"id":"c01515","function":"ss_smith_waterman","pair":94,"parameters":[],"expected":0.5},{"id":"c01516","function":"ss_affine_gap","pair":94,"parameters":[],"expected":0.6666666666666667},{"id":"c01517","function":"ss_soundex","pair":94,"parameters":[],"expected":"A100"},{"id":"c01518","function":"ss_refined_soundex","pair":94,"parameters":[],"expected":"A1"},{"id":"c01519","function":"ss_double_metaphone","pair":94,"parameters":[],"expected":"AP"},{"id":"c01520","function":"ss_jaccard","pair":95,"parameters":[],"expected":0.0},{"id":"c01521","function":"ss_cosine","pair":95,"parameters":[],"expected":0.0},{"id":"c01522","function":"ss_sorensen_dice","pair":95,"parameters":[],"expected":0.0},{"id":"c01523","function":"ss_overlap_coefficient","pair":95,"parameters":[],"expected":0.0},{"id":"c01524","function":"ss_braun_blanquet","pair":95,"parameters":[],"expected":0.0},{"id":"c01525","function":"ss_monge_elkan","pair":95,"parameters":[],"expected":0.6},{"id":"c01526","function":"ss_levenshtein","pair":95,"parameters":[],"expected":0.6666666666666667},{"id":"c01527","function":"ss_lcs_similarity","pair":95,"parameters":[],"expected":0.6666666666666666},{"id":"c01528","function":"ss_jaro","pair":95,"parameters":[],"expected":0.7777777777777777},{"id":"c01529","function":"ss_jaro_winkler","pair":95,"parameters":[],"expected":0.7999999999999999},{"id":"c01530","function":"ss_needleman_wunsch","pair":95,"parameters":[],"expected":0.6666666666666666},{"id":"c01531","function":"ss_smith_waterman","pair":95,"parameters":[],"expected":0.5},{"id":"c01532","function":"ss_affine_gap","pair":95,"parameters":[],"expected":0.6666666666666667},{"id":"c01533","function":"ss_soundex","pair":95,"parameters":[],"expected":"A100"},{"id":"c01534","function":"ss_refined_soundex","pair":95,"parameters":[],"expected":"A1"},{"id":"c01535","function":"ss_double_metaphone","pair":95,"parameters":[],"expected":"AP"},{"id":"c01536","function":"ss_jaccard","pair":96,"parameters":[],"expected":0.0},{"id":"c01537","function":"ss_cosine","pair":96,"parameters":[],"expected":0.0},{"id":"c01538","function":"ss_sorensen_dice","pair":96,"parameters":[],"expected":0.0},{"id":"c01539","function":"ss_overlap_coefficient","pair":96,"parameters":[],"expected":0.0},{"id":"c01540","function":"ss_braun_blanquet","pair":96,"parameters":[],"expected":0.0},{"id":"c01541","function":"ss_monge_elkan","pair":96,"parameters":[],"expected":0.6},{"id":"c01542","function":"ss_levenshtein","pair":96,"parameters":[],"expected":0.6666666666666667},{"id":"c01543","function":"ss_lcs_similarity","pair":96,"parameters":[],"expected":0.6666666666666666},{"id":"c01544","function":"ss_jaro","pair":96,"parameters":[],"expected":0.7777777777777777},{"id":"c01545","function":"ss_jaro_winkler","pair":96,"parameters":[],"expected":0.7999999999999999},{"id":"c01546","function":"ss_needleman_wunsch","pair":96,"parameters":[],"expected":0.6666666666666666},{"id":"c01547","function":"ss_smith_waterman","pair":96,"parameters":[],"expected":0.5},{"id":"c01548","function":"ss_affine_gap","pair":96,"parameters":[],"expected":0.6666666666666667},{"id":"c01549","function":"ss_soundex","pair":96,"parameters":[],"expected":"A100"},{"id":"c01550","function":"ss_refined_soundex","pair":96,"parameters":[],"expected":"A1"},{"id":"c01551","function":"ss_double_metaphone","pair":96,"parameters":[],"expected":"AP"},{"id":"c01552","function":"ss_jaccard","pair":97,"parameters":[],"expected":0.0},{"id":"c01553","function":"ss_cosine","pair":97,"parameters":[],"expected":0.0},{"id":"c01554","function":"ss_sorensen_dice","pair":97,"parameters":[],"expected":0.0},{"id":"c01555","function":"ss_overlap_coefficient","pair":97,"parameters":[],"expected":0.0},{"id":"c01556","function":"ss_braun_blanquet","pair":97,"parameters":[],"expected":0.0},{"id":"c01557","function":"ss_monge_elkan","pair":97,"parameters":[],"expected":0.0},{"id":"c01558","function":"ss_levenshtein","pair":97,"parameters":[],"expected":0.0},{"id":"c01559","function":"ss_lcs_similarity","pair":97,"parameters":[],"expected":0.125},{"id":"c01560","function":"ss_jaro","pair":97,"parameters":[],"expected":0.0},{"id":"c01561","function":"ss_jaro_winkler","pair":97,"parameters":[],"expected":0.0},{"id":"c01562","function":"ss_needleman_wunsch","pair":97,"parameters":[],"expected":0.0},{"id":"c01563","function":"ss_smith_waterman","pair":97,"parameters":[],"expected":0.125},{"id":"c01564","function":"ss_affine_gap","pair":97,"parameters":[],"expected":0.0},{"id":"c01565","function":"ss_soundex","pair":97,"parameters":[],"expected":"M235"},{"id":"c01566","function":"ss_refined_soundex","pair":97,"parameters":[],"expected":"M2308073"},{"id":"c01567","function":"ss_double_metaphone","pair":97,"parameters":[],"expected":"MKTN"},{"id":"c01568","function":"ss_jaccard","pair":98,"parameters":[],"expected":0.0},{"id":"c01569","function":"ss_cosine","pair":98,"parameters":[],"expected":0.0},{"id":"c01570","function":"ss_sorensen_dice","pair":98,"parameters":[],"expected":0.0},{"id":"c01571","function":"ss_overlap_coefficient","pair":98,"parameters":[],"expected":0.0},{"id":"c01572","function":"ss_braun_blanquet","pair":98,"parameters":[],"expected":0.0},{"id":"c01573","function":"ss_monge_elkan","pair":98,"parameters":[],"expected":0.0},{"id":"c01574","function":"ss_levenshtein","pair":98,"parameters":[],"expected":0.0},{"id":"c01575","function":"ss_lcs_similarity","pair":98,"parameters":[],"expected":0.0},{"id":"c01576","function":"ss_jaro","pair":98,"parameters":[],"expected":0.0},{"id":"c01577","function":"ss_jaro_winkler","pair":98,"parameters":[],"expected":0.0},{"id":"c01578","function":"ss_needleman_wunsch","pair":98,"parameters":[],"expected":0.0},{"id":"c01579","function":"ss_smith_waterman","pair":98,"parameters":[],"expected":0.0},{"id":"c01580","function":"ss_affine_gap","pair":98,"parameters":[],"expected":0.0},{"id":"c01581","function":"ss_soundex","pair":98,"parameters":[],"expected":"M235"},{"id":"c01582","function":"ss_refined_soundex","pair":98,"parameters":[],"expected":"M02308073"},{"id":"c01583","function":"ss_double_metaphone","pair":98,"parameters":[],"expected":"MKTN"},{"id":"c01584","function":"ss_jaccard","pair":99,"parameters":[],"expected":0.0},{"id":"c01585","function":"ss_cosine","pair":99,"parameters":[],"expected":0.0},{"id":"c01586","function":"ss_sorensen_dice","pair":99,"parameters":[],"expected":0.0},{"id":"c01587","function":"ss_overlap_coefficient","pair":99,"parameters":[],"expected":0.0},{"id":"c01588","function":"ss_braun_blanquet","pair":99,"parameters":[],"expected":0.0},{"id":"c01589","function":"ss_monge_elkan","pair":99,"parameters":[],"expected":0.0},{"id":"c01590","function":"ss_levenshtein","pair":99,"parameters":[],"expected":0.0},{"id":"c01591","function":"ss_lcs_similarity","pair":99,"parameters":[],"expected":0.2},{"id":"c01592","function":"ss_jaro","pair":99,"parameters":[],"expected":0.0},{"id":"c01593","function":"ss_jaro_winkler","pair":99,"parameters":[],"expected":0.0},{"id":"c01594","function":"ss_needleman_wunsch","pair":99,"parameters":[],"expected":0.0},{"id":"c01595","function":"ss_smith_waterman","pair":99,"parameters":[],"expected":0.2},{"id":"c01596","function":"ss_affine_gap","pair":99,"parameters":[],"expected":0.0},{"id":"c01597","function":"ss_soundex","pair":99,"parameters":[],"expected":"G200"},{"id":"c01598","function":"ss_refined_soundex","pair":99,"parameters":[],"expected":"G060"},{"id":"c01599","function":"ss_double_metaphone","pair":99,"parameters":[],"expected":"KF"},{"id":"c01600","function":"ss_jaccard","pair":100,"parameters":[],"expected":0.0},{"id":"c01601","function":"ss_cosine","pair":100,"parameters":[],"expected":0.0},{"id":"c01602","function":"ss_sorensen_dice","pair":100,"parameters":[],"expected":0.0},{"id":"c01603","function":"ss_overlap_coefficient","pair":100,"parameters":[],"expected":0.0},{"id":"c01604","function":"ss_braun_blanquet","pair":100,"parameters":[],"expected":0.0},{"id":"c01605","function":"ss_monge_elkan","pair":100,"parameters":[],"expected":0.0},{"id":"c01606","function":"ss_levenshtein","pair":100,"parameters":[],"expected":0.0},{"id":"c01607","function":"ss_lcs_similarity","pair":100,"parameters":[],"expected":0.0},{"id":"c01608","function":"ss_jaro","pair":100,"parameters":[],"expected":0.0},{"id":"c01609","function":"ss_jaro_winkler","pair":100,"parameters":[],"expected":0.0},{"id":"c01610","function":"ss_needleman_wunsch","pair":100,"parameters":[],"expected":0.0},{"id":"c01611","function":"ss_smith_waterman","pair":100,"parameters":[],"expected":0.0},{"id":"c01612","function":"ss_affine_gap","pair":100,"parameters":[],"expected":0.0},{"id":"c01613","function":"ss_soundex","pair":100,"parameters":[],"expected":"L200"},{"id":"c01614","function":"ss_refined_soundex","pair":100,"parameters":[],"expected":"L060"},{"id":"c01615","function":"ss_double_metaphone","pair":100,"parameters":[],"expected":"LF"},{"id":"c01616","function":"ss_jaccard","pair":101,"parameters":[],"expected":0.0},{"id":"c01617","function":"ss_cosine","pair":101,"parameters":[],"expected":0.0},{"id":"c01618","function":"ss_sorensen_dice","pair":101,"parameters":[],"expected":0.0},{"id":"c01619","function":"ss_overlap_coefficient","pair":101,"parameters":[],"expected":0.0},{"id":"c01620","function":"ss_braun_blanquet","pair":101,"parameters":[],"expected":0.0},{"id":"c01621","function":"ss_monge_elkan","pair":101,"parameters":[],"expected":0.0},{"id":"c01622","function":"ss_levenshtein","pair":101,"parameters":[],"expected":0.0},{"id":"c01623","function":"ss_lcs_similarity","pair":101,"parameters":[],"expected":0.0},{"id":"c01624","function":"ss_jaro","pair":101,"parameters":[],"expected":0.0},{"id":"c01625","function":"ss_jaro_winkler","pair":101,"parameters":[],"expected":0.0},{"id":"c01626","function":"ss_needleman_wunsch","pair":101,"parameters":[],"expected":0.0},{"id":"c01627","function":"ss_smith_waterman","pair":101,"parameters":[],"expected":0.0},{"id":"c01628","function":"ss_affine_gap","pair":101,"parameters":[],"expected":0.0},{"id":"c01629","function":"ss_soundex","pair":101,"parameters":[],"expected":"K523"},{"id":"c01630","function":"ss_refined_soundex","pair":101,"parameters":[],"expected":"K80603"},{"id":"c01631","function":"ss_double_metaphone","pair":101,"parameters":[],"expected":"NT"},{"id":"c01632","function":"ss_jaccard","pair":102,"parameters":[],"expected":0.0},{"id":"c01633","function":"ss_cosine","pair":102,"parameters":[],"expected":0.0},{"id":"c01634","function":"ss_sorensen_dice","pair":102,"parameters":[],"expected":0.0},{"id":"c01635","function":"ss_overlap_coefficient","pair":102,"parameters":[],"expected":0.0},{"id":"c01636","function":"ss_braun_blanquet","pair":102,"parameters":[],"expected":0.0},{"id":"c01637","function":"ss_monge_elkan","pair":102,"parameters":[],"expected":0.0},{"id":"c01638","function":"ss_levenshtein","pair":102,"parameters":[],"expected":0.0},{"id":"c01639","function":"ss_lcs_similarity","pair":102,"parameters":[],"expected":0.0},{"id":"c01640","function":"ss_jaro","pair":102,"parameters":[],"expected":0.0},{"id":"c01641","function":"ss_jaro_winkler","pair":102,"parameters":[],"expected":0.0},{"id":"c01642","function":"ss_needleman_wunsch","pair":102,"parameters":[],"expected":0.0},{"id":"c01643","function":"ss_smith_waterman","pair":102,"parameters":[],"expected":0.0},{"id":"c01644","function":"ss_affine_gap","pair":102,"parameters":[],"expected":0.0},{"id":"c01645","function":"ss_soundex","pair":102,"parameters":[],"expected":"W623"},{"id":"c01646","function":"ss_refined_soundex","pair":102,"parameters":[],"expected":"W90603"},{"id":"c01647","function":"ss_double_metaphone","pair":102,"parameters":[],"expected":"RT"},{"id":"c01648","function":"ss_jaccard","pair":103,"parameters":[],"expected":0.0},{"id":"c01649","function":"ss_cosine","pair":103,"parameters":[],"expected":0.0},{"id":"c01650","function":"ss_sorensen_dice","pair":103,"parameters":[],"expected":0.0},{"id":"c01651","function":"ss_overlap_coefficient","pair":103,"parameters":[],"expected":0.0},{"id":"c01652","function":"ss_braun_blanquet","pair":103,"parameters":[],"expected":0.0},{"id":"c01653","function":"ss_monge_elkan","pair":103,"parameters":[],"expected":0.0},{"id":"c01654","function":"ss_levenshtein","pair":103,"parameters":[],"expected":0.0},{"id":"c01655","function":"ss_lcs_similarity","pair":103,"parameters":[],"expected":0.0},{"id":"c01656","function":"ss_jaro","pair":103,"parameters":[],"expected":0.0},{"id":"c01657","function":"ss_jaro_winkler","pair":103,"parameters":[],"expected":0.0},{"id":"c01658","function":"ss_needleman_wunsch","pair":103,"parameters":[],"expected":0.0},{"id":"c01659","function":"ss_smith_waterman","pair":103,"parameters":[],"expected":0.0},{"id":"c01660","function":"ss_affine_gap","pair":103,"parameters":[],"expected":0.0},{"id":"c01661","function":"ss_soundex","pair":103,"parameters":[],"expected":"X160"},{"id":"c01662","function":"ss_refined_soundex","pair":103,"parameters":[],"expected":"X0509"},{"id":"c01663","function":"ss_double_metaphone","pair":103,"parameters":[],"expected":"SF"},{"id":"c01664","function":"ss_jaccard","pair":104,"parameters":[],"expected":0.0},{"id":"c01665","function":"ss_cosine","pair":104,"parameters":[],"expected":0.0},{"id":"c01666","function":"ss_sorensen_dice","pair":104,"parameters":[],"expected":0.0},{"id":"c01667","function":"ss_overlap_coefficient","pair":104,"parameters":[],"expected":0.0},{"id":"c01668","function":"ss_braun_blanquet","pair":104,"parameters":[],"expected":0.0},{"id":"c01669","function":"ss_monge_elkan","pair":104,"parameters":[],"expected":0.0},{"id":"c01670","function":"ss_levenshtein","pair":104,"parameters":[],"expected":0.0},{"id":"c01671","function":"ss_lcs_similarity","pair":104,"parameters":[],"expected":0.0},{"id":"c01672","function":"ss_jaro","pair":104,"parameters":[],"expected":0.0},{"id":"c01673","function":"ss_jaro_winkler","pair":104,"parameters":[],"expected":0.0},{"id":"c01674","function":"ss_needleman_wunsch","pair":104,"parameters":[],"expected":0.0},{"id":"c01675","function":"ss_smith_waterman","pair":104,"parameters":[],"expected":0.0},{"id":"c01676","function":"ss_affine_gap","pair":104,"parameters":[],"expected":0.0},{"id":"c01677","function":"ss_soundex","pair":104,"parameters":[],"expected":"J200"},{"id":"c01678","function":"ss_refined_soundex","pair":104,"parameters":[],"expected":"J020"},{"id":"c01679","function":"ss_double_metaphone","pair":104,"parameters":[],"expected":"HS"},{"id":"c01680","function":"ss_jaccard","pair":105,"parameters":[],"expected":0.0},{"id":"c01681","function":"ss_cosine","pair":105,"parameters":[],"expected":0.0},{"id":"c01682","function":"ss_sorensen_dice","pair":105,"parameters":[],"expected":0.0},{"id":"c01683","function":"ss_overlap_coefficient","pair":105,"parameters":[],"expected":0.0},{"id":"c01684","function":"ss_braun_blanquet","pair":105,"parameters":[],"expected":0.0},{"id":"c01685","function":"ss_monge_elkan","pair":105,"parameters":[],"expected":0.0},{"id":"c01686","function":"ss_levenshtein","pair":105,"parameters":[],"expected":0.0},{"id":"c01687","function":"ss_lcs_similarity","pair":105,"parameters":[],"expected":0.0},{"id":"c01688","function":"ss_jaro","pair":105,"parameters":[],"expected":0.0},{"id":"c01689","function":"ss_jaro_winkler","pair":105,"parameters":[],"expected":0.0},{"id":"c01690","function":"ss_needleman_wunsch","pair":105,"parameters":[],"expected":0.0},{"id":"c01691","function":"ss_smith_waterman","pair":105,"parameters":[],"expected":0.0},{"id":"c01692","function":"ss_affine_gap","pair":105,"parameters":[],"expected":0.0},{"id":"c01693","function":"ss_soundex","pair":105,"parameters":[],"expected":"J200"},{"id":"c01694","function":"ss_refined_soundex","pair":105,"parameters":[],"expected":"J02"},{"id":"c01695","function":"ss_double_metaphone","pair":105,"parameters":[],"expected":"JS"},{"id":"c01696","function":"ss_jaccard","pair":106,"parameters":[],"expected":0.0},{"id":"c01697","function":"ss_cosine","pair":106,"parameters":[],"expected":0.0},{"id":"c01698","function":"ss_sorensen_dice","pair":106,"parameters":[],"expected":0.0},{"id":"c01699","function":"ss_overlap_coefficient","pair":106,"parameters":[],"expected":0.0},{"id":"c01700","function":"ss_braun_blanquet","pair":106,"parameters":[],"expected":0.0},{"id":"c01701","function":"ss_monge_elkan","pair":106,"parameters":[],"expected":0.0},{"id":"c01702","function":"ss_levenshtein","pair":106,"parameters":[],"expected":0.0},{"id":"c01703","function":"ss_lcs_similarity","pair":106,"parameters":[],"expected":0.0},{"id":"c01704","function":"ss_jaro","pair":106,"parameters":[],"expected":0.0},{"id":"c01705","function":"ss_jaro_winkler","pair":106,"parameters":[],"expected":0.0},{"id":"c01706","function":"ss_needleman_wunsch","pair":106,"parameters":[],"expected":0.0},{"id":"c01707","function":"ss_smith_waterman","pair":106,"parameters":[],"expected":0.0},{"id":"c01708","function":"ss_affine_gap","pair":106,"parameters":[],"expected":0.0},{"id":"c01709","function":"ss_soundex","pair":106,"parameters":[],"expected":"J620"},{"id":"c01710","function":"ss_refined_soundex","pair":106,"parameters":[],"expected":"J0960"},{"id":"c01711","function":"ss_double_metaphone","pair":106,"parameters":[],"expected":"JRJ"},{"id":"c01712","function":"ss_jaccard","pair":107,"parameters":[],"expected":0.0},{"id":"c01713","function":"ss_cosine","pair":107,"parameters":[],"expected":0.0},{"id":"c01714","function":"ss_sorensen_dice","pair":107,"parameters":[],"expected":0.0},{"id":"c01715","function":"ss_overlap_coefficient","pair":107,"parameters":[],"expected":0.0},{"id":"c01716","function":"ss_braun_blanquet","pair":107,"parameters":[],"expected":0.0},{"id":"c01717","function":"ss_monge_elkan","pair":107,"parameters":[],"expected":0.0},{"id":"c01718","function":"ss_levenshtein","pair":107,"parameters":[],"expected":0.09090909090909094},{"id":"c01719","function":"ss_lcs_similarity","pair":107,"parameters":[],"expected":0.09090909090909091},{"id":"c01720","function":"ss_jaro","pair":107,"parameters":[],"expected":0.393939393939394},{"id":"c01721","function":"ss_jaro_winkler","pair":107,"parameters":[],"expected":0.393939393939394},{"id":"c01722","function":"ss_needleman_wunsch","pair":107,"parameters":[],"expected":0.09090909090909091},{"id":"c01723","function":"ss_smith_waterman","pair":107,"parameters":[],"expected":0.09090909090909091},{"id":"c01724","function":"ss_affine_gap","pair":107,"parameters":[],"expected":0.09090909090909094},{"id":"c01725","function":"ss_soundex","pair":107,"parameters":[],"expected":"S522"},{"id":"c01726","function":"ss_refined_soundex","pair":107,"parameters":[],"expected":"S086020830"},{"id":"c01727","function":"ss_double_metaphone","pair":107,"parameters":[],"expected":"SNJS"},{"id":"c01728","function":"ss_jaccard","pair":108,"parameters":[],"expected":0.0},{"id":"c01729","function":"ss_cosine","pair":108,"parameters":[],"expected":0.0},{"id":"c01730","function":"ss_sorensen_dice","pair":108,"parameters":[],"expected":0.0},{"id":"c01731","function":"ss_overlap_coefficient","pair":108,"parameters":[],"expected":0.0},{"id":"c01732","function":"ss_braun_blanquet","pair":108,"parameters":[],"expected":0.0},{"id":"c01733","function":"ss_monge_elkan","pair":108,"parameters":[],"expected":0.0},{"id":"c01734","function":"ss_levenshtein","pair":108,"parameters":[],"expected":0.0},{"id":"c01735","function":"ss_lcs_similarity","pair":108,"parameters":[],"expected":0.0},{"id":"c01736","function":"ss_jaro","pair":108,"parameters":[],"expected":0.0},{"id":"c01737","function":"ss_jaro_winkler","pair":108,"parameters":[],"expected":0.0},{"id":"c01738","function":"ss_needleman_wunsch","pair":108,"parameters":[],"expected":0.0},{"id":"c01739","function":"ss_smith_waterman","pair":108,"parameters":[],"expected":0.0},{"id":"c01740","function":"ss_affine_gap","pair":108,"parameters":[],"expected":0.0},{"id":"c01741","function":"ss_soundex","pair":108,"parameters":[],"expected":"T520"},{"id":"c01742","function":"ss_refined_soundex","pair":108,"parameters":[],"expected":"T0802"},{"id":"c01743","function":"ss_double_metaphone","pair":108,"parameters":[],"expected":"TMS"},{"id":"c01744","function":"ss_jaccard","pair":109,"parameters":[],"expected":0.0},{"id":"c01745","function":"ss_cosine","pair":109,"parameters":[],"expected":0.0},{"id":"c01746","function":"ss_sorensen_dice","pair":109,"parameters":[],"expected":0.0},{"id":"c01747","function":"ss_overlap_coefficient","pair":109,"parameters":[],"expected":0.0},{"id":"c01748","function":"ss_braun_blanquet","pair":109,"parameters":[],"expected":0.0},{"id":"c01749","function":"ss_monge_elkan","pair":109,"parameters":[],"expected":0.0},{"id":"c01750","function":"ss_levenshtein","pair":109,"parameters":[],"expected":0.0},{"id":"c01751","function":"ss_lcs_similarity","pair":109,"parameters":[],"expected":0.0},{"id":"c01752","function":"ss_jaro","pair":109,"parameters":[],"expected":0.0},{"id":"c01753","function":"ss_jaro_winkler","pair":109,"parameters":[],"expected":0.0},{"id":"c01754","function":"ss_needleman_wunsch","pair":109,"parameters":[],"expected":0.0},{"id":"c01755","function":"ss_smith_waterman","pair":109,"parameters":[],"expected":0.0},{"id":"c01756","function":"ss_affine_gap","pair":109,"parameters":[],"expected":0.0},{"id":"c01757","function":"ss_soundex","pair":109,"parameters":[],"expected":"T512"},{"id":"c01758","function":"ss_refined_soundex","pair":109,"parameters":[],"expected":"T081208"},{"id":"c01759","function":"ss_double_metaphone","pair":109,"parameters":[],"expected":"TMPS"},{"id":"c01760","function":"ss_jaccard","pair":110,"parameters":[],"expected":0.0},{"id":"c01761","function":"ss_cosine","pair":110,"parameters":[],"expected":0.0},{"id":"c01762","function":"ss_sorensen_dice","pair":110,"parameters":[],"expected":0.0},{"id":"c01763","function":"ss_overlap_coefficient","pair":110,"parameters":[],"expected":0.0},{"id":"c01764","function":"ss_braun_blanquet","pair":110,"parameters":[],"expected":0.0},{"id":"c01765","function":"ss_monge_elkan","pair":110,"parameters":[],"expected":0.0},{"id":"c01766","function":"ss_levenshtein","pair":110,"parameters":[],"expected":0.0},{"id":"c01767","function":"ss_lcs_similarity","pair":110,"parameters":[],"expected":0.0},{"id":"c01768","function":"ss_jaro","pair":110,"parameters":[],"expected":0.0},{"id":"c01769","function":"ss_jaro_winkler","pair":110,"parameters":[],"expected":0.0},{"id":"c01770","function":"ss_needleman_wunsch","pair":110,"parameters":[],"expected":0.0},{"id":"c01771","function":"ss_smith_waterman","pair":110,"parameters":[],"expected":0.0},{"id":"c01772","function":"ss_affine_gap","pair":110,"parameters":[],"expected":0.0},{"id":"c01773","function":"ss_soundex","pair":110,"parameters":[],"expected":"S620"},{"id":"c01774","function":"ss_refined_soundex","pair":110,"parameters":[],"expected":"S092"},{"id":"c01775","function":"ss_double_metaphone","pair":110,"parameters":[],"expected":"XRS"},{"id":"c01776","function":"ss_jaccard","pair":111,"parameters":[],"expected":0.0},{"id":"c01777","function":"ss_cosine","pair":111,"parameters":[],"expected":0.0},{"id":"c01778","function":"ss_sorensen_dice","pair":111,"parameters":[],"expected":0.0},{"id":"c01779","function":"ss_overlap_coefficient","pair":111,"parameters":[],"expected":0.0},{"id":"c01780","function":"ss_braun_blanquet","pair":111,"parameters":[],"expected":0.0},{"id":"c01781","function":"ss_monge_elkan","pair":111,"parameters":[],"expected":0.0},{"id":"c01782","function":"ss_levenshtein","pair":111,"parameters":[],"expected":0.0},{"id":"c01783","function":"ss_lcs_similarity","pair":111,"parameters":[],"expected":0.0},{"id":"c01784","function":"ss_jaro","pair":111,"parameters":[],"expected":0.0},{"id":"c01785","function":"ss_jaro_winkler","pair":111,"parameters":[],"expected":0.0},{"id":"c01786","function":"ss_needleman_wunsch","pair":111,"parameters":[],"expected":0.0},{"id":"c01787","function":"ss_smith_waterman","pair":111,"parameters":[],"expected":0.0},{"id":"c01788","function":"ss_affine_gap","pair":111,"parameters":[],"expected":0.0},{"id":"c01789","function":"ss_soundex","pair":111,"parameters":[],"expected":"W200"},{"id":"c01790","function":"ss_refined_soundex","pair":111,"parameters":[],"expected":"W2"},{"id":"c01791","function":"ss_double_metaphone","pair":111,"parameters":[],"expected":"AKS"},{"id":"c01792","function":"ss_jaccard","pair":112,"parameters":[],"expected":0.0},{"id":"c01793","function":"ss_cosine","pair":112,"parameters":[],"expected":0.0},{"id":"c01794","function":"ss_sorensen_dice","pair":112,"parameters":[],"expected":0.0},{"id":"c01795","function":"ss_overlap_coefficient","pair":112,"parameters":[],"expected":0.0},{"id":"c01796","function":"ss_braun_blanquet","pair":112,"parameters":[],"expected":0.0},{"id":"c01797","function":"ss_monge_elkan","pair":112,"parameters":[],"expected":0.0},{"id":"c01798","function":"ss_levenshtein","pair":112,"parameters":[],"expected":0.0},{"id":"c01799","function":"ss_lcs_similarity","pair":112,"parameters":[],"expected":0.0},{"id":"c01800","function":"ss_jaro","pair":112,"parameters":[],"expected":0.0},{"id":"c01801","function":"ss_jaro_winkler","pair":112,"parameters":[],"expected":0.0},{"id":"c01802","function":"ss_needleman_wunsch","pair":112,"parameters":[],"expected":0.0},{"id":"c01803","function":"ss_smith_waterman","pair":112,"parameters":[],"expected":0.0},{"id":"c01804","function":"ss_affine_gap","pair":112,"parameters":[],"expected":0.0},{"id":"c01805","function":"ss_soundex","pair":112,"parameters":[],"expected":"W320"},{"id":"c01806","function":"ss_refined_soundex","pair":112,"parameters":[],"expected":"W32"},{"id":"c01807","function":"ss_double_metaphone","pair":112,"parameters":[],"expected":"ATS"},{"id":"c01808","function":"ss_jaccard","pair":113,"parameters":[],"expected":0.0},{"id":"c01809","function":"ss_cosine","pair":113,"parameters":[],"expected":0.0},{"id":"c01810","function":"ss_sorensen_dice","pair":113,"parameters":[],"expected":0.0},{"id":"c01811","function":"ss_overlap_coefficient","pair":113,"parameters":[],"expected":0.0},{"id":"c01812","function":"ss_braun_blanquet","pair":113,"parameters":[],"expected":0.0},{"id":"c01813","function":"ss_monge_elkan","pair":113,"parameters":[],"expected":0.0},{"id":"c01814","function":"ss_levenshtein","pair":113,"parameters":[],"expected":0.0},{"id":"c01815","function":"ss_lcs_similarity","pair":113,"parameters":[],"expected":0.0},{"id":"c01816","function":"ss_jaro","pair":113,"parameters":[],"expected":0.0},{"id":"c01817","function":"ss_jaro_winkler","pair":113,"parameters":[],"expected":0.0},{"id":"c01818","function":"ss_needleman_wunsch","pair":113,"parameters":[],"expected":0.0},{"id":"c01819","function":"ss_smith_waterman","pair":113,"parameters":[],"expected":0.0},{"id":"c01820","function":"ss_affine_gap","pair":113,"parameters":[],"expected":0.0},{"id":"c01821","function":"ss_soundex","pair":113,"parameters":[],"expected":"S150"},{"id":"c01822","function":"ss_refined_soundex","pair":113,"parameters":[],"expected":"S0108"},{"id":"c01823","function":"ss_double_metaphone","pair":113,"parameters":[],"expected":"SSPN"},{"id":"c01824","function":"ss_jaccard","pair":114,"parameters":[],"expected":0.0},{"id":"c01825","function":"ss_cosine","pair":114,"parameters":[],"expected":0.0},{"id":"c01826","function":"ss_sorensen_dice","pair":114,"parameters":[],"expected":0.0},{"id":"c01827","function":"ss_overlap_coefficient","pair":114,"parameters":[],"expected":0.0},{"id":"c01828","function":"ss_braun_blanquet","pair":114,"parameters":[],"expected":0.0},{"id":"c01829","function":"ss_monge_elkan","pair":114,"parameters":[],"expected":0.0},{"id":"c01830","function":"ss_levenshtein","pair":114,"parameters":[],"expected":0.0},{"id":"c01831","function":"ss_lcs_similarity","pair":114,"parameters":[],"expected":0.0},{"id":"c01832","function":"ss_jaro","pair":114,"parameters":[],"expected":0.0},{"id":"c01833","function":"ss_jaro_winkler","pair":114,"parameters":[],"expected":0.0},{"id":"c01834","function":"ss_needleman_wunsch","pair":114,"parameters":[],"expected":0.0},{"id":"c01835","function":"ss_smith_waterman","pair":114,"parameters":[],"expected":0.0},{"id":"c01836","function":"ss_affine_gap","pair":114,"parameters":[],"expected":0.0},{"id":"c01837","function":"ss_soundex","pair":114,"parameters":[],"expected":"C520"},{"id":"c01838","function":"ss_refined_soundex","pair":114,"parameters":[],"expected":"C086"},{"id":"c01839","function":"ss_double_metaphone","pair":114,"parameters":[],"expected":"XNK"},{"id":"c01840","function":"ss_jaccard","pair":115,"parameters":[],"expected":0.0},{"id":"c01841","function":"ss_cosine","pair":115,"parameters":[],"expected":0.0},{"id":"c01842","function":"ss_sorensen_dice","pair":115,"parameters":[],"expected":0.0},{"id":"c01843","function":"ss_overlap_coefficient","pair":115,"parameters":[],"expected":0.0},{"id":"c01844","function":"ss_braun_blanquet","pair":115,"parameters":[],"expected":0.0},{"id":"c01845","function":"ss_monge_elkan","pair":115,"parameters":[],"expected":0.0},{"id":"c01846","function":"ss_levenshtein","pair":115,"parameters":[],"expected":0.0},{"id":"c01847","function":"ss_lcs_similarity","pair":115,"parameters":[],"expected":0.0},{"id":"c01848","function":"ss_jaro","pair":115,"parameters":[],"expected":0.0},{"id":"c01849","function":"ss_jaro_winkler","pair":115,"parameters":[],"expected":0.0},{"id":"c01850","function":"ss_needleman_wunsch","pair":115,"parameters":[],"expected":0.0},{"id":"c01851","function":"ss_smith_waterman","pair":115,"parameters":[],"expected":0.0},{"id":"c01852","function":"ss_affine_gap","pair":115,"parameters":[],"expected":0.0},{"id":"c01853","function":"ss_soundex","pair":115,"parameters":[],"expected":"C514"},{"id":"c01854","function":"ss_refined_soundex","pair":115,"parameters":[],"expected":"C08107"},{"id":"c01855","function":"ss_double_metaphone","pair":115,"parameters":[],"expected":"KMPL"},{"id":"c01856","function":"ss_jaccard","pair":116,"parameters":[],"expected":0.0},{"id":"c01857","function":"ss_cosine","pair":116,"parameters":[],"expected":0.0},{"id":"c01858","function":"ss_sorensen_dice","pair":116,"parameters":[],"expected":0.0},{"id":"c01859","function":"ss_overlap_coefficient","pair":116,"parameters":[],"expected":0.0},{"id":"c01860","function":"ss_braun_blanquet","pair":116,"parameters":[],"expected":0.0},{"id":"c01861","function":"ss_monge_elkan","pair":116,"parameters":[],"expected":0.0},{"id":"c01862","function":"ss_levenshtein","pair":116,"parameters":[],"expected":0.0},{"id":"c01863","function":"ss_lcs_similarity","pair":116,"parameters":[],"expected":0.0},{"id":"c01864","function":"ss_jaro","pair":116,"parameters":[],"expected":0.0},{"id":"c01865","function":"ss_jaro_winkler","pair":116,"parameters":[],"expected":0.0},{"id":"c01866","function":"ss_needleman_wunsch","pair":116,"parameters":[],"expected":0.0},{"id":"c01867","function":"ss_smith_waterman","pair":116,"parameters":[],"expected":0.0},{"id":"c01868","function":"ss_affine_gap","pair":116,"parameters":[],"expected":0.0},{"id":"c01869","function":"ss_soundex","pair":116,"parameters":[],"expected":"S260"},{"id":"c01870","function":"ss_refined_soundex","pair":116,"parameters":[],"expected":"S0609"},{"id":"c01871","function":"ss_double_metaphone","pair":116,"parameters":[],"expected":"XKR"},{"id":"c01872","function":"ss_jaccard","pair":117,"parameters":[],"expected":0.0},{"id":"c01873","function":"ss_cosine","pair":117,"parameters":[],"expected":0.0},{"id":"c01874","function":"ss_sorensen_dice","pair":117,"parameters":[],"expected":0.0},{"id":"c01875","function":"ss_overlap_coefficient","pair":117,"parameters":[],"expected":0.0},{"id":"c01876","function":"ss_braun_blanquet","pair":117,"parameters":[],"expected":0.0},{"id":"c01877","function":"ss_monge_elkan","pair":117,"parameters":[],"expected":0.0},{"id":"c01878","function":"ss_levenshtein","pair":117,"parameters":[],"expected":0.0},{"id":"c01879","function":"ss_lcs_similarity","pair":117,"parameters":[],"expected":0.0},{"id":"c01880","function":"ss_jaro","pair":117,"parameters":[],"expected":0.0},{"id":"c01881","function":"ss_jaro_winkler","pair":117,"parameters":[],"expected":0.0},{"id":"c01882","function":"ss_needleman_wunsch","pair":117,"parameters":[],"expected":0.0},{"id":"c01883","function":"ss_smith_waterman","pair":117,"parameters":[],"expected":0.0},{"id":"c01884","function":"ss_affine_gap","pair":117,"parameters":[],"expected":0.0},{"id":"c01885","function":"ss_soundex","pair":117,"parameters":[],"expected":"A450"},{"id":"c01886","function":"ss_refined_soundex","pair":117,"parameters":[],"expected":"A708"},{"id":"c01887","function":"ss_double_metaphone","pair":117,"parameters":[],"expected":"ALN"},{"id":"c01888","function":"ss_jaccard","pair":118,"parameters":[],"expected":0.0},{"id":"c01889","function":"ss_cosine","pair":118,"parameters":[],"expected":0.0},{"id":"c01890","function":"ss_sorensen_dice","pair":118,"parameters":[],"expected":0.0},{"id":"c01891","function":"ss_overlap_coefficient","pair":118,"parameters":[],"expected":0.0},{"id":"c01892","function":"ss_braun_blanquet","pair":118,"parameters":[],"expected":0.0},{"id":"c01893","function":"ss_monge_elkan","pair":118,"parameters":[],"expected":0.0},{"id":"c01894","function":"ss_levenshtein","pair":118,"parameters":[],"expected":0.0},{"id":"c01895","function":"ss_lcs_similarity","pair":118,"parameters":[],"expected":0.0},{"id":"c01896","function":"ss_jaro","pair":118,"parameters":[],"expected":0.0},{"id":"c01897","function":"ss_jaro_winkler","pair":118,"parameters":[],"expected":0.0},{"id":"c01898","function":"ss_needleman_wunsch","pair":118,"parameters":[],"expected":0.0},{"id":"c01899","function":"ss_smith_waterman","pair":118,"parameters":[],"expected":0.0},{"id":"c01900","function":"ss_affine_gap","pair":118,"parameters":[],"expected":0.0},{"id":"c01901","function":"ss_soundex","pair":118,"parameters":[],"expected":"A000"},{"id":"c01902","function":"ss_refined_soundex","pair":118,"parameters":[],"expected":"A"},{"id":"c01903","function":"ss_double_metaphone","pair":118,"parameters":[],"expected":"A"},{"id":"c01904","function":"ss_jaccard","pair":119,"parameters":[],"expected":0.0},{"id":"c01905","function":"ss_cosine","pair":119,"parameters":[],"expected":0.0},{"id":"c01906","function":"ss_sorensen_dice","pair":119,"parameters":[],"expected":0.0},{"id":"c01907","function":"ss_overlap_coefficient","pair":119,"parameters":[],"expected":0.0},{"id":"c01908","function":"ss_braun_blanquet","pair":119,"parameters":[],"expected":0.0},{"id":"c01909","function":"ss_monge_elkan","pair":119,"parameters":[],"expected":0.0},{"id":"c01910","function":"ss_levenshtein","pair":119,"parameters":[],"expected":0.0},{"id":"c01911","function":"ss_lcs_similarity","pair":119,"parameters":[],"expected":0.0},{"id":"c01912","function":"ss_jaro","pair":119,"parameters":[],"expected":0.0},{"id":"c01913","function":"ss_jaro_winkler","pair":119,"parameters":[],"expected":0.0},{"id":"c01914","function":"ss_needleman_wunsch","pair":119,"parameters":[],"expected":0.0},{"id":"c01915","function":"ss_smith_waterman","pair":119,"parameters":[],"expected":0.0},{"id":"c01916","function":"ss_affine_gap","pair":119,"parameters":[],"expected":0.0},{"id":"c01917","function":"ss_soundex","pair":119,"parameters":[],"expected":"B000"},{"id":"c01918","function":"ss_refined_soundex","pair":119,"parameters":[],"expected":"B"},{"id":"c01919","function":"ss_double_metaphone","pair":119,"parameters":[],"expected":"P"},{"id":"c01920","function":"ss_jaccard","pair":120,"parameters":[],"expected":0.0},{"id":"c01921","function":"ss_cosine","pair":120,"parameters":[],"expected":0.0},{"id":"c01922","function":"ss_sorensen_dice","pair":120,"parameters":[],"expected":0.0},{"id":"c01923","function":"ss_overlap_coefficient","pair":120,"parameters":[],"expected":0.0},{"id":"c01924","function":"ss_braun_blanquet","pair":120,"parameters":[],"expected":0.0},{"id":"c01925","function":"ss_monge_elkan","pair":120,"parameters":[],"expected":0.0},{"id":"c01926","function":"ss_levenshtein","pair":120,"parameters":[],"expected":0.0},{"id":"c01927","function":"ss_lcs_similarity","pair":120,"parameters":[],"expected":0.0},{"id":"c01928","function":"ss_jaro","pair":120,"parameters":[],"expected":0.0},{"id":"c01929","function":"ss_jaro_winkler","pair":120,"parameters":[],"expected":0.0},{"id":"c01930","function":"ss_needleman_wunsch","pair":120,"parameters":[],"expected":0.0},{"id":"c01931","function":"ss_smith_waterman","pair":120,"parameters":[],"expected":0.0},{"id":"c01932","function":"ss_affine_gap","pair":120,"parameters":[],"expected":0.0},{"id":"c01933","function":"ss_soundex","pair":120,"parameters":[],"expected":"P000"},{"id":"c01934","function":"ss_refined_soundex","pair":120,"parameters":[],"expected":"P5"},{"id":"c01935","function":"ss_double_metaphone","pair":120,"parameters":[],"expected":"PF"},{"id":"c01936","function":"ss_jaccard","pair":121,"parameters":[],"expected":0.0},{"id":"c01937","function":"ss_cosine","pair":121,"parameters":[],"expected":0.0},{"id":"c01938","function":"ss_sorensen_dice","pair":121,"parameters":[],"expected":0.0},{"id":"c01939","function":"ss_overlap_coefficient","pair":121,"parameters":[],"expected":0.0},{"id":"c01940","function":"ss_braun_blanquet","pair":121,"parameters":[],"expected":0.0},{"id":"c01941","function":"ss_monge_elkan","pair":121,"parameters":[],"expected":0.0},{"id":"c01942","function":"ss_levenshtein","pair":121,"parameters":[],"expected":0.0},{"id":"c01943","function":"ss_lcs_similarity","pair":121,"parameters":[],"expected":0.0},{"id":"c01944","function":"ss_jaro","pair":121,"parameters":[],"expected":0.0},{"id":"c01945","function":"ss_jaro_winkler","pair":121,"parameters":[],"expected":0.0},{"id":"c01946","function":"ss_needleman_wunsch","pair":121,"parameters":[],"expected":0.0},{"id":"c01947","function":"ss_smith_waterman","pair":121,"parameters":[],"expected":0.0},{"id":"c01948","function":"ss_affine_gap","pair":121,"parameters":[],"expected":0.0},{"id":"c01949","function":"ss_soundex","pair":121,"parameters":[],"expected":"C000"},{"id":"c01950","function":"ss_refined_soundex","pair":121,"parameters":[],"expected":"C"},{"id":"c01951","function":"ss_double_metaphone","pair":121,"parameters":[],"expected":"S"},{"id":"c01952","function":"ss_jaccard","pair":122,"parameters":[],"expected":0.0},{"id":"c01953","function":"ss_cosine","pair":122,"parameters":[],"expected":0.0},{"id":"c01954","function":"ss_sorensen_dice","pair":122,"parameters":[],"expected":0.0},{"id":"c01955","function":"ss_overlap_coefficient","pair":122,"parameters":[],"expected":0.0},{"id":"c01956","function":"ss_braun_blanquet","pair":122,"parameters":[],"expected":0.0},{"id":"c01957","function":"ss_monge_elkan","pair":122,"parameters":[],"expected":0.0},{"id":"c01958","function":"ss_levenshtein","pair":122,"parameters":[],"expected":0.0},{"id":"c01959","function":"ss_lcs_similarity","pair":122,"parameters":[],"expected":0.0},{"id":"c01960","function":"ss_jaro","pair":122,"parameters":[],"expected":0.0},{"id":"c01961","function":"ss_jaro_winkler","pair":122,"parameters":[],"expected":0.0},{"id":"c01962","function":"ss_needleman_wunsch","pair":122,"parameters":[],"expected":0.0},{"id":"c01963","function":"ss_smith_waterman","pair":122,"parameters":[],"expected":0.0},{"id":"c01964","function":"ss_affine_gap","pair":122,"parameters":[],"expected":0.0},{"id":"c01965","function":"ss_soundex","pair":122,"parameters":[],"expected":"A235"},{"id":"c01966","function":"ss_refined_soundex","pair":122,"parameters":[],"expected":"A203083"},{"id":"c01967","function":"ss_double_metaphone","pair":122,"parameters":[],"expected":"AKST"},{"id":"c01968","function":"ss_jaccard","pair":123,"parameters":[],"expected":0.0},{"id":"c01969","function":"ss_cosine","pair":123,"parameters":[],"expected":0.0},{"id":"c01970","function":"ss_sorensen_dice","pair":123,"parameters":[],"expected":0.0},{"id":"c01971","function":"ss_overlap_coefficient","pair":123,"parameters":[],"expected":0.0},{"id":"c01972","function":"ss_braun_blanquet","pair":123,"parameters":[],"expected":0.0},{"id":"c01973","function":"ss_monge_elkan","pair":123,"parameters":[],"expected":0.0},{"id":"c01974","function":"ss_levenshtein","pair":123,"parameters":[],"expected":0.0},{"id":"c01975","function":"ss_lcs_similarity","pair":123,"parameters":[],"expected":0.0},{"id":"c01976","function":"ss_jaro","pair":123,"parameters":[],"expected":0.0},{"id":"c01977","function":"ss_jaro_winkler","pair":123,"parameters":[],"expected":0.0},{"id":"c01978","function":"ss_needleman_wunsch","pair":123,"parameters":[],"expected":0.0},{"id":"c01979","function":"ss_smith_waterman","pair":123,"parameters":[],"expected":0.0},{"id":"c01980","function":"ss_affine_gap","pair":123,"parameters":[],"expected":0.0},{"id":"c01981","function":"ss_soundex","pair":123,"parameters":[],"expected":"W460"},{"id":"c01982","function":"ss_refined_soundex","pair":123,"parameters":[],"expected":"W709"},{"id":"c01983","function":"ss_double_metaphone","pair":123,"parameters":[],"expected":"ALR"},{"id":"c01984","function":"ss_jaccard","pair":124,"parameters":[],"expected":0.0},{"id":"c01985","function":"ss_cosine","pair":124,"parameters":[],"expected":0.0},{"id":"c01986","function":"ss_sorensen_dice","pair":124,"parameters":[],"expected":0.0},{"id":"c01987","function":"ss_overlap_coefficient","pair":124,"parameters":[],"expected":0.0},{"id":"c01988","function":"ss_braun_blanquet","pair":124,"parameters":[],"expected":0.0},{"id":"c01989","function":"ss_monge_elkan","pair":124,"parameters":[],"expected":0.0},{"id":"c01990","function":"ss_levenshtein","pair":124,"parameters":[],"expected":0.0},{"id":"c01991","function":"ss_lcs_similarity","pair":124,"parameters":[],"expected":0.0},{"id":"c01992","function":"ss_jaro","pair":124,"parameters":[],"expected":0.0},{"id":"c01993","function":"ss_jaro_winkler","pair":124,"parameters":[],"expected":0.0},{"id":"c01994","function":"ss_needleman_wunsch","pair":124,"parameters":[],"expected":0.0},{"id":"c01995","function":"ss_smith_waterman","pair":124,"parameters":[],"expected":0.0},{"id":"c01996","function":"ss_affine_gap","pair":124,"parameters":[],"expected":0.0},{"id":"c01997","function":"ss_soundex","pair":124,"parameters":[],"expected":"S160"},{"id":"c01998","function":"ss_refined_soundex","pair":124,"parameters":[],"expected":"S0509"},{"id":"c01999","function":"ss_double_metaphone","pair":124,"parameters":[],"expected":"XFR"},{"id":"c02000","function":"ss_jaccard","pair":125,"parameters":[],"expected":0.0},{"id":"c02001","function":"ss_cosine","pair":125,"parameters":[],"expected":0.0},{"id":"c02002","function":"ss_sorensen_dice","pair":125,"parameters":[],"expected":0.0},{"id":"c02003","function":"ss_overlap_coefficient","pair":125,"parameters":[],"expected":0.0},{"id":"c02004","function":"ss_braun_blanquet","pair":125,"parameters":[],"expected":0.0},{"id":"c02005","function":"ss_monge_elkan","pair":125,"parameters":[],"expected":0.0},{"id":"c02006","function":"ss_levenshtein","pair":125,"parameters":[],"expected":0.0},{"id":"c02007","function":"ss_lcs_similarity","pair":125,"parameters":[],"expected":0.0},{"id":"c02008","function":"ss_jaro","pair":125,"parameters":[],"expected":0.0},{"id":"c02009","function":"ss_jaro_winkler","pair":125,"parameters":[],"expected":0.0},{"id":"c02010","function":"ss_needleman_wunsch","pair":125,"parameters":[],"expected":0.0},{"id":"c02011","function":"ss_smith_waterman","pair":125,"parameters":[],"expected":0.0},{"id":"c02012","function":"ss_affine_gap","pair":125,"parameters":[],"expected":0.0},{"id":"c02013","function":"ss_soundex","pair":125,"parameters":[],"expected":"B260"},{"id":"c02014","function":"ss_refined_soundex","pair":125,"parameters":[],"expected":"B0209"},{"id":"c02015","function":"ss_double_metaphone","pair":125,"parameters":[],"expected":"PKR"},{"id":"c02016","function":"ss_jaccard","pair":126,"parameters":[],"expected":0.0},{"id":"c02017","function":"ss_cosine","pair":126,"parameters":[],"expected":0.0},{"id":"c02018","function":"ss_sorensen_dice","pair":126,"parameters":[],"expected":0.0},{"id":"c02019","function":"ss_overlap_coefficient","pair":126,"parameters":[],"expected":0.0},{"id":"c02020","function":"ss_braun_blanquet","pair":126,"parameters":[],"expected":0.0},{"id":"c02021","function":"ss_monge_elkan","pair":126,"parameters":[],"expected":0.45972222222222214},{"id":"c02022","function":"ss_levenshtein","pair":126,"parameters":[],"expected":0.1333333333333333},{"id":"c02023","function":"ss_lcs_similarity","pair":126,"parameters":[],"expected":0.13333333333333333},{"id":"c02024","function":"ss_jaro","pair":126,"parameters":[],"expected":0.4611111111111111},{"id":"c02025","function":"ss_jaro_winkler","pair":126,"parameters":[],"expected":0.4611111111111111},{"id":"c02026","function":"ss_needleman_wunsch","pair":126,"parameters":[],"expected":0.13333333333333333},{"id":"c02027","function":"ss_smith_waterman","pair":126,"parameters":[],"expected":0.125},{"id":"c02028","function":"ss_affine_gap","pair":126,"parameters":[],"expected":0.0},{"id":"c02029","function":"ss_soundex","pair":126,"parameters":[],"expected":"I220"},{"id":"c02030","function":"ss_refined_soundex","pair":126,"parameters":[],"expected":"I202"},{"id":"c02031","function":"ss_double_metaphone","pair":126,"parameters":[],"expected":"AKK"},{"id":"c02032","function":"ss_jaccard","pair":127,"parameters":[],"expected":1.0},{"id":"c02033","function":"ss_cosine","pair":127,"parameters":[],"expected":1.0},{"id":"c02034","function":"ss_sorensen_dice","pair":127,"parameters":[],"expected":1.0},{"id":"c02035","function":"ss_overlap_coefficient","pair":127,"parameters":[],"expected":1.0},{"id":"c02036","function":"ss_braun_blanquet","pair":127,"parameters":[],"expected":1.0},{"id":"c02037","function":"ss_monge_elkan","pair":127,"parameters":[],"expected":1.0},{"id":"c02038","function":"ss_levenshtein","pair":127,"parameters":[],"expected":1.0},{"id":"c02039","function":"ss_lcs_similarity","pair":127,"parameters":[],"expected":1.0},{"id":"c02040","function":"ss_jaro","pair":127,"parameters":[],"expected":1.0},{"id":"c02041","function":"ss_jaro_winkler","pair":127,"parameters":[],"expected":1.0},{"id":"c02042","function":"ss_needleman_wunsch","pair":127,"parameters":[],"expected":1.0},{"id":"c02043","function":"ss_smith_waterman","pair":127,"parameters":[],"expected":1.0},{"id":"c02044","function":"ss_affine_gap","pair":127,"parameters":[],"expected":1.0},{"id":"c02045","function":"ss_soundex","pair":127,"parameters":[],"expected":"Z000"},{"id":"c02046","function":"ss_refined_soundex","pair":127,"parameters":[],"expected":"Z"},{"id":"c02047","function":"ss_double_metaphone","pair":127,"parameters":[],"expected":"S"},{"id":"c02048","function":"ss_jaccard","pair":128,"parameters":[],"expected":1.0},{"id":"c02049","function":"ss_cosine","pair":128,"parameters":[],"expected":1.0},{"id":"c02050","function":"ss_sorensen_dice","pair":128,"parameters":[],"expected":1.0},{"id":"c02051","function":"ss_overlap_coefficient","pair":128,"parameters":[],"expected":1.0},{"id":"c02052","function":"ss_braun_blanquet","pair":128,"parameters":[],"expected":1.0},{"id":"c02053","function":"ss_monge_elkan","pair":128,"parameters":[],"expected":1.0},{"id":"c02054","function":"ss_levenshtein","pair":128,"parameters":[],"expected":0.9473684210526316},{"id":"c02055","function":"ss_lcs_similarity","pair":128,"parameters":[],"expected":0.9473684210526315},{"id":"c02056","function":"ss_jaro","pair":128,"parameters":[],"expected":0.9824561403508771},{"id":"c02057","function":"ss_jaro_winkler","pair":128,"parameters":[],"expected":0.9894736842105263},{"id":"c02058","function":"ss_needleman_wunsch","pair":128,"parameters":[],"expected":0.9473684210526315},{"id":"c02059","function":"ss_smith_waterman","pair":128,"parameters":[],"expected":1.0},{"id":"c02060","function":"ss_affine_gap","pair":128,"parameters":[],"expected":0.8421052631578947},{"id":"c02061","function":"ss_soundex","pair":128,"parameters":[],"expected":"Z122"},{"id":"c02062","function":"ss_refined_soundex","pair":128,"parameters":[],"expected":"Z0120202"},{"id":"c02063","function":"ss_double_metaphone","pair":128,"parameters":[],"expected":"SPKS"},{"id":"c02064","function":"ss_jaccard","pair":129,"parameters":[],"expected":0.75},{"id":"c02065","function":"ss_cosine","pair":129,"parameters":[],"expected":0.8660254037844387},{"id":"c02066","function":"ss_sorensen_dice","pair":129,"parameters":[],"expected":0.8571428571428571},{"id":"c02067","function":"ss_overlap_coefficient","pair":129,"parameters":[],"expected":1.0},{"id":"c02068","function":"ss_braun_blanquet","pair":129,"parameters":[],"expected":0.75},{"id":"c02069","function":"ss_monge_elkan","pair":129,"parameters":[],"expected":0.9833333333333334},{"id":"c02070","function":"ss_levenshtein","pair":129,"parameters":[],"expected":0.8666666666666667},{"id":"c02071","function":"ss_lcs_similarity","pair":129,"parameters":[],"expected":0.8666666666666667},{"id":"c02072","function":"ss_jaro","pair":129,"parameters":[],"expected":0.9555555555555556},{"id":"c02073","function":"ss_jaro_winkler","pair":129,"parameters":[],"expected":0.9733333333333334},{"id":"c02074","function":"ss_needleman_wunsch","pair":129,"parameters":[],"expected":0.8666666666666667},{"id":"c02075","function":"ss_smith_waterman","pair":129,"parameters":[],"expected":1.0},{"id":"c02076","function":"ss_affine_gap","pair":129,"parameters":[],"expected":0.7333333333333334},{"id":"c02077","function":"ss_soundex","pair":129,"parameters":[],"expected":"A200"},{"id":"c02078","function":"ss_refined_soundex","pair":129,"parameters":[],"expected":"A2"},{"id":"c02079","function":"ss_double_metaphone","pair":129,"parameters":[],"expected":"AS"},{"id":"c02080","function":"ss_jaccard","pair":130,"parameters":[],"expected":1.0},{"id":"c02081","function":"ss_cosine","pair":130,"parameters":[],"expected":1.0},{"id":"c02082","function":"ss_sorensen_dice","pair":130,"parameters":[],"expected":1.0},{"id":"c02083","function":"ss_overlap_coefficient","pair":130,"parameters":[],"expected":1.0},{"id":"c02084","function":"ss_braun_blanquet","pair":130,"parameters":[],"expected":1.0},{"id":"c02085","function":"ss_monge_elkan","pair":130,"parameters":[],"expected":1.0},{"id":"c02086","function":"ss_levenshtein","pair":130,"parameters":[],"expected":1.0},{"id":"c02087","function":"ss_lcs_similarity","pair":130,"parameters":[],"expected":1.0},{"id":"c02088","function":"ss_jaro","pair":130,"parameters":[],"expected":1.0},{"id":"c02089","function":"ss_jaro_winkler","pair":130,"parameters":[],"expected":1.0},{"id":"c02090","function":"ss_needleman_wunsch","pair":130,"parameters":[],"expected":1.0},{"id":"c02091","function":"ss_smith_waterman","pair":130,"parameters":[],"expected":1.0},{"id":"c02092","function":"ss_affine_gap","pair":130,"parameters":[],"expected":1.0},{"id":"c02093","function":"ss_soundex","pair":130,"parameters":[],"expected":"Z000"},{"id":"c02094","function":"ss_refined_soundex","pair":130,"parameters":[],"expected":"Z"},{"id":"c02095","function":"ss_double_metaphone","pair":130,"parameters":[],"expected":"S"},{"id":"c02096","function":"ss_jaccard","pair":131,"parameters":[],"expected":0.0},{"id":"c02097","function":"ss_cosine","pair":131,"parameters":[],"expected":0.0},{"id":"c02098","function":"ss_sorensen_dice","pair":131,"parameters":[],"expected":0.0},{"id":"c02099","function":"ss_overlap_coefficient","pair":131,"parameters":[],"expected":0.0},{"id":"c02100","function":"ss_braun_blanquet","pair":131,"parameters":[],"expected":0.0},{"id":"c02101","function":"ss_monge_elkan","pair":131,"parameters":[],"expected":0.4166666666666667},{"id":"c02102","function":"ss_levenshtein","pair":131,"parameters":[],"expected":0.0},{"id":"c02103","function":"ss_lcs_similarity","pair":131,"parameters":[],"expected":0.125},{"id":"c02104","function":"ss_jaro","pair":131,"parameters":[],"expected":0.4166666666666667},{"id":"c02105","function":"ss_jaro_winkler","pair":131,"parameters":[],"expected":0.4166666666666667},{"id":"c02106","function":"ss_needleman_wunsch","pair":131,"parameters":[],"expected":0.0},{"id":"c02107","function":"ss_smith_waterman","pair":131,"parameters":[],"expected":0.125},{"id":"c02108","function":"ss_affine_gap","pair":131,"parameters":[],"expected":0.0},{"id":"c02109","function":"ss_soundex","pair":131,"parameters":[],"expected":"X000"},{"id":"c02110","function":"ss_refined_soundex","pair":131,"parameters":[],"expected":"X"},{"id":"c02111","function":"ss_double_metaphone","pair":131,"parameters":[],"expected":"SSS"},{"id":"c02112","function":"ss_jaccard","pair":132,"parameters":[],"expected":0.0},{"id":"c02113","function":"ss_cosine","pair":132,"parameters":[],"expected":0.0},{"id":"c02114","function":"ss_sorensen_dice","pair":132,"parameters":[],"expected":0.0},{"id":"c02115","function":"ss_overlap_coefficient","pair":132,"parameters":[],"expected":0.0},{"id":"c02116","function":"ss_braun_blanquet","pair":132,"parameters":[],"expected":0.0},{"id":"c02117","function":"ss_monge_elkan","pair":132,"parameters":[],"expected":0.0},{"id":"c02118","function":"ss_levenshtein","pair":132,"parameters":[],"expected":0.0},{"id":"c02119","function":"ss_lcs_similarity","pair":132,"parameters":[],"expected":0.0},{"id":"c02120","function":"ss_jaro","pair":132,"parameters":[],"expected":0.0},{"id":"c02121","function":"ss_jaro_winkler","pair":132,"parameters":[],"expected":0.0},{"id":"c02122","function":"ss_needleman_wunsch","pair":132,"parameters":[],"expected":0.0},{"id":"c02123","function":"ss_smith_waterman","pair":132,"parameters":[],"expected":0.0},{"id":"c02124","function":"ss_affine_gap","pair":132,"parameters":[],"expected":0.0},{"id":"c02125","function":"ss_soundex","pair":132,"parameters":[],"expected":"S000"},{"id":"c02126","function":"ss_refined_soundex","pair":132,"parameters":[],"expected":"S"},{"id":"c02127","function":"ss_double_metaphone","pair":132,"parameters":[],"expected":"S"},{"id":"c02128","function":"ss_jaccard","pair":133,"parameters":[],"expected":0.0},{"id":"c02129","function":"ss_cosine","pair":133,"parameters":[],"expected":1.0},{"id":"c02130","function":"ss_sorensen_dice","pair":133,"parameters":[],"expected":0.0},{"id":"c02131","function":"ss_overlap_coefficient","pair":133,"parameters":[],"expected":1.0},{"id":"c02132","function":"ss_braun_blanquet","pair":133,"parameters":[],"expected":0.0},{"id":"c02133","function":"ss_monge_elkan","pair":133,"parameters":[],"expected":0.0},{"id":"c02134","function":"ss_levenshtein","pair":133,"parameters":[],"expected":0.0},{"id":"c02135","function":"ss_lcs_similarity","pair":133,"parameters":[],"expected":0.0},{"id":"c02136","function":"ss_jaro","pair":133,"parameters":[],"expected":0.0},{"id":"c02137","function":"ss_jaro_winkler","pair":133,"parameters":[],"expected":0.0},{"id":"c02138","function":"ss_needleman_wunsch","pair":133,"parameters":[],"expected":0.0},{"id":"c02139","function":"ss_smith_waterman","pair":133,"parameters":[],"expected":0.0},{"id":"c02140","function":"ss_affine_gap","pair":133,"parameters":[],"expected":0.0},{"id":"c02141","function":"ss_soundex","pair":133,"parameters":[],"expected":""},{"id":"c02142","function":"ss_refined_soundex","pair":133,"parameters":[],"expected":""},{"id":"c02143","function":"ss_double_metaphone","pair":133,"parameters":[],"expected":""},{"id":"c02144","function":"ss_jaccard","pair":134,"parameters":[],"expected":0.0},{"id":"c02145","function":"ss_cosine","pair":134,"parameters":[],"expected":0.0},{"id":"c02146","function":"ss_sorensen_dice","pair":134,"parameters":[],"expected":0.0},{"id":"c02147","function":"ss_overlap_coefficient","pair":134,"parameters":[],"expected":0.0},{"id":"c02148","function":"ss_braun_blanquet","pair":134,"parameters":[],"expected":0.0},{"id":"c02149","function":"ss_monge_elkan","pair":134,"parameters":[],"expected":0.735930735930736},{"id":"c02150","function":"ss_levenshtein","pair":134,"parameters":[],"expected":0.19999999999999996},{"id":"c02151","function":"ss_lcs_similarity","pair":134,"parameters":[],"expected":0.4666666666666667},{"id":"c02152","function":"ss_jaro","pair":134,"parameters":[],"expected":0.701010101010101},{"id":"c02153","function":"ss_jaro_winkler","pair":134,"parameters":[],"expected":0.701010101010101},{"id":"c02154","function":"ss_needleman_wunsch","pair":134,"parameters":[],"expected":0.3333333333333333},{"id":"c02155","function":"ss_smith_waterman","pair":134,"parameters":[],"expected":0.26666666666666666},{"id":"c02156","function":"ss_affine_gap","pair":134,"parameters":[],"expected":0.19999999999999996},{"id":"c02157","function":"ss_soundex","pair":134,"parameters":[],"expected":"Z000"},{"id":"c02158","function":"ss_refined_soundex","pair":134,"parameters":[],"expected":"Z"},{"id":"c02159","function":"ss_double_metaphone","pair":134,"parameters":[],"expected":"SKSS"},{"id":"c02160","function":"ss_jaccard","pair":135,"parameters":[],"expected":0.0},{"id":"c02161","function":"ss_cosine","pair":135,"parameters":[],"expected":0.0},{"id":"c02162","function":"ss_sorensen_dice","pair":135,"parameters":[],"expected":0.0},{"id":"c02163","function":"ss_overlap_coefficient","pair":135,"parameters":[],"expected":0.0},{"id":"c02164","function":"ss_braun_blanquet","pair":135,"parameters":[],"expected":0.0},{"id":"c02165","function":"ss_monge_elkan","pair":135,"parameters":[],"expected":0.0},{"id":"c02166","function":"ss_levenshtein","pair":135,"parameters":[],"expected":0.0714285714285714},{"id":"c02167","function":"ss_lcs_similarity","pair":135,"parameters":[],"expected":0.07142857142857142},{"id":"c02168","function":"ss_jaro","pair":135,"parameters":[],"expected":0.4682539682539682},{"id":"c02169","function":"ss_jaro_winkler","pair":135,"parameters":[],"expected":0.4682539682539682},{"id":"c02170","function":"ss_needleman_wunsch","pair":135,"parameters":[],"expected":0.07142857142857142},{"id":"c02171","function":"ss_smith_waterman","pair":135,"parameters":[],"expected":0.3333333333333333},{"id":"c02172","function":"ss_affine_gap","pair":135,"parameters":[],"expected":0.0},{"id":"c02173","function":"ss_soundex","pair":135,"parameters":[],"expected":"D000"},{"id":"c02174","function":"ss_refined_soundex","pair":135,"parameters":[],"expected":"D"},{"id":"c02175","function":"ss_double_metaphone","pair":135,"parameters":[],"expected":"T"},{"id":"c02176","function":"ss_jaccard","pair":136,"parameters":[],"expected":1.0},{"id":"c02177","function":"ss_cosine","pair":136,"parameters":[],"expected":1.0},{"id":"c02178","function":"ss_sorensen_dice","pair":136,"parameters":[],"expected":1.0},{"id":"c02179","function":"ss_overlap_coefficient","pair":136,"parameters":[],"expected":1.0},{"id":"c02180","function":"ss_braun_blanquet","pair":136,"parameters":[],"expected":1.0},{"id":"c02181","function":"ss_monge_elkan","pair":136,"parameters":[],"expected":1.0},{"id":"c02182","function":"ss_levenshtein","pair":136,"parameters":[],"expected":1.0},{"id":"c02183","function":"ss_lcs_similarity","pair":136,"parameters":[],"expected":1.0},{"id":"c02184","function":"ss_jaro","pair":136,"parameters":[],"expected":1.0},{"id":"c02185","function":"ss_jaro_winkler","pair":136,"parameters":[],"expected":1.0},{"id":"c02186","function":"ss_needleman_wunsch","pair":136,"parameters":[],"expected":1.0},{"id":"c02187","function":"ss_smith_waterman","pair":136,"parameters":[],"expected":1.0},{"id":"c02188","function":"ss_affine_gap","pair":136,"parameters":[],"expected":1.0},{"id":"c02189","function":"ss_soundex","pair":136,"parameters":[],"expected":"Z000"},{"id":"c02190","function":"ss_refined_soundex","pair":136,"parameters":[],"expected":"Z"},{"id":"c02191","function":"ss_double_metaphone","pair":136,"parameters":[],"expected":"S"},{"id":"c02192","function":"ss_jaccard","pair":137,"parameters":[],"expected":0.5},{"id":"c02193","function":"ss_cosine","pair":137,"parameters":[],"expected":0.6666666666666666},{"id":"c02194","function":"ss_sorensen_dice","pair":137,"parameters":[],"expected":0.6666666666666666},{"id":"c02195","function":"ss_overlap_coefficient","pair":137,"parameters":[],"expected":0.6666666666666666},{"id":"c02196","function":"ss_braun_blanquet","pair":137,"parameters":[],"expected":0.6666666666666666},{"id":"c02197","function":"ss_monge_elkan","pair":137,"parameters":[],"expected":0.9500000000000001},{"id":"c02198","function":"ss_levenshtein","pair":137,"parameters":[],"expected":0.9444444444444444},{"id":"c02199","function":"ss_lcs_similarity","pair":137,"parameters":[],"expected":0.9444444444444444},{"id":"c02200","function":"ss_jaro","pair":137,"parameters":[],"expected":0.9814814814814815},{"id":"c02201","function":"ss_jaro_winkler","pair":137,"parameters":[],"expected":0.9888888888888889},{"id":"c02202","function":"ss_needleman_wunsch","pair":137,"parameters":[],"expected":0.9444444444444444},{"id":"c02203","function":"ss_smith_waterman","pair":137,"parameters":[],"expected":1.0},{"id":"c02204","function":"ss_affine_gap","pair":137,"parameters":[],"expected":0.8333333333333334},{"id":"c02205","function":"ss_soundex","pair":137,"parameters":[],"expected":"D123"},{"id":"c02206","function":"ss_refined_soundex","pair":137,"parameters":[],"expected":"D1232"},{"id":"c02207","function":"ss_double_metaphone","pair":137,"parameters":[],"expected":"TPKS"},{"id":"c02208","function":"ss_jaccard","pair":138,"parameters":[],"expected":0.3333333333333333},{"id":"c02209","function":"ss_cosine","pair":138,"parameters":[],"expected":0.5},{"id":"c02210","function":"ss_sorensen_dice","pair":138,"parameters":[],"expected":0.5},{"id":"c02211","function":"ss_overlap_coefficient","pair":138,"parameters":[],"expected":0.5},{"id":"c02212","function":"ss_braun_blanquet","pair":138,"parameters":[],"expected":0.5},{"id":"c02213","function":"ss_monge_elkan","pair":138,"parameters":[],"expected":0.787037037037037},{"id":"c02214","function":"ss_levenshtein","pair":138,"parameters":[],"expected":0.09090909090909094},{"id":"c02215","function":"ss_lcs_similarity","pair":138,"parameters":[],"expected":0.2727272727272727},{"id":"c02216","function":"ss_jaro","pair":138,"parameters":[],"expected":0.5858585858585857},{"id":"c02217","function":"ss_jaro_winkler","pair":138,"parameters":[],"expected":0.5858585858585857},{"id":"c02218","function":"ss_needleman_wunsch","pair":138,"parameters":[],"expected":0.09090909090909091},{"id":"c02219","function":"ss_smith_waterman","pair":138,"parameters":[],"expected":0.09090909090909091},{"id":"c02220","function":"ss_affine_gap","pair":138,"parameters":[],"expected":0.09090909090909094},{"id":"c02221","function":"ss_soundex","pair":138,"parameters":[],"expected":"I232"},{"id":"c02222","function":"ss_refined_soundex","pair":138,"parameters":[],"expected":"I2323"},{"id":"c02223","function":"ss_double_metaphone","pair":138,"parameters":[],"expected":"AKKS"},{"id":"c02224","function":"ss_jaccard","pair":139,"parameters":[],"expected":0.5},{"id":"c02225","function":"ss_cosine","pair":139,"parameters":[],"expected":0.7071067811865475},{"id":"c02226","function":"ss_sorensen_dice","pair":139,"parameters":[],"expected":0.6666666666666666},{"id":"c02227","function":"ss_overlap_coefficient","pair":139,"parameters":[],"expected":1.0},{"id":"c02228","function":"ss_braun_blanquet","pair":139,"parameters":[],"expected":0.5},{"id":"c02229","function":"ss_monge_elkan","pair":139,"parameters":[],"expected":0.75},{"id":"c02230","function":"ss_levenshtein","pair":139,"parameters":[],"expected":0.875},{"id":"c02231","function":"ss_lcs_similarity","pair":139,"parameters":[],"expected":0.875},{"id":"c02232","function":"ss_jaro","pair":139,"parameters":[],"expected":0.9583333333333334},{"id":"c02233","function":"ss_jaro_winkler","pair":139,"parameters":[],"expected":0.975},{"id":"c02234","function":"ss_needleman_wunsch","pair":139,"parameters":[],"expected":0.875},{"id":"c02235","function":"ss_smith_waterman","pair":139,"parameters":[],"expected":1.0},{"id":"c02236","function":"ss_affine_gap","pair":139,"parameters":[],"expected":0.75},{"id":"c02237","function":"ss_soundex","pair":139,"parameters":[],"expected":"Y200"},{"id":"c02238","function":"ss_refined_soundex","pair":139,"parameters":[],"expected":"Y2"},{"id":"c02239","function":"ss_double_metaphone","pair":139,"parameters":[],"expected":"AS"},{"id":"c02240","function":"ss_jaccard","pair":140,"parameters":[],"expected":0.2},{"id":"c02241","function":"ss_cosine","pair":140,"parameters":[],"expected":0.3333333333333333},{"id":"c02242","function":"ss_sorensen_dice","pair":140,"parameters":[],"expected":0.3333333333333333},{"id":"c02243","function":"ss_overlap_coefficient","pair":140,"parameters":[],"expected":0.3333333333333333},{"id":"c02244","function":"ss_braun_blanquet","pair":140,"parameters":[],"expected":0.3333333333333333},{"id":"c02245","function":"ss_monge_elkan","pair":140,"parameters":[],"expected":0.5777777777777778},{"id":"c02246","function":"ss_levenshtein","pair":140,"parameters":[],"expected":0.09090909090909094},{"id":"c02247","function":"ss_lcs_similarity","pair":140,"parameters":[],"expected":0.2727272727272727},{"id":"c02248","function":"ss_jaro","pair":140,"parameters":[],"expected":0.5303030303030303},{"id":"c02249","function":"ss_jaro_winkler","pair":140,"parameters":[],"expected":0.5303030303030303},{"id":"c02250","function":"ss_needleman_wunsch","pair":140,"parameters":[],"expected":0.18181818181818182},{"id":"c02251","function":"ss_smith_waterman","pair":140,"parameters":[],"expected":0.2727272727272727},{"id":"c02252","function":"ss_affine_gap","pair":140,"parameters":[],"expected":0.09090909090909094},{"id":"c02253","function":"ss_soundex","pair":140,"parameters":[],"expected":"A200"},{"id":"c02254","function":"ss_refined_soundex","pair":140,"parameters":[],"expected":"A2"},{"id":"c02255","function":"ss_double_metaphone","pair":140,"parameters":[],"expected":"AS"},{"id":"c02256","function":"ss_jaccard","pair":141,"parameters":[],"expected":1.0},{"id":"c02257","function":"ss_cosine","pair":141,"parameters":[],"expected":1.0},{"id":"c02258","function":"ss_sorensen_dice","pair":141,"parameters":[],"expected":1.0},{"id":"c02259","function":"ss_overlap_coefficient","pair":141,"parameters":[],"expected":1.0},{"id":"c02260","function":"ss_braun_blanquet","pair":141,"parameters":[],"expected":1.0},{"id":"c02261","function":"ss_monge_elkan","pair":141,"parameters":[],"expected":1.0},{"id":"c02262","function":"ss_levenshtein","pair":141,"parameters":[],"expected":1.0},{"id":"c02263","function":"ss_lcs_similarity","pair":141,"parameters":[],"expected":1.0},{"id":"c02264","function":"ss_jaro","pair":141,"parameters":[],"expected":1.0},{"id":"c02265","function":"ss_jaro_winkler","pair":141,"parameters":[],"expected":1.0},{"id":"c02266","function":"ss_needleman_wunsch","pair":141,"parameters":[],"expected":1.0},{"id":"c02267","function":"ss_smith_waterman","pair":141,"parameters":[],"expected":1.0},{"id":"c02268","function":"ss_affine_gap","pair":141,"parameters":[],"expected":1.0},{"id":"c02269","function":"ss_soundex","pair":141,"parameters":[],"expected":""},{"id":"c02270","function":"ss_refined_soundex","pair":141,"parameters":[],"expected":""},{"id":"c02271","function":"ss_double_metaphone","pair":141,"parameters":[],"expected":""},{"id":"c02272","function":"ss_jaccard","pair":142,"parameters":[],"expected":0.3333333333333333},{"id":"c02273","function":"ss_cosine","pair":142,"parameters":[],"expected":0.5},{"id":"c02274","function":"ss_sorensen_dice","pair":142,"parameters":[],"expected":0.5},{"id":"c02275","function":"ss_overlap_coefficient","pair":142,"parameters":[],"expected":0.5},{"id":"c02276","function":"ss_braun_blanquet","pair":142,"parameters":[],"expected":0.5},{"id":"c02277","function":"ss_monge_elkan","pair":142,"parameters":[],"expected":0.990909090909091},{"id":"c02278","function":"ss_levenshtein","pair":142,"parameters":[],"expected":0.9230769230769231},{"id":"c02279","function":"ss_lcs_similarity","pair":142,"parameters":[],"expected":0.9230769230769231},{"id":"c02280","function":"ss_jaro","pair":142,"parameters":[],"expected":0.9743589743589745},{"id":"c02281","function":"ss_jaro_winkler","pair":142,"parameters":[],"expected":0.9846153846153847},{"id":"c02282","function":"ss_needleman_wunsch","pair":142,"parameters":[],"expected":0.9230769230769231},{"id":"c02283","function":"ss_smith_waterman","pair":142,"parameters":[],"expected":1.0},{"id":"c02284","function":"ss_affine_gap","pair":142,"parameters":[],"expected":0.7692307692307692},{"id":"c02285","function":"ss_soundex","pair":142,"parameters":[],"expected":"X300"},{"id":"c02286","function":"ss_refined_soundex","pair":142,"parameters":[],"expected":"X3"},{"id":"c02287","function":"ss_double_metaphone","pair":142,"parameters":[],"expected":"SST"},{"id":"c02288","function":"ss_jaccard","pair":143,"parameters":[],"expected":1.0},{"id":"c02289","function":"ss_cosine","pair":143,"parameters":[],"expected":1.0},{"id":"c02290","function":"ss_sorensen_dice","pair":143,"parameters":[],"expected":1.0},{"id":"c02291","function":"ss_overlap_coefficient","pair":143,"parameters":[],"expected":1.0},{"id":"c02292","function":"ss_braun_blanquet","pair":143,"parameters":[],"expected":1.0},{"id":"c02293","function":"ss_monge_elkan","pair":143,"parameters":[],"expected":1.0},{"id":"c02294","function":"ss_levenshtein","pair":143,"parameters":[],"expected":1.0},{"id":"c02295","function":"ss_lcs_similarity","pair":143,"parameters":[],"expected":1.0},{"id":"c02296","function":"ss_jaro","pair":143,"parameters":[],"expected":1.0},{"id":"c02297","function":"ss_jaro_winkler","pair":143,"parameters":[],"expected":1.0},{"id":"c02298","function":"ss_needleman_wunsch","pair":143,"parameters":[],"expected":1.0},{"id":"c02299","function":"ss_smith_waterman","pair":143,"parameters":[],"expected":1.0},{"id":"c02300","function":"ss_affine_gap","pair":143,"parameters":[],"expected":1.0},{"id":"c02301","function":"ss_soundex","pair":143,"parameters":[],"expected":""},{"id":"c02302","function":"ss_refined_soundex","pair":143,"parameters":[],"expected":""},{"id":"c02303","function":"ss_double_metaphone","pair":143,"parameters":[],"expected":""},{"id":"c02304","function":"ss_jaccard","pair":144,"parameters":[],"expected":1.0},{"id":"c02305","function":"ss_cosine","pair":144,"parameters":[],"expected":1.0},{"id":"c02306","function":"ss_sorensen_dice","pair":144,"parameters":[],"expected":1.0},{"id":"c02307","function":"ss_overlap_coefficient","pair":144,"parameters":[],"expected":1.0},{"id":"c02308","function":"ss_braun_blanquet","pair":144,"parameters":[],"expected":1.0},{"id":"c02309","function":"ss_monge_elkan","pair":144,"parameters":[],"expected":1.0},{"id":"c02310","function":"ss_levenshtein","pair":144,"parameters":[],"expected":1.0},{"id":"c02311","function":"ss_lcs_similarity","pair":144,"parameters":[],"expected":1.0},{"id":"c02312","function":"ss_jaro","pair":144,"parameters":[],"expected":1.0},{"id":"c02313","function":"ss_jaro_winkler","pair":144,"parameters":[],"expected":1.0},{"id":"c02314","function":"ss_needleman_wunsch","pair":144,"parameters":[],"expected":1.0},{"id":"c02315","function":"ss_smith_waterman","pair":144,"parameters":[],"expected":1.0},{"id":"c02316","function":"ss_affine_gap","pair":144,"parameters":[],"expected":1.0},{"id":"c02317","function":"ss_soundex","pair":144,"parameters":[],"expected":"A300"},{"id":"c02318","function":"ss_refined_soundex","pair":144,"parameters":[],"expected":"A3"},{"id":"c02319","function":"ss_double_metaphone","pair":144,"parameters":[],"expected":"AT"},{"id":"c02320","function":"ss_jaccard","pair":145,"parameters":[],"expected":1.0},{"id":"c02321","function":"ss_cosine","pair":145,"parameters":[],"expected":1.0},{"id":"c02322","function":"ss_sorensen_dice","pair":145,"parameters":[],"expected":1.0},{"id":"c02323","function":"ss_overlap_coefficient","pair":145,"parameters":[],"expected":1.0},{"id":"c02324","function":"ss_braun_blanquet","pair":145,"parameters":[],"expected":1.0},{"id":"c02325","function":"ss_monge_elkan","pair":145,"parameters":[],"expected":1.0},{"id":"c02326","function":"ss_levenshtein","pair":145,"parameters":[],"expected":1.0},{"id":"c02327","function":"ss_lcs_similarity","pair":145,"parameters":[],"expected":1.0},{"id":"c02328","function":"ss_jaro","pair":145,"parameters":[],"expected":1.0},{"id":"c02329","function":"ss_jaro_winkler","pair":145,"parameters":[],"expected":1.0},{"id":"c02330","function":"ss_needleman_wunsch","pair":145,"parameters":[],"expected":1.0},{"id":"c02331","function":"ss_smith_waterman","pair":145,"parameters":[],"expected":1.0},{"id":"c02332","function":"ss_affine_gap","pair":145,"parameters":[],"expected":1.0},{"id":"c02333","function":"ss_soundex","pair":145,"parameters":[],"expected":"I121"},{"id":"c02334","function":"ss_refined_soundex","pair":145,"parameters":[],"expected":"I12012"},{"id":"c02335","function":"ss_double_metaphone","pair":145,"parameters":[],"expected":"APKP"},{"id":"c02336","function":"ss_jaccard","pair":146,"parameters":[],"expected":0.14285714285714285},{"id":"c02337","function":"ss_cosine","pair":146,"parameters":[],"expected":0.25},{"id":"c02338","function":"ss_sorensen_dice","pair":146,"parameters":[],"expected":0.25},{"id":"c02339","function":"ss_overlap_coefficient","pair":146,"parameters":[],"expected":0.25},{"id":"c02340","function":"ss_braun_blanquet","pair":146,"parameters":[],"expected":0.25},{"id":"c02341","function":"ss_monge_elkan","pair":146,"parameters":[],"expected":0.73875},{"id":"c02342","function":"ss_levenshtein","pair":146,"parameters":[],"expected":0.19999999999999996},{"id":"c02343","function":"ss_lcs_similarity","pair":146,"parameters":[],"expected":0.3333333333333333},{"id":"c02344","function":"ss_jaro","pair":146,"parameters":[],"expected":0.611111111111111},{"id":"c02345","function":"ss_jaro_winkler","pair":146,"parameters":[],"expected":0.611111111111111},{"id":"c02346","function":"ss_needleman_wunsch","pair":146,"parameters":[],"expected":0.26666666666666666},{"id":"c02347","function":"ss_smith_waterman","pair":146,"parameters":[],"expected":0.2},{"id":"c02348","function":"ss_affine_gap","pair":146,"parameters":[],"expected":0.19999999999999996},{"id":"c02349","function":"ss_soundex","pair":146,"parameters":[],"expected":"A220"},{"id":"c02350","function":"ss_refined_soundex","pair":146,"parameters":[],"expected":"A202"},{"id":"c02351","function":"ss_double_metaphone","pair":146,"parameters":[],"expected":"ASK"},{"id":"c02352","function":"ss_jaccard","pair":147,"parameters":[],"expected":0.5},{"id":"c02353","function":"ss_cosine","pair":147,"parameters":[],"expected":0.6666666666666666},{"id":"c02354","function":"ss_sorensen_dice","pair":147,"parameters":[],"expected":0.6666666666666666},{"id":"c02355","function":"ss_overlap_coefficient","pair":147,"parameters":[],"expected":0.6666666666666666},{"id":"c02356","function":"ss_braun_blanquet","pair":147,"parameters":[],"expected":0.6666666666666666},{"id":"c02357","function":"ss_monge_elkan","pair":147,"parameters":[],"expected":0.9370370370370369},{"id":"c02358","function":"ss_levenshtein","pair":147,"parameters":[],"expected":0.9090909090909091},{"id":"c02359","function":"ss_lcs_similarity","pair":147,"parameters":[],"expected":0.9090909090909091},{"id":"c02360","function":"ss_jaro","pair":147,"parameters":[],"expected":0.9696969696969697},{"id":"c02361","function":"ss_jaro_winkler","pair":147,"parameters":[],"expected":0.9818181818181818},{"id":"c02362","function":"ss_needleman_wunsch","pair":147,"parameters":[],"expected":0.9090909090909091},{"id":"c02363","function":"ss_smith_waterman","pair":147,"parameters":[],"expected":1.0},{"id":"c02364","function":"ss_affine_gap","pair":147,"parameters":[],"expected":0.8181818181818181},{"id":"c02365","function":"ss_soundex","pair":147,"parameters":[],"expected":"Y221"},{"id":"c02366","function":"ss_refined_soundex","pair":147,"parameters":[],"expected":"Y20210"},{"id":"c02367","function":"ss_double_metaphone","pair":147,"parameters":[],"expected":"AKSK"},{"id":"c02368","function":"ss_jaccard","pair":148,"parameters":[],"expected":1.0},{"id":"c02369","function":"ss_cosine","pair":148,"parameters":[],"expected":1.0},{"id":"c02370","function":"ss_sorensen_dice","pair":148,"parameters":[],"expected":1.0},{"id":"c02371","function":"ss_overlap_coefficient","pair":148,"parameters":[],"expected":1.0},{"id":"c02372","function":"ss_braun_blanquet","pair":148,"parameters":[],"expected":1.0},{"id":"c02373","function":"ss_monge_elkan","pair":148,"parameters":[],"expected":1.0},{"id":"c02374","function":"ss_levenshtein","pair":148,"parameters":[],"expected":1.0},{"id":"c02375","function":"ss_lcs_similarity","pair":148,"parameters":[],"expected":1.0},{"id":"c02376","function":"ss_jaro","pair":148,"parameters":[],"expected":1.0},{"id":"c02377","function":"ss_jaro_winkler","pair":148,"parameters":[],"expected":1.0},{"id":"c02378","function":"ss_needleman_wunsch","pair":148,"parameters":[],"expected":1.0},{"id":"c02379","function":"ss_smith_waterman","pair":148,"parameters":[],"expected":1.0},{"id":"c02380","function":"ss_affine_gap","pair":148,"parameters":[],"expected":1.0},{"id":"c02381","function":"ss_soundex","pair":148,"parameters":[],"expected":"B000"},{"id":"c02382","function":"ss_refined_soundex","pair":148,"parameters":[],"expected":"B0"},{"id":"c02383","function":"ss_double_metaphone","pair":148,"parameters":[],"expected":"P"},{"id":"c02384","function":"ss_jaccard","pair":149,"parameters":[],"expected":0.0},{"id":"c02385","function":"ss_cosine","pair":149,"parameters":[],"expected":0.0},{"id":"c02386","function":"ss_sorensen_dice","pair":149,"parameters":[],"expected":0.0},{"id":"c02387","function":"ss_overlap_coefficient","pair":149,"parameters":[],"expected":0.0},{"id":"c02388","function":"ss_braun_blanquet","pair":149,"parameters":[],"expected":0.0},{"id":"c02389","function":"ss_monge_elkan","pair":149,"parameters":[],"expected":0.3333333333333333},{"id":"c02390","function":"ss_levenshtein","pair":149,"parameters":[],"expected":0.06666666666666665},{"id":"c02391","function":"ss_lcs_similarity","pair":149,"parameters":[],"expected":0.06666666666666667},{"id":"c02392","function":"ss_jaro","pair":149,"parameters":[],"expected":0.4222222222222222},{"id":"c02393","function":"ss_jaro_winkler","pair":149,"parameters":[],"expected":0.4222222222222222},{"id":"c02394","function":"ss_needleman_wunsch","pair":149,"parameters":[],"expected":0.06666666666666667},{"id":"c02395","function":"ss_smith_waterman","pair":149,"parameters":[],"expected":0.2},{"id":"c02396","function":"ss_affine_gap","pair":149,"parameters":[],"expected":0.0},{"id":"c02397","function":"ss_soundex","pair":149,"parameters":[],"expected":"B321"},{"id":"c02398","function":"ss_refined_soundex","pair":149,"parameters":[],"expected":"B3213"},{"id":"c02399","function":"ss_double_metaphone","pair":149,"parameters":[],"expected":"PTSK"},{"id":"c02400","function":"ss_jaccard","pair":150,"parameters":[],"expected":0.0},{"id":"c02401","function":"ss_cosine","pair":150,"parameters":[],"expected":0.0},{"id":"c02402","function":"ss_sorensen_dice","pair":150,"parameters":[],"expected":0.0},{"id":"c02403","function":"ss_overlap_coefficient","pair":150,"parameters":[],"expected":0.0},{"id":"c02404","function":"ss_braun_blanquet","pair":150,"parameters":[],"expected":0.0},{"id":"c02405","function":"ss_monge_elkan","pair":150,"parameters":[],"expected":0.4246031746031746},{"id":"c02406","function":"ss_levenshtein","pair":150,"parameters":[],"expected":0.33333333333333337},{"id":"c02407","function":"ss_lcs_similarity","pair":150,"parameters":[],"expected":0.5833333333333334},{"id":"c02408","function":"ss_jaro","pair":150,"parameters":[],"expected":0.7222222222222222},{"id":"c02409","function":"ss_jaro_winkler","pair":150,"parameters":[],"expected":0.75},{"id":"c02410","function":"ss_needleman_wunsch","pair":150,"parameters":[],"expected":0.4583333333333333},{"id":"c02411","function":"ss_smith_waterman","pair":150,"parameters":[],"expected":0.3333333333333333},{"id":"c02412","function":"ss_affine_gap","pair":150,"parameters":[],"expected":0.16666666666666663},{"id":"c02413","function":"ss_soundex","pair":150,"parameters":[],"expected":"Z000"},{"id":"c02414","function":"ss_refined_soundex","pair":150,"parameters":[],"expected":"Z"},{"id":"c02415","function":"ss_double_metaphone","pair":150,"parameters":[],"expected":"SKS"},{"id":"c02416","function":"ss_jaccard","pair":151,"parameters":[],"expected":0.0},{"id":"c02417","function":"ss_cosine","pair":151,"parameters":[],"expected":0.0},{"id":"c02418","function":"ss_sorensen_dice","pair":151,"parameters":[],"expected":0.0},{"id":"c02419","function":"ss_overlap_coefficient","pair":151,"parameters":[],"expected":0.0},{"id":"c02420","function":"ss_braun_blanquet","pair":151,"parameters":[],"expected":0.0},{"id":"c02421","function":"ss_monge_elkan","pair":151,"parameters":[],"expected":0.0},{"id":"c02422","function":"ss_levenshtein","pair":151,"parameters":[],"expected":0.0},{"id":"c02423","function":"ss_lcs_similarity","pair":151,"parameters":[],"expected":0.0},{"id":"c02424","function":"ss_jaro","pair":151,"parameters":[],"expected":0.0},{"id":"c02425","function":"ss_jaro_winkler","pair":151,"parameters":[],"expected":0.0},{"id":"c02426","function":"ss_needleman_wunsch","pair":151,"parameters":[],"expected":0.0},{"id":"c02427","function":"ss_smith_waterman","pair":151,"parameters":[],"expected":0.0},{"id":"c02428","function":"ss_affine_gap","pair":151,"parameters":[],"expected":0.0},{"id":"c02429","function":"ss_soundex","pair":151,"parameters":[],"expected":"B000"},{"id":"c02430","function":"ss_refined_soundex","pair":151,"parameters":[],"expected":"B"},{"id":"c02431","function":"ss_double_metaphone","pair":151,"parameters":[],"expected":"P"},{"id":"c02432","function":"ss_jaccard","pair":152,"parameters":[],"expected":1.0},{"id":"c02433","function":"ss_cosine","pair":152,"parameters":[],"expected":1.0},{"id":"c02434","function":"ss_sorensen_dice","pair":152,"parameters":[],"expected":1.0},{"id":"c02435","function":"ss_overlap_coefficient","pair":152,"parameters":[],"expected":1.0},{"id":"c02436","function":"ss_braun_blanquet","pair":152,"parameters":[],"expected":1.0},{"id":"c02437","function":"ss_monge_elkan","pair":152,"parameters":[],"expected":1.0},{"id":"c02438","function":"ss_levenshtein","pair":152,"parameters":[],"expected":1.0},{"id":"c02439","function":"ss_lcs_similarity","pair":152,"parameters":[],"expected":1.0},{"id":"c02440","function":"ss_jaro","pair":152,"parameters":[],"expected":1.0},{"id":"c02441","function":"ss_jaro_winkler","pair":152,"parameters":[],"expected":1.0},{"id":"c02442","function":"ss_needleman_wunsch","pair":152,"parameters":[],"expected":1.0},{"id":"c02443","function":"ss_smith_waterman","pair":152,"parameters":[],"expected":1.0},{"id":"c02444","function":"ss_affine_gap","pair":152,"parameters":[],"expected":1.0},{"id":"c02445","function":"ss_soundex","pair":152,"parameters":[],"expected":"Y212"},{"id":"c02446","function":"ss_refined_soundex","pair":152,"parameters":[],"expected":"Y21212"},{"id":"c02447","function":"ss_double_metaphone","pair":152,"parameters":[],"expected":"AKPS"},{"id":"c02448","function":"ss_jaccard","pair":153,"parameters":[],"expected":0.0},{"id":"c02449","function":"ss_cosine","pair":153,"parameters":[],"expected":0.0},{"id":"c02450","function":"ss_sorensen_dice","pair":153,"parameters":[],"expected":0.0},{"id":"c02451","function":"ss_overlap_coefficient","pair":153,"parameters":[],"expected":0.0},{"id":"c02452","function":"ss_braun_blanquet","pair":153,"parameters":[],"expected":0.0},{"id":"c02453","function":"ss_monge_elkan","pair":153,"parameters":[],"expected":0.4743589743589744},{"id":"c02454","function":"ss_levenshtein","pair":153,"parameters":[],"expected":0.07692307692307687},{"id":"c02455","function":"ss_lcs_similarity","pair":153,"parameters":[],"expected":0.23076923076923078},{"id":"c02456","function":"ss_jaro","pair":153,"parameters":[],"expected":0.4743589743589744},{"id":"c02457","function":"ss_jaro_winkler","pair":153,"parameters":[],"expected":0.4743589743589744},{"id":"c02458","function":"ss_needleman_wunsch","pair":153,"parameters":[],"expected":0.07692307692307693},{"id":"c02459","function":"ss_smith_waterman","pair":153,"parameters":[],"expected":0.15384615384615385},{"id":"c02460","function":"ss_affine_gap","pair":153,"parameters":[],"expected":0.07692307692307687},{"id":"c02461","function":"ss_soundex","pair":153,"parameters":[],"expected":"C000"},{"id":"c02462","function":"ss_refined_soundex","pair":153,"parameters":[],"expected":"C0"},{"id":"c02463","function":"ss_double_metaphone","pair":153,"parameters":[],"expected":"K"},{"id":"c02464","function":"ss_jaccard","pair":154,"parameters":[],"expected":0.0},{"id":"c02465","function":"ss_cosine","pair":154,"parameters":[],"expected":0.0},{"id":"c02466","function":"ss_sorensen_dice","pair":154,"parameters":[],"expected":0.0},{"id":"c02467","function":"ss_overlap_coefficient","pair":154,"parameters":[],"expected":0.0},{"id":"c02468","function":"ss_braun_blanquet","pair":154,"parameters":[],"expected":0.0},{"id":"c02469","function":"ss_monge_elkan","pair":154,"parameters":[],"expected":0.5825396825396825},{"id":"c02470","function":"ss_levenshtein","pair":154,"parameters":[],"expected":0.25},{"id":"c02471","function":"ss_lcs_similarity","pair":154,"parameters":[],"expected":0.4375},{"id":"c02472","function":"ss_jaro","pair":154,"parameters":[],"expected":0.6944444444444445},{"id":"c02473","function":"ss_jaro_winkler","pair":154,"parameters":[],"expected":0.7250000000000001},{"id":"c02474","function":"ss_needleman_wunsch","pair":154,"parameters":[],"expected":0.34375},{"id":"c02475","function":"ss_smith_waterman","pair":154,"parameters":[],"expected":0.125},{"id":"c02476","function":"ss_affine_gap","pair":154,"parameters":[],"expected":0.125},{"id":"c02477","function":"ss_soundex","pair":154,"parameters":[],"expected":"A322"},{"id":"c02478","function":"ss_refined_soundex","pair":154,"parameters":[],"expected":"A3202"},{"id":"c02479","function":"ss_double_metaphone","pair":154,"parameters":[],"expected":"ATSK"},{"id":"c02480","function":"ss_jaccard","pair":155,"parameters":[],"expected":0.0},{"id":"c02481","function":"ss_cosine","pair":155,"parameters":[],"expected":0.0},{"id":"c02482","function":"ss_sorensen_dice","pair":155,"parameters":[],"expected":0.0},{"id":"c02483","function":"ss_overlap_coefficient","pair":155,"parameters":[],"expected":0.0},{"id":"c02484","function":"ss_braun_blanquet","pair":155,"parameters":[],"expected":0.0},{"id":"c02485","function":"ss_monge_elkan","pair":155,"parameters":[],"expected":0.3023148148148148},{"id":"c02486","function":"ss_levenshtein","pair":155,"parameters":[],"expected":0.11111111111111116},{"id":"c02487","function":"ss_lcs_similarity","pair":155,"parameters":[],"expected":0.16666666666666666},{"id":"c02488","function":"ss_jaro","pair":155,"parameters":[],"expected":0.35185185185185186},{"id":"c02489","function":"ss_jaro_winkler","pair":155,"parameters":[],"expected":0.35185185185185186},{"id":"c02490","function":"ss_needleman_wunsch","pair":155,"parameters":[],"expected":0.1388888888888889},{"id":"c02491","function":"ss_smith_waterman","pair":155,"parameters":[],"expected":0.125},{"id":"c02492","function":"ss_affine_gap","pair":155,"parameters":[],"expected":0.0},{"id":"c02493","function":"ss_soundex","pair":155,"parameters":[],"expected":"S000"},{"id":"c02494","function":"ss_refined_soundex","pair":155,"parameters":[],"expected":"S"},{"id":"c02495","function":"ss_double_metaphone","pair":155,"parameters":[],"expected":"S"},{"id":"c02496","function":"ss_jaccard","pair":156,"parameters":[],"expected":1.0},{"id":"c02497","function":"ss_cosine","pair":156,"parameters":[],"expected":1.0},{"id":"c02498","function":"ss_sorensen_dice","pair":156,"parameters":[],"expected":1.0},{"id":"c02499","function":"ss_overlap_coefficient","pair":156,"parameters":[],"expected":1.0},{"id":"c02500","function":"ss_braun_blanquet","pair":156,"parameters":[],"expected":1.0},{"id":"c02501","function":"ss_monge_elkan","pair":156,"parameters":[],"expected":1.0},{"id":"c02502","function":"ss_levenshtein","pair":156,"parameters":[],"expected":1.0},{"id":"c02503","function":"ss_lcs_similarity","pair":156,"parameters":[],"expected":1.0},{"id":"c02504","function":"ss_jaro","pair":156,"parameters":[],"expected":1.0},{"id":"c02505","function":"ss_jaro_winkler","pair":156,"parameters":[],"expected":1.0},{"id":"c02506","function":"ss_needleman_wunsch","pair":156,"parameters":[],"expected":1.0},{"id":"c02507","function":"ss_smith_waterman","pair":156,"parameters":[],"expected":1.0},{"id":"c02508","function":"ss_affine_gap","pair":156,"parameters":[],"expected":1.0},{"id":"c02509","function":"ss_soundex","pair":156,"parameters":[],"expected":"C210"},{"id":"c02510","function":"ss_refined_soundex","pair":156,"parameters":[],"expected":"C021"},{"id":"c02511","function":"ss_double_metaphone","pair":156,"parameters":[],"expected":"SSP"},{"id":"c02512","function":"ss_jaccard","pair":157,"parameters":[],"expected":0.0},{"id":"c02513","function":"ss_cosine","pair":157,"parameters":[],"expected":0.0},{"id":"c02514","function":"ss_sorensen_dice","pair":157,"parameters":[],"expected":0.0},{"id":"c02515","function":"ss_overlap_coefficient","pair":157,"parameters":[],"expected":0.0},{"id":"c02516","function":"ss_braun_blanquet","pair":157,"parameters":[],"expected":0.0},{"id":"c02517","function":"ss_monge_elkan","pair":157,"parameters":[],"expected":0.3928571428571429},{"id":"c02518","function":"ss_levenshtein","pair":157,"parameters":[],"expected":0.05882352941176472},{"id":"c02519","function":"ss_lcs_similarity","pair":157,"parameters":[],"expected":0.23529411764705882},{"id":"c02520","function":"ss_jaro","pair":157,"parameters":[],"expected":0.5381263616557734},{"id":"c02521","function":"ss_jaro_winkler","pair":157,"parameters":[],"expected":0.5381263616557734},{"id":"c02522","function":"ss_needleman_wunsch","pair":157,"parameters":[],"expected":0.058823529411764705},{"id":"c02523","function":"ss_smith_waterman","pair":157,"parameters":[],"expected":0.11764705882352941},{"id":"c02524","function":"ss_affine_gap","pair":157,"parameters":[],"expected":0.05882352941176472},{"id":"c02525","function":"ss_soundex","pair":157,"parameters":[],"expected":"D220"},{"id":"c02526","function":"ss_refined_soundex","pair":157,"parameters":[],"expected":"D2020"},{"id":"c02527","function":"ss_double_metaphone","pair":157,"parameters":[],"expected":"TSKS"},{"id":"c02528","function":"ss_jaccard","pair":158,"parameters":[],"expected":1.0},{"id":"c02529","function":"ss_cosine","pair":158,"parameters":[],"expected":1.0},{"id":"c02530","function":"ss_sorensen_dice","pair":158,"parameters":[],"expected":1.0},{"id":"c02531","function":"ss_overlap_coefficient","pair":158,"parameters":[],"expected":1.0},{"id":"c02532","function":"ss_braun_blanquet","pair":158,"parameters":[],"expected":1.0},{"id":"c02533","function":"ss_monge_elkan","pair":158,"parameters":[],"expected":1.0},{"id":"c02534","function":"ss_levenshtein","pair":158,"parameters":[],"expected":1.0},{"id":"c02535","function":"ss_lcs_similarity","pair":158,"parameters":[],"expected":1.0},{"id":"c02536","function":"ss_jaro","pair":158,"parameters":[],"expected":1.0},{"id":"c02537","function":"ss_jaro_winkler","pair":158,"parameters":[],"expected":1.0},{"id":"c02538","function":"ss_needleman_wunsch","pair":158,"parameters":[],"expected":1.0},{"id":"c02539","function":"ss_smith_waterman","pair":158,"parameters":[],"expected":1.0},{"id":"c02540","function":"ss_affine_gap","pair":158,"parameters":[],"expected":1.0},{"id":"c02541","function":"ss_soundex","pair":158,"parameters":[],"expected":"I200"},{"id":"c02542","function":"ss_refined_soundex","pair":158,"parameters":[],"expected":"I20"},{"id":"c02543","function":"ss_double_metaphone","pair":158,"parameters":[],"expected":"ASSK"},{"id":"c02544","function":"ss_jaccard","pair":159,"parameters":[],"expected":0.0},{"id":"c02545","function":"ss_cosine","pair":159,"parameters":[],"expected":0.0},{"id":"c02546","function":"ss_sorensen_dice","pair":159,"parameters":[],"expected":0.0},{"id":"c02547","function":"ss_overlap_coefficient","pair":159,"parameters":[],"expected":0.0},{"id":"c02548","function":"ss_braun_blanquet","pair":159,"parameters":[],"expected":0.0},{"id":"c02549","function":"ss_monge_elkan","pair":159,"parameters":[],"expected":0.6666666666666666},{"id":"c02550","function":"ss_levenshtein","pair":159,"parameters":[],"expected":0.11111111111111116},{"id":"c02551","function":"ss_lcs_similarity","pair":159,"parameters":[],"expected":0.4444444444444444},{"id":"c02552","function":"ss_jaro","pair":159,"parameters":[],"expected":0.6666666666666666},{"id":"c02553","function":"ss_jaro_winkler","pair":159,"parameters":[],"expected":0.6666666666666666},{"id":"c02554","function":"ss_needleman_wunsch","pair":159,"parameters":[],"expected":0.2777777777777778},{"id":"c02555","function":"ss_smith_waterman","pair":159,"parameters":[],"expected":0.2222222222222222},{"id":"c02556","function":"ss_affine_gap","pair":159,"parameters":[],"expected":0.11111111111111116},{"id":"c02557","function":"ss_soundex","pair":159,"parameters":[],"expected":"S000"},{"id":"c02558","function":"ss_refined_soundex","pair":159,"parameters":[],"expected":"S"},{"id":"c02559","function":"ss_double_metaphone","pair":159,"parameters":[],"expected":"SK"},{"id":"c02560","function":"ss_jaccard","pair":160,"parameters":[],"expected":1.0},{"id":"c02561","function":"ss_cosine","pair":160,"parameters":[],"expected":1.0},{"id":"c02562","function":"ss_sorensen_dice","pair":160,"parameters":[],"expected":1.0},{"id":"c02563","function":"ss_overlap_coefficient","pair":160,"parameters":[],"expected":1.0},{"id":"c02564","function":"ss_braun_blanquet","pair":160,"parameters":[],"expected":1.0},{"id":"c02565","function":"ss_monge_elkan","pair":160,"parameters":[],"expected":1.0},{"id":"c02566","function":"ss_levenshtein","pair":160,"parameters":[],"expected":1.0},{"id":"c02567","function":"ss_lcs_similarity","pair":160,"parameters":[],"expected":1.0},{"id":"c02568","function":"ss_jaro","pair":160,"parameters":[],"expected":1.0},{"id":"c02569","function":"ss_jaro_winkler","pair":160,"parameters":[],"expected":1.0},{"id":"c02570","function":"ss_needleman_wunsch","pair":160,"parameters":[],"expected":1.0},{"id":"c02571","function":"ss_smith_waterman","pair":160,"parameters":[],"expected":1.0},{"id":"c02572","function":"ss_affine_gap","pair":160,"parameters":[],"expected":1.0},{"id":"c02573","function":"ss_soundex","pair":160,"parameters":[],"expected":"B200"},{"id":"c02574","function":"ss_refined_soundex","pair":160,"parameters":[],"expected":"B02"},{"id":"c02575","function":"ss_double_metaphone","pair":160,"parameters":[],"expected":"PS"},{"id":"c02576","function":"ss_jaccard","pair":161,"parameters":[],"expected":1.0},{"id":"c02577","function":"ss_cosine","pair":161,"parameters":[],"expected":1.0},{"id":"c02578","function":"ss_sorensen_dice","pair":161,"parameters":[],"expected":1.0},{"id":"c02579","function":"ss_overlap_coefficient","pair":161,"parameters":[],"expected":1.0},{"id":"c02580","function":"ss_braun_blanquet","pair":161,"parameters":[],"expected":1.0},{"id":"c02581","function":"ss_monge_elkan","pair":161,"parameters":[],"expected":1.0},{"id":"c02582","function":"ss_levenshtein","pair":161,"parameters":[],"expected":1.0},{"id":"c02583","function":"ss_lcs_similarity","pair":161,"parameters":[],"expected":1.0},{"id":"c02584","function":"ss_jaro","pair":161,"parameters":[],"expected":1.0},{"id":"c02585","function":"ss_jaro_winkler","pair":161,"parameters":[],"expected":1.0},{"id":"c02586","function":"ss_needleman_wunsch","pair":161,"parameters":[],"expected":1.0},{"id":"c02587","function":"ss_smith_waterman","pair":161,"parameters":[],"expected":1.0},{"id":"c02588","function":"ss_affine_gap","pair":161,"parameters":[],"expected":1.0},{"id":"c02589","function":"ss_soundex","pair":161,"parameters":[],"expected":""},{"id":"c02590","function":"ss_refined_soundex","pair":161,"parameters":[],"expected":""},{"id":"c02591","function":"ss_double_metaphone","pair":161,"parameters":[],"expected":""},{"id":"c02592","function":"ss_jaccard","pair":162,"parameters":[],"expected":0.0},{"id":"c02593","function":"ss_cosine","pair":162,"parameters":[],"expected":0.0},{"id":"c02594","function":"ss_sorensen_dice","pair":162,"parameters":[],"expected":0.0},{"id":"c02595","function":"ss_overlap_coefficient","pair":162,"parameters":[],"expected":0.0},{"id":"c02596","function":"ss_braun_blanquet","pair":162,"parameters":[],"expected":0.0},{"id":"c02597","function":"ss_monge_elkan","pair":162,"parameters":[],"expected":0.5185185185185185},{"id":"c02598","function":"ss_levenshtein","pair":162,"parameters":[],"expected":0.0},{"id":"c02599","function":"ss_lcs_similarity","pair":162,"parameters":[],"expected":0.16666666666666666},{"id":"c02600","function":"ss_jaro","pair":162,"parameters":[],"expected":0.5185185185185185},{"id":"c02601","function":"ss_jaro_winkler","pair":162,"parameters":[],"expected":0.5185185185185185},{"id":"c02602","function":"ss_needleman_wunsch","pair":162,"parameters":[],"expected":0.08333333333333333},{"id":"c02603","function":"ss_smith_waterman","pair":162,"parameters":[],"expected":0.1111111111111111},{"id":"c02604","function":"ss_affine_gap","pair":162,"parameters":[],"expected":0.0},{"id":"c02605","function":"ss_soundex","pair":162,"parameters":[],"expected":"A120"},{"id":"c02606","function":"ss_refined_soundex","pair":162,"parameters":[],"expected":"A102"},{"id":"c02607","function":"ss_double_metaphone","pair":162,"parameters":[],"expected":"APKS"},{"id":"c02608","function":"ss_jaccard","pair":163,"parameters":[],"expected":1.0},{"id":"c02609","function":"ss_cosine","pair":163,"parameters":[],"expected":1.0},{"id":"c02610","function":"ss_sorensen_dice","pair":163,"parameters":[],"expected":1.0},{"id":"c02611","function":"ss_overlap_coefficient","pair":163,"parameters":[],"expected":1.0},{"id":"c02612","function":"ss_braun_blanquet","pair":163,"parameters":[],"expected":1.0},{"id":"c02613","function":"ss_monge_elkan","pair":163,"parameters":[],"expected":1.0},{"id":"c02614","function":"ss_levenshtein","pair":163,"parameters":[],"expected":0.9444444444444444},{"id":"c02615","function":"ss_lcs_similarity","pair":163,"parameters":[],"expected":0.9444444444444444},{"id":"c02616","function":"ss_jaro","pair":163,"parameters":[],"expected":0.9814814814814815},{"id":"c02617","function":"ss_jaro_winkler","pair":163,"parameters":[],"expected":0.9888888888888889},{"id":"c02618","function":"ss_needleman_wunsch","pair":163,"parameters":[],"expected":0.9444444444444444},{"id":"c02619","function":"ss_smith_waterman","pair":163,"parameters":[],"expected":1.0},{"id":"c02620","function":"ss_affine_gap","pair":163,"parameters":[],"expected":0.8333333333333334},{"id":"c02621","function":"ss_soundex","pair":163,"parameters":[],"expected":"A223"},{"id":"c02622","function":"ss_refined_soundex","pair":163,"parameters":[],"expected":"A2020301"},{"id":"c02623","function":"ss_double_metaphone","pair":163,"parameters":[],"expected":"ASKT"},{"id":"c02624","function":"ss_jaccard","pair":164,"parameters":[],"expected":0.2},{"id":"c02625","function":"ss_cosine","pair":164,"parameters":[],"expected":0.3333333333333333},{"id":"c02626","function":"ss_sorensen_dice","pair":164,"parameters":[],"expected":0.3333333333333333},{"id":"c02627","function":"ss_overlap_coefficient","pair":164,"parameters":[],"expected":0.3333333333333333},{"id":"c02628","function":"ss_braun_blanquet","pair":164,"parameters":[],"expected":0.3333333333333333},{"id":"c02629","function":"ss_monge_elkan","pair":164,"parameters":[],"expected":0.7712962962962964},{"id":"c02630","function":"ss_levenshtein","pair":164,"parameters":[],"expected":0.25},{"id":"c02631","function":"ss_lcs_similarity","pair":164,"parameters":[],"expected":0.625},{"id":"c02632","function":"ss_jaro","pair":164,"parameters":[],"expected":0.8214285714285715},{"id":"c02633","function":"ss_jaro_winkler","pair":164,"parameters":[],"expected":0.8214285714285715},{"id":"c02634","function":"ss_needleman_wunsch","pair":164,"parameters":[],"expected":0.4375},{"id":"c02635","function":"ss_smith_waterman","pair":164,"parameters":[],"expected":0.375},{"id":"c02636","function":"ss_affine_gap","pair":164,"parameters":[],"expected":0.0},{"id":"c02637","function":"ss_soundex","pair":164,"parameters":[],"expected":"A200"},{"id":"c02638","function":"ss_refined_soundex","pair":164,"parameters":[],"expected":"A20"},{"id":"c02639","function":"ss_double_metaphone","pair":164,"parameters":[],"expected":"AKS"},{"id":"c02640","function":"ss_jaccard","pair":165,"parameters":[],"expected":1.0},{"id":"c02641","function":"ss_cosine","pair":165,"parameters":[],"expected":1.0},{"id":"c02642","function":"ss_sorensen_dice","pair":165,"parameters":[],"expected":1.0},{"id":"c02643","function":"ss_overlap_coefficient","pair":165,"parameters":[],"expected":1.0},{"id":"c02644","function":"ss_braun_blanquet","pair":165,"parameters":[],"expected":1.0},{"id":"c02645","function":"ss_monge_elkan","pair":165,"parameters":[],"expected":1.0},{"id":"c02646","function":"ss_levenshtein","pair":165,"parameters":[],"expected":1.0},{"id":"c02647","function":"ss_lcs_similarity","pair":165,"parameters":[],"expected":1.0},{"id":"c02648","function":"ss_jaro","pair":165,"parameters":[],"expected":1.0},{"id":"c02649","function":"ss_jaro_winkler","pair":165,"parameters":[],"expected":1.0},{"id":"c02650","function":"ss_needleman_wunsch","pair":165,"parameters":[],"expected":1.0},{"id":"c02651","function":"ss_smith_waterman","pair":165,"parameters":[],"expected":1.0},{"id":"c02652","function":"ss_affine_gap","pair":165,"parameters":[],"expected":1.0},{"id":"c02653","function":"ss_soundex","pair":165,"parameters":[],"expected":"S000"},{"id":"c02654","function":"ss_refined_soundex","pair":165,"parameters":[],"expected":"S"},{"id":"c02655","function":"ss_double_metaphone","pair":165,"parameters":[],"expected":"SKSK"},{"id":"c02656","function":"ss_jaccard","pair":166,"parameters":[],"expected":0.3333333333333333},{"id":"c02657","function":"ss_cosine","pair":166,"parameters":[],"expected":0.5},{"id":"c02658","function":"ss_sorensen_dice","pair":166,"parameters":[],"expected":0.5},{"id":"c02659","function":"ss_overlap_coefficient","pair":166,"parameters":[],"expected":0.5},{"id":"c02660","function":"ss_braun_blanquet","pair":166,"parameters":[],"expected":0.5},{"id":"c02661","function":"ss_monge_elkan","pair":166,"parameters":[],"expected":0.98},{"id":"c02662","function":"ss_levenshtein","pair":166,"parameters":[],"expected":0.9411764705882353},{"id":"c02663","function":"ss_lcs_similarity","pair":166,"parameters":[],"expected":0.9411764705882353},{"id":"c02664","function":"ss_jaro","pair":166,"parameters":[],"expected":0.9803921568627452},{"id":"c02665","function":"ss_jaro_winkler","pair":166,"parameters":[],"expected":0.9882352941176471},{"id":"c02666","function":"ss_needleman_wunsch","pair":166,"parameters":[],"expected":0.9411764705882353},{"id":"c02667","function":"ss_smith_waterman","pair":166,"parameters":[],"expected":1.0},{"id":"c02668","function":"ss_affine_gap","pair":166,"parameters":[],"expected":0.8235294117647058},{"id":"c02669","function":"ss_soundex","pair":166,"parameters":[],"expected":"D220"},{"id":"c02670","function":"ss_refined_soundex","pair":166,"parameters":[],"expected":"D202"},{"id":"c02671","function":"ss_double_metaphone","pair":166,"parameters":[],"expected":"TSSK"},{"id":"c02672","function":"ss_jaccard","pair":167,"parameters":[],"expected":1.0},{"id":"c02673","function":"ss_cosine","pair":167,"parameters":[],"expected":1.0},{"id":"c02674","function":"ss_sorensen_dice","pair":167,"parameters":[],"expected":1.0},{"id":"c02675","function":"ss_overlap_coefficient","pair":167,"parameters":[],"expected":1.0},{"id":"c02676","function":"ss_braun_blanquet","pair":167,"parameters":[],"expected":1.0},{"id":"c02677","function":"ss_monge_elkan","pair":167,"parameters":[],"expected":1.0},{"id":"c02678","function":"ss_levenshtein","pair":167,"parameters":[],"expected":1.0},{"id":"c02679","function":"ss_lcs_similarity","pair":167,"parameters":[],"expected":1.0},{"id":"c02680","function":"ss_jaro","pair":167,"parameters":[],"expected":1.0},{"id":"c02681","function":"ss_jaro_winkler","pair":167,"parameters":[],"expected":1.0},{"id":"c02682","function":"ss_needleman_wunsch","pair":167,"parameters":[],"expected":1.0},{"id":"c02683","function":"ss_smith_waterman","pair":167,"parameters":[],"expected":1.0},{"id":"c02684","function":"ss_affine_gap","pair":167,"parameters":[],"expected":1.0},{"id":"c02685","function":"ss_soundex","pair":167,"parameters":[],"expected":"X120"},{"id":"c02686","function":"ss_refined_soundex","pair":167,"parameters":[],"expected":"X12"},{"id":"c02687","function":"ss_double_metaphone","pair":167,"parameters":[],"expected":"SPS"},{"id":"c02688","function":"ss_jaccard","pair":168,"parameters":[],"expected":0.0},{"id":"c02689","function":"ss_cosine","pair":168,"parameters":[],"expected":0.0},{"id":"c02690","function":"ss_sorensen_dice","pair":168,"parameters":[],"expected":0.0},{"id":"c02691","function":"ss_overlap_coefficient","pair":168,"parameters":[],"expected":0.0},{"id":"c02692","function":"ss_braun_blanquet","pair":168,"parameters":[],"expected":0.0},{"id":"c02693","function":"ss_monge_elkan","pair":168,"parameters":[],"expected":0.4107142857142857},{"id":"c02694","function":"ss_levenshtein","pair":168,"parameters":[],"expected":0.05555555555555558},{"id":"c02695","function":"ss_lcs_similarity","pair":168,"parameters":[],"expected":0.05555555555555555},{"id":"c02696","function":"ss_jaro","pair":168,"parameters":[],"expected":0.4351851851851852},{"id":"c02697","function":"ss_jaro_winkler","pair":168,"parameters":[],"expected":0.4351851851851852},{"id":"c02698","function":"ss_needleman_wunsch","pair":168,"parameters":[],"expected":0.05555555555555555},{"id":"c02699","function":"ss_smith_waterman","pair":168,"parameters":[],"expected":0.25},{"id":"c02700","function":"ss_affine_gap","pair":168,"parameters":[],"expected":0.0},{"id":"c02701","function":"ss_soundex","pair":168,"parameters":[],"expected":"Z300"},{"id":"c02702","function":"ss_refined_soundex","pair":168,"parameters":[],"expected":"Z03"},{"id":"c02703","function":"ss_double_metaphone","pair":168,"parameters":[],"expected":"SST"},{"id":"c02704","function":"ss_jaccard","pair":169,"parameters":[],"expected":0.3333333333333333},{"id":"c02705","function":"ss_cosine","pair":169,"parameters":[],"expected":0.5},{"id":"c02706","function":"ss_sorensen_dice","pair":169,"parameters":[],"expected":0.5},{"id":"c02707","function":"ss_overlap_coefficient","pair":169,"parameters":[],"expected":0.5},{"id":"c02708","function":"ss_braun_blanquet","pair":169,"parameters":[],"expected":0.5},{"id":"c02709","function":"ss_monge_elkan","pair":169,"parameters":[],"expected":0.9555555555555555},{"id":"c02710","function":"ss_levenshtein","pair":169,"parameters":[],"expected":0.8571428571428572},{"id":"c02711","function":"ss_lcs_similarity","pair":169,"parameters":[],"expected":0.8571428571428571},{"id":"c02712","function":"ss_jaro","pair":169,"parameters":[],"expected":0.9523809523809524},{"id":"c02713","function":"ss_jaro_winkler","pair":169,"parameters":[],"expected":0.9714285714285714},{"id":"c02714","function":"ss_needleman_wunsch","pair":169,"parameters":[],"expected":0.8571428571428571},{"id":"c02715","function":"ss_smith_waterman","pair":169,"parameters":[],"expected":1.0},{"id":"c02716","function":"ss_affine_gap","pair":169,"parameters":[],"expected":0.5714285714285714},{"id":"c02717","function":"ss_soundex","pair":169,"parameters":[],"expected":"S000"},{"id":"c02718","function":"ss_refined_soundex","pair":169,"parameters":[],"expected":"S"},{"id":"c02719","function":"ss_double_metaphone","pair":169,"parameters":[],"expected":"S"},{"id":"c02720","function":"ss_jaccard","pair":170,"parameters":[],"expected":1.0},{"id":"c02721","function":"ss_cosine","pair":170,"parameters":[],"expected":1.0},{"id":"c02722","function":"ss_sorensen_dice","pair":170,"parameters":[],"expected":1.0},{"id":"c02723","function":"ss_overlap_coefficient","pair":170,"parameters":[],"expected":1.0},{"id":"c02724","function":"ss_braun_blanquet","pair":170,"parameters":[],"expected":1.0},{"id":"c02725","function":"ss_monge_elkan","pair":170,"parameters":[],"expected":1.0},{"id":"c02726","function":"ss_levenshtein","pair":170,"parameters":[],"expected":1.0},{"id":"c02727","function":"ss_lcs_similarity","pair":170,"parameters":[],"expected":1.0},{"id":"c02728","function":"ss_jaro","pair":170,"parameters":[],"expected":1.0},{"id":"c02729","function":"ss_jaro_winkler","pair":170,"parameters":[],"expected":1.0},{"id":"c02730","function":"ss_needleman_wunsch","pair":170,"parameters":[],"expected":1.0},{"id":"c02731","function":"ss_smith_waterman","pair":170,"parameters":[],"expected":1.0},{"id":"c02732","function":"ss_affine_gap","pair":170,"parameters":[],"expected":1.0},{"id":"c02733","function":"ss_soundex","pair":170,"parameters":[],"expected":"C000"},{"id":"c02734","function":"ss_refined_soundex","pair":170,"parameters":[],"expected":"C0"},{"id":"c02735","function":"ss_double_metaphone","pair":170,"parameters":[],"expected":"K"},{"id":"c02736","function":"ss_jaccard","pair":171,"parameters":[],"expected":0.0},{"id":"c02737","function":"ss_cosine","pair":171,"parameters":[],"expected":0.0},{"id":"c02738","function":"ss_sorensen_dice","pair":171,"parameters":[],"expected":0.0},{"id":"c02739","function":"ss_overlap_coefficient","pair":171,"parameters":[],"expected":0.0},{"id":"c02740","function":"ss_braun_blanquet","pair":171,"parameters":[],"expected":0.0},{"id":"c02741","function":"ss_monge_elkan","pair":171,"parameters":[],"expected":0.0},{"id":"c02742","function":"ss_levenshtein","pair":171,"parameters":[],"expected":0.0},{"id":"c02743","function":"ss_lcs_similarity","pair":171,"parameters":[],"expected":0.0},{"id":"c02744","function":"ss_jaro","pair":171,"parameters":[],"expected":0.0},{"id":"c02745","function":"ss_jaro_winkler","pair":171,"parameters":[],"expected":0.0},{"id":"c02746","function":"ss_needleman_wunsch","pair":171,"parameters":[],"expected":0.0},{"id":"c02747","function":"ss_smith_waterman","pair":171,"parameters":[],"expected":0.0},{"id":"c02748","function":"ss_affine_gap","pair":171,"parameters":[],"expected":0.0},{"id":"c02749","function":"ss_soundex","pair":171,"parameters":[],"expected":""},{"id":"c02750","function":"ss_refined_soundex","pair":171,"parameters":[],"expected":""},{"id":"c02751","function":"ss_double_metaphone","pair":171,"parameters":[],"expected":""},{"id":"c02752","function":"ss_jaccard","pair":172,"parameters":[],"expected":0.0},{"id":"c02753","function":"ss_cosine","pair":172,"parameters":[],"expected":0.0},{"id":"c02754","function":"ss_sorensen_dice","pair":172,"parameters":[],"expected":0.0},{"id":"c02755","function":"ss_overlap_coefficient","pair":172,"parameters":[],"expected":0.0},{"id":"c02756","function":"ss_braun_blanquet","pair":172,"parameters":[],"expected":0.0},{"id":"c02757","function":"ss_monge_elkan","pair":172,"parameters":[],"expected":0.9416666666666667},{"id":"c02758","function":"ss_levenshtein","pair":172,"parameters":[],"expected":0.75},{"id":"c02759","function":"ss_lcs_similarity","pair":172,"parameters":[],"expected":0.75},{"id":"c02760","function":"ss_jaro","pair":172,"parameters":[],"expected":0.9166666666666666},{"id":"c02761","function":"ss_jaro_winkler","pair":172,"parameters":[],"expected":0.9416666666666667},{"id":"c02762","function":"ss_needleman_wunsch","pair":172,"parameters":[],"expected":0.75},{"id":"c02763","function":"ss_smith_waterman","pair":172,"parameters":[],"expected":1.0},{"id":"c02764","function":"ss_affine_gap","pair":172,"parameters":[],"expected":0.25},{"id":"c02765","function":"ss_soundex","pair":172,"parameters":[],"expected":"Z000"},{"id":"c02766","function":"ss_refined_soundex","pair":172,"parameters":[],"expected":"Z0"},{"id":"c02767","function":"ss_double_metaphone","pair":172,"parameters":[],"expected":"S"},{"id":"c02768","function":"ss_jaccard","pair":173,"parameters":[],"expected":0.3333333333333333},{"id":"c02769","function":"ss_cosine","pair":173,"parameters":[],"expected":0.5},{"id":"c02770","function":"ss_sorensen_dice","pair":173,"parameters":[],"expected":0.5},{"id":"c02771","function":"ss_overlap_coefficient","pair":173,"parameters":[],"expected":0.5},{"id":"c02772","function":"ss_braun_blanquet","pair":173,"parameters":[],"expected":0.5},{"id":"c02773","function":"ss_monge_elkan","pair":173,"parameters":[],"expected":0.8529761904761904},{"id":"c02774","function":"ss_levenshtein","pair":173,"parameters":[],"expected":0.125},{"id":"c02775","function":"ss_lcs_similarity","pair":173,"parameters":[],"expected":0.375},{"id":"c02776","function":"ss_jaro","pair":173,"parameters":[],"expected":0.6704545454545454},{"id":"c02777","function":"ss_jaro_winkler","pair":173,"parameters":[],"expected":0.6704545454545454},{"id":"c02778","function":"ss_needleman_wunsch","pair":173,"parameters":[],"expected":0.25},{"id":"c02779","function":"ss_smith_waterman","pair":173,"parameters":[],"expected":0.1875},{"id":"c02780","function":"ss_affine_gap","pair":173,"parameters":[],"expected":0.125},{"id":"c02781","function":"ss_soundex","pair":173,"parameters":[],"expected":"C000"},{"id":"c02782","function":"ss_refined_soundex","pair":173,"parameters":[],"expected":"C0"},{"id":"c02783","function":"ss_double_metaphone","pair":173,"parameters":[],"expected":"KKS"},{"id":"c02784","function":"ss_jaccard","pair":174,"parameters":[],"expected":0.3333333333333333},{"id":"c02785","function":"ss_cosine","pair":174,"parameters":[],"expected":0.5},{"id":"c02786","function":"ss_sorensen_dice","pair":174,"parameters":[],"expected":0.5},{"id":"c02787","function":"ss_overlap_coefficient","pair":174,"parameters":[],"expected":0.5},{"id":"c02788","function":"ss_braun_blanquet","pair":174,"parameters":[],"expected":0.5},{"id":"c02789","function":"ss_monge_elkan","pair":174,"parameters":[],"expected":0.9708333333333333},{"id":"c02790","function":"ss_levenshtein","pair":174,"parameters":[],"expected":0.8333333333333334},{"id":"c02791","function":"ss_lcs_similarity","pair":174,"parameters":[],"expected":0.8333333333333334},{"id":"c02792","function":"ss_jaro","pair":174,"parameters":[],"expected":0.9444444444444445},{"id":"c02793","function":"ss_jaro_winkler","pair":174,"parameters":[],"expected":0.9666666666666667},{"id":"c02794","function":"ss_needleman_wunsch","pair":174,"parameters":[],"expected":0.8333333333333334},{"id":"c02795","function":"ss_smith_waterman","pair":174,"parameters":[],"expected":1.0},{"id":"c02796","function":"ss_affine_gap","pair":174,"parameters":[],"expected":0.5},{"id":"c02797","function":"ss_soundex","pair":174,"parameters":[],"expected":"C000"},{"id":"c02798","function":"ss_refined_soundex","pair":174,"parameters":[],"expected":"C"},{"id":"c02799","function":"ss_double_metaphone","pair":174,"parameters":[],"expected":"K"},{"id":"c02800","function":"ss_jaccard","pair":175,"parameters":[],"expected":0.3333333333333333},{"id":"c02801","function":"ss_cosine","pair":175,"parameters":[],"expected":0.5},{"id":"c02802","function":"ss_sorensen_dice","pair":175,"parameters":[],"expected":0.5},{"id":"c02803","function":"ss_overlap_coefficient","pair":175,"parameters":[],"expected":0.5},{"id":"c02804","function":"ss_braun_blanquet","pair":175,"parameters":[],"expected":0.5},{"id":"c02805","function":"ss_monge_elkan","pair":175,"parameters":[],"expected":0.75},{"id":"c02806","function":"ss_levenshtein","pair":175,"parameters":[],"expected":0.09090909090909094},{"id":"c02807","function":"ss_lcs_similarity","pair":175,"parameters":[],"expected":0.18181818181818182},{"id":"c02808","function":"ss_jaro","pair":175,"parameters":[],"expected":0.503030303030303},{"id":"c02809","function":"ss_jaro_winkler","pair":175,"parameters":[],"expected":0.503030303030303},{"id":"c02810","function":"ss_needleman_wunsch","pair":175,"parameters":[],"expected":0.09090909090909091},{"id":"c02811","function":"ss_smith_waterman","pair":175,"parameters":[],"expected":0.18181818181818182},{"id":"c02812","function":"ss_affine_gap","pair":175,"parameters":[],"expected":0.09090909090909094},{"id":"c02813","function":"ss_soundex","pair":175,"parameters":[],"expected":"C000"},{"id":"c02814","function":"ss_refined_soundex","pair":175,"parameters":[],"expected":"C0"},{"id":"c02815","function":"ss_double_metaphone","pair":175,"parameters":[],"expected":"S"},{"id":"c02816","function":"ss_jaccard","pair":176,"parameters":[],"expected":0.14285714285714285},{"id":"c02817","function":"ss_cosine","pair":176,"parameters":[],"expected":0.25},{"id":"c02818","function":"ss_sorensen_dice","pair":176,"parameters":[],"expected":0.25},{"id":"c02819","function":"ss_overlap_coefficient","pair":176,"parameters":[],"expected":0.25},{"id":"c02820","function":"ss_braun_blanquet","pair":176,"parameters":[],"expected":0.25},{"id":"c02821","function":"ss_monge_elkan","pair":176,"parameters":[],"expected":0.7216666666666667},{"id":"c02822","function":"ss_levenshtein","pair":176,"parameters":[],"expected":0.0},{"id":"c02823","function":"ss_lcs_similarity","pair":176,"parameters":[],"expected":0.3125},{"id":"c02824","function":"ss_jaro","pair":176,"parameters":[],"expected":0.6944444444444445},{"id":"c02825","function":"ss_jaro_winkler","pair":176,"parameters":[],"expected":0.6944444444444445},{"id":"c02826","function":"ss_needleman_wunsch","pair":176,"parameters":[],"expected":0.09375},{"id":"c02827","function":"ss_smith_waterman","pair":176,"parameters":[],"expected":0.125},{"id":"c02828","function":"ss_affine_gap","pair":176,"parameters":[],"expected":0.0},{"id":"c02829","function":"ss_soundex","pair":176,"parameters":[],"expected":"Y120"},{"id":"c02830","function":"ss_refined_soundex","pair":176,"parameters":[],"expected":"Y12"},{"id":"c02831","function":"ss_double_metaphone","pair":176,"parameters":[],"expected":"APKS"},{"id":"c02832","function":"ss_jaccard","pair":177,"parameters":[],"expected":1.0},{"id":"c02833","function":"ss_cosine","pair":177,"parameters":[],"expected":1.0},{"id":"c02834","function":"ss_sorensen_dice","pair":177,"parameters":[],"expected":1.0},{"id":"c02835","function":"ss_overlap_coefficient","pair":177,"parameters":[],"expected":1.0},{"id":"c02836","function":"ss_braun_blanquet","pair":177,"parameters":[],"expected":1.0},{"id":"c02837","function":"ss_monge_elkan","pair":177,"parameters":[],"expected":1.0},{"id":"c02838","function":"ss_levenshtein","pair":177,"parameters":[],"expected":1.0},{"id":"c02839","function":"ss_lcs_similarity","pair":177,"parameters":[],"expected":1.0},{"id":"c02840","function":"ss_jaro","pair":177,"parameters":[],"expected":1.0},{"id":"c02841","function":"ss_jaro_winkler","pair":177,"parameters":[],"expected":1.0},{"id":"c02842","function":"ss_needleman_wunsch","pair":177,"parameters":[],"expected":1.0},{"id":"c02843","function":"ss_smith_waterman","pair":177,"parameters":[],"expected":1.0},{"id":"c02844","function":"ss_affine_gap","pair":177,"parameters":[],"expected":1.0},{"id":"c02845","function":"ss_soundex","pair":177,"parameters":[],"expected":"S200"},{"id":"c02846","function":"ss_refined_soundex","pair":177,"parameters":[],"expected":"S02"},{"id":"c02847","function":"ss_double_metaphone","pair":177,"parameters":[],"expected":"SSKS"},{"id":"c02848","function":"ss_jaccard","pair":178,"parameters":[],"expected":1.0},{"id":"c02849","function":"ss_cosine","pair":178,"parameters":[],"expected":1.0},{"id":"c02850","function":"ss_sorensen_dice","pair":178,"parameters":[],"expected":1.0},{"id":"c02851","function":"ss_overlap_coefficient","pair":178,"parameters":[],"expected":1.0},{"id":"c02852","function":"ss_braun_blanquet","pair":178,"parameters":[],"expected":1.0},{"id":"c02853","function":"ss_monge_elkan","pair":178,"parameters":[],"expected":1.0},{"id":"c02854","function":"ss_levenshtein","pair":178,"parameters":[],"expected":1.0},{"id":"c02855","function":"ss_lcs_similarity","pair":178,"parameters":[],"expected":1.0},{"id":"c02856","function":"ss_jaro","pair":178,"parameters":[],"expected":1.0},{"id":"c02857","function":"ss_jaro_winkler","pair":178,"parameters":[],"expected":1.0},{"id":"c02858","function":"ss_needleman_wunsch","pair":178,"parameters":[],"expected":1.0},{"id":"c02859","function":"ss_smith_waterman","pair":178,"parameters":[],"expected":1.0},{"id":"c02860","function":"ss_affine_gap","pair":178,"parameters":[],"expected":1.0},{"id":"c02861","function":"ss_soundex","pair":178,"parameters":[],"expected":""},{"id":"c02862","function":"ss_refined_soundex","pair":178,"parameters":[],"expected":""},{"id":"c02863","function":"ss_double_metaphone","pair":178,"parameters":[],"expected":""},{"id":"c02864","function":"ss_jaccard","pair":179,"parameters":[],"expected":0.0},{"id":"c02865","function":"ss_cosine","pair":179,"parameters":[],"expected":0.0},{"id":"c02866","function":"ss_sorensen_dice","pair":179,"parameters":[],"expected":0.0},{"id":"c02867","function":"ss_overlap_coefficient","pair":179,"parameters":[],"expected":0.0},{"id":"c02868","function":"ss_braun_blanquet","pair":179,"parameters":[],"expected":0.0},{"id":"c02869","function":"ss_monge_elkan","pair":179,"parameters":[],"expected":0.26666666666666666},{"id":"c02870","function":"ss_levenshtein","pair":179,"parameters":[],"expected":0.06666666666666665},{"id":"c02871","function":"ss_lcs_similarity","pair":179,"parameters":[],"expected":0.06666666666666667},{"id":"c02872","function":"ss_jaro","pair":179,"parameters":[],"expected":0.3888888888888889},{"id":"c02873","function":"ss_jaro_winkler","pair":179,"parameters":[],"expected":0.3888888888888889},{"id":"c02874","function":"ss_needleman_wunsch","pair":179,"parameters":[],"expected":0.06666666666666667},{"id":"c02875","function":"ss_smith_waterman","pair":179,"parameters":[],"expected":0.1},{"id":"c02876","function":"ss_affine_gap","pair":179,"parameters":[],"expected":0.0},{"id":"c02877","function":"ss_soundex","pair":179,"parameters":[],"expected":"X230"},{"id":"c02878","function":"ss_refined_soundex","pair":179,"parameters":[],"expected":"X0230"},{"id":"c02879","function":"ss_double_metaphone","pair":179,"parameters":[],"expected":"SKT"},{"id":"c02880","function":"ss_jaccard","pair":180,"parameters":[],"expected":1.0},{"id":"c02881","function":"ss_cosine","pair":180,"parameters":[],"expected":1.0},{"id":"c02882","function":"ss_sorensen_dice","pair":180,"parameters":[],"expected":1.0},{"id":"c02883","function":"ss_overlap_coefficient","pair":180,"parameters":[],"expected":1.0},{"id":"c02884","function":"ss_braun_blanquet","pair":180,"parameters":[],"expected":1.0},{"id":"c02885","function":"ss_monge_elkan","pair":180,"parameters":[],"expected":1.0},{"id":"c02886","function":"ss_levenshtein","pair":180,"parameters":[],"expected":1.0},{"id":"c02887","function":"ss_lcs_similarity","pair":180,"parameters":[],"expected":1.0},{"id":"c02888","function":"ss_jaro","pair":180,"parameters":[],"expected":1.0},{"id":"c02889","function":"ss_jaro_winkler","pair":180,"parameters":[],"expected":1.0},{"id":"c02890","function":"ss_needleman_wunsch","pair":180,"parameters":[],"expected":1.0},{"id":"c02891","function":"ss_smith_waterman","pair":180,"parameters":[],"expected":1.0},{"id":"c02892","function":"ss_affine_gap","pair":180,"parameters":[],"expected":1.0},{"id":"c02893","function":"ss_soundex","pair":180,"parameters":[],"expected":"X320"},{"id":"c02894","function":"ss_refined_soundex","pair":180,"parameters":[],"expected":"X032"},{"id":"c02895","function":"ss_double_metaphone","pair":180,"parameters":[],"expected":"STS"},{"id":"c02896","function":"ss_jaccard","pair":181,"parameters":[],"expected":1.0},{"id":"c02897","function":"ss_cosine","pair":181,"parameters":[],"expected":1.0},{"id":"c02898","function":"ss_sorensen_dice","pair":181,"parameters":[],"expected":1.0},{"id":"c02899","function":"ss_overlap_coefficient","pair":181,"parameters":[],"expected":1.0},{"id":"c02900","function":"ss_braun_blanquet","pair":181,"parameters":[],"expected":1.0},{"id":"c02901","function":"ss_monge_elkan","pair":181,"parameters":[],"expected":1.0},{"id":"c02902","function":"ss_levenshtein","pair":181,"parameters":[],"expected":1.0},{"id":"c02903","function":"ss_lcs_similarity","pair":181,"parameters":[],"expected":1.0},{"id":"c02904","function":"ss_jaro","pair":181,"parameters":[],"expected":1.0},{"id":"c02905","function":"ss_jaro_winkler","pair":181,"parameters":[],"expected":1.0},{"id":"c02906","function":"ss_needleman_wunsch","pair":181,"parameters":[],"expected":1.0},{"id":"c02907","function":"ss_smith_waterman","pair":181,"parameters":[],"expected":1.0},{"id":"c02908","function":"ss_affine_gap","pair":181,"parameters":[],"expected":1.0},{"id":"c02909","function":"ss_soundex","pair":181,"parameters":[],"expected":"I000"},{"id":"c02910","function":"ss_refined_soundex","pair":181,"parameters":[],"expected":"I"},{"id":"c02911","function":"ss_double_metaphone","pair":181,"parameters":[],"expected":"A"},{"id":"c02912","function":"ss_jaccard","pair":182,"parameters":[],"expected":1.0},{"id":"c02913","function":"ss_cosine","pair":182,"parameters":[],"expected":1.0},{"id":"c02914","function":"ss_sorensen_dice","pair":182,"parameters":[],"expected":1.0},{"id":"c02915","function":"ss_overlap_coefficient","pair":182,"parameters":[],"expected":1.0},{"id":"c02916","function":"ss_braun_blanquet","pair":182,"parameters":[],"expected":1.0},{"id":"c02917","function":"ss_monge_elkan","pair":182,"parameters":[],"expected":1.0},{"id":"c02918","function":"ss_levenshtein","pair":182,"parameters":[],"expected":1.0},{"id":"c02919","function":"ss_lcs_similarity","pair":182,"parameters":[],"expected":1.0},{"id":"c02920","function":"ss_jaro","pair":182,"parameters":[],"expected":1.0},{"id":"c02921","function":"ss_jaro_winkler","pair":182,"parameters":[],"expected":1.0},{"id":"c02922","function":"ss_needleman_wunsch","pair":182,"parameters":[],"expected":1.0},{"id":"c02923","function":"ss_smith_waterman","pair":182,"parameters":[],"expected":1.0},{"id":"c02924","function":"ss_affine_gap","pair":182,"parameters":[],"expected":1.0},{"id":"c02925","function":"ss_soundex","pair":182,"parameters":[],"expected":"C320"},{"id":"c02926","function":"ss_refined_soundex","pair":182,"parameters":[],"expected":"C302"},{"id":"c02927","function":"ss_double_metaphone","pair":182,"parameters":[],"expected":"KTKS"},{"id":"c02928","function":"ss_jaccard","pair":183,"parameters":[],"expected":0.0},{"id":"c02929","function":"ss_cosine","pair":183,"parameters":[],"expected":0.0},{"id":"c02930","function":"ss_sorensen_dice","pair":183,"parameters":[],"expected":0.0},{"id":"c02931","function":"ss_overlap_coefficient","pair":183,"parameters":[],"expected":0.0},{"id":"c02932","function":"ss_braun_blanquet","pair":183,"parameters":[],"expected":0.0},{"id":"c02933","function":"ss_monge_elkan","pair":183,"parameters":[],"expected":0.5},{"id":"c02934","function":"ss_levenshtein","pair":183,"parameters":[],"expected":0.0},{"id":"c02935","function":"ss_lcs_similarity","pair":183,"parameters":[],"expected":0.25},{"id":"c02936","function":"ss_jaro","pair":183,"parameters":[],"expected":0.5},{"id":"c02937","function":"ss_jaro_winkler","pair":183,"parameters":[],"expected":0.5},{"id":"c02938","function":"ss_needleman_wunsch","pair":183,"parameters":[],"expected":0.125},{"id":"c02939","function":"ss_smith_waterman","pair":183,"parameters":[],"expected":0.25},{"id":"c02940","function":"ss_affine_gap","pair":183,"parameters":[],"expected":0.0},{"id":"c02941","function":"ss_soundex","pair":183,"parameters":[],"expected":"C300"},{"id":"c02942","function":"ss_refined_soundex","pair":183,"parameters":[],"expected":"C30"},{"id":"c02943","function":"ss_double_metaphone","pair":183,"parameters":[],"expected":"KT"},{"id":"c02944","function":"ss_jaccard","pair":184,"parameters":[],"expected":1.0},{"id":"c02945","function":"ss_cosine","pair":184,"parameters":[],"expected":1.0},{"id":"c02946","function":"ss_sorensen_dice","pair":184,"parameters":[],"expected":1.0},{"id":"c02947","function":"ss_overlap_coefficient","pair":184,"parameters":[],"expected":1.0},{"id":"c02948","function":"ss_braun_blanquet","pair":184,"parameters":[],"expected":1.0},{"id":"c02949","function":"ss_monge_elkan","pair":184,"parameters":[],"expected":1.0},{"id":"c02950","function":"ss_levenshtein","pair":184,"parameters":[],"expected":0.9},{"id":"c02951","function":"ss_lcs_similarity","pair":184,"parameters":[],"expected":0.9},{"id":"c02952","function":"ss_jaro","pair":184,"parameters":[],"expected":0.9666666666666667},{"id":"c02953","function":"ss_jaro_winkler","pair":184,"parameters":[],"expected":0.98},{"id":"c02954","function":"ss_needleman_wunsch","pair":184,"parameters":[],"expected":0.9},{"id":"c02955","function":"ss_smith_waterman","pair":184,"parameters":[],"expected":1.0},{"id":"c02956","function":"ss_affine_gap","pair":184,"parameters":[],"expected":0.7},{"id":"c02957","function":"ss_soundex","pair":184,"parameters":[],"expected":"Z000"},{"id":"c02958","function":"ss_refined_soundex","pair":184,"parameters":[],"expected":"Z0"},{"id":"c02959","function":"ss_double_metaphone","pair":184,"parameters":[],"expected":"S"},{"id":"c02960","function":"ss_jaccard","pair":185,"parameters":[],"expected":0.0},{"id":"c02961","function":"ss_cosine","pair":185,"parameters":[],"expected":0.0},{"id":"c02962","function":"ss_sorensen_dice","pair":185,"parameters":[],"expected":0.0},{"id":"c02963","function":"ss_overlap_coefficient","pair":185,"parameters":[],"expected":0.0},{"id":"c02964","function":"ss_braun_blanquet","pair":185,"parameters":[],"expected":0.0},{"id":"c02965","function":"ss_monge_elkan","pair":185,"parameters":[],"expected":0.9894736842105263},{"id":"c02966","function":"ss_levenshtein","pair":185,"parameters":[],"expected":0.9473684210526316},{"id":"c02967","function":"ss_lcs_similarity","pair":185,"parameters":[],"expected":0.9473684210526315},{"id":"c02968","function":"ss_jaro","pair":185,"parameters":[],"expected":0.9824561403508771},{"id":"c02969","function":"ss_jaro_winkler","pair":185,"parameters":[],"expected":0.9894736842105263},{"id":"c02970","function":"ss_needleman_wunsch","pair":185,"parameters":[],"expected":0.9473684210526315},{"id":"c02971","function":"ss_smith_waterman","pair":185,"parameters":[],"expected":1.0},{"id":"c02972","function":"ss_affine_gap","pair":185,"parameters":[],"expected":0.8421052631578947},{"id":"c02973","function":"ss_soundex","pair":185,"parameters":[],"expected":"I230"},{"id":"c02974","function":"ss_refined_soundex","pair":185,"parameters":[],"expected":"I23"},{"id":"c02975","function":"ss_double_metaphone","pair":185,"parameters":[],"expected":"ASSK"},{"id":"c02976","function":"ss_jaccard","pair":186,"parameters":[],"expected":0.0},{"id":"c02977","function":"ss_cosine","pair":186,"parameters":[],"expected":0.0},{"id":"c02978","function":"ss_sorensen_dice","pair":186,"parameters":[],"expected":0.0},{"id":"c02979","function":"ss_overlap_coefficient","pair":186,"parameters":[],"expected":0.0},{"id":"c02980","function":"ss_braun_blanquet","pair":186,"parameters":[],"expected":0.0},{"id":"c02981","function":"ss_monge_elkan","pair":186,"parameters":[],"expected":0.6166666666666667},{"id":"c02982","function":"ss_levenshtein","pair":186,"parameters":[],"expected":0.11111111111111116},{"id":"c02983","function":"ss_lcs_similarity","pair":186,"parameters":[],"expected":0.3333333333333333},{"id":"c02984","function":"ss_jaro","pair":186,"parameters":[],"expected":0.46296296296296297},{"id":"c02985","function":"ss_jaro_winkler","pair":186,"parameters":[],"expected":0.46296296296296297},{"id":"c02986","function":"ss_needleman_wunsch","pair":186,"parameters":[],"expected":0.2222222222222222},{"id":"c02987","function":"ss_smith_waterman","pair":186,"parameters":[],"expected":0.3333333333333333},{"id":"c02988","function":"ss_affine_gap","pair":186,"parameters":[],"expected":0.11111111111111116},{"id":"c02989","function":"ss_soundex","pair":186,"parameters":[],"expected":"X000"},{"id":"c02990","function":"ss_refined_soundex","pair":186,"parameters":[],"expected":"X"},{"id":"c02991","function":"ss_double_metaphone","pair":186,"parameters":[],"expected":"SS"},{"id":"c02992","function":"ss_jaccard","pair":187,"parameters":[],"expected":0.5},{"id":"c02993","function":"ss_cosine","pair":187,"parameters":[],"expected":0.6666666666666666},{"id":"c02994","function":"ss_sorensen_dice","pair":187,"parameters":[],"expected":0.6666666666666666},{"id":"c02995","function":"ss_overlap_coefficient","pair":187,"parameters":[],"expected":0.6666666666666666},{"id":"c02996","function":"ss_braun_blanquet","pair":187,"parameters":[],"expected":0.6666666666666666},{"id":"c02997","function":"ss_monge_elkan","pair":187,"parameters":[],"expected":0.9916666666666667},{"id":"c02998","function":"ss_levenshtein","pair":187,"parameters":[],"expected":0.9473684210526316},{"id":"c02999","function":"ss_lcs_similarity","pair":187,"parameters":[],"expected":0.9473684210526315},{"id":"c03000","function":"ss_jaro","pair":187,"parameters":[],"expected":0.9824561403508771},{"id":"c03001","function":"ss_jaro_winkler","pair":187,"parameters":[],"expected":0.9894736842105263},{"id":"c03002","function":"ss_needleman_wunsch","pair":187,"parameters":[],"expected":0.9473684210526315},{"id":"c03003","function":"ss_smith_waterman","pair":187,"parameters":[],"expected":1.0},{"id":"c03004","function":"ss_affine_gap","pair":187,"parameters":[],"expected":0.8421052631578947},{"id":"c03005","function":"ss_soundex","pair":187,"parameters":[],"expected":"B130"},{"id":"c03006","function":"ss_refined_soundex","pair":187,"parameters":[],"expected":"B0130"},{"id":"c03007","function":"ss_double_metaphone","pair":187,"parameters":[],"expected":"PPT"},{"id":"c03008","function":"ss_jaccard","pair":188,"parameters":[],"expected":0.2},{"id":"c03009","function":"ss_cosine","pair":188,"parameters":[],"expected":0.3333333333333333},{"id":"c03010","function":"ss_sorensen_dice","pair":188,"parameters":[],"expected":0.3333333333333333},{"id":"c03011","function":"ss_overlap_coefficient","pair":188,"parameters":[],"expected":0.3333333333333333},{"id":"c03012","function":"ss_braun_blanquet","pair":188,"parameters":[],"expected":0.3333333333333333},{"id":"c03013","function":"ss_monge_elkan","pair":188,"parameters":[],"expected":0.75},{"id":"c03014","function":"ss_levenshtein","pair":188,"parameters":[],"expected":0.06666666666666665},{"id":"c03015","function":"ss_lcs_similarity","pair":188,"parameters":[],"expected":0.3333333333333333},{"id":"c03016","function":"ss_jaro","pair":188,"parameters":[],"expected":0.611111111111111},{"id":"c03017","function":"ss_jaro_winkler","pair":188,"parameters":[],"expected":0.611111111111111},{"id":"c03018","function":"ss_needleman_wunsch","pair":188,"parameters":[],"expected":0.2},{"id":"c03019","function":"ss_smith_waterman","pair":188,"parameters":[],"expected":0.23333333333333334},{"id":"c03020","function":"ss_affine_gap","pair":188,"parameters":[],"expected":0.06666666666666665},{"id":"c03021","function":"ss_soundex","pair":188,"parameters":[],"expected":"A200"},{"id":"c03022","function":"ss_refined_soundex","pair":188,"parameters":[],"expected":"A2"},{"id":"c03023","function":"ss_double_metaphone","pair":188,"parameters":[],"expected":"AS"},{"id":"c03024","function":"ss_jaccard","pair":189,"parameters":[],"expected":0.0},{"id":"c03025","function":"ss_cosine","pair":189,"parameters":[],"expected":0.0},{"id":"c03026","function":"ss_sorensen_dice","pair":189,"parameters":[],"expected":0.0},{"id":"c03027","function":"ss_overlap_coefficient","pair":189,"parameters":[],"expected":0.0},{"id":"c03028","function":"ss_braun_blanquet","pair":189,"parameters":[],"expected":0.0},{"id":"c03029","function":"ss_monge_elkan","pair":189,"parameters":[],"expected":0.7777777777777777},{"id":"c03030","function":"ss_levenshtein","pair":189,"parameters":[],"expected":0.4285714285714286},{"id":"c03031","function":"ss_lcs_similarity","pair":189,"parameters":[],"expected":0.5714285714285714},{"id":"c03032","function":"ss_jaro","pair":189,"parameters":[],"expected":0.7142857142857143},{"id":"c03033","function":"ss_jaro_winkler","pair":189,"parameters":[],"expected":0.7142857142857143},{"id":"c03034","function":"ss_needleman_wunsch","pair":189,"parameters":[],"expected":0.5},{"id":"c03035","function":"ss_smith_waterman","pair":189,"parameters":[],"expected":0.5714285714285714},{"id":"c03036","function":"ss_affine_gap","pair":189,"parameters":[],"expected":0.0},{"id":"c03037","function":"ss_soundex","pair":189,"parameters":[],"expected":"C000"},{"id":"c03038","function":"ss_refined_soundex","pair":189,"parameters":[],"expected":"C"},{"id":"c03039","function":"ss_double_metaphone","pair":189,"parameters":[],"expected":"K"},{"id":"c03040","function":"ss_jaccard","pair":190,"parameters":[],"expected":0.0},{"id":"c03041","function":"ss_cosine","pair":190,"parameters":[],"expected":0.0},{"id":"c03042","function":"ss_sorensen_dice","pair":190,"parameters":[],"expected":0.0},{"id":"c03043","function":"ss_overlap_coefficient","pair":190,"parameters":[],"expected":0.0},{"id":"c03044","function":"ss_braun_blanquet","pair":190,"parameters":[],"expected":0.0},{"id":"c03045","function":"ss_monge_elkan","pair":190,"parameters":[],"expected":0.98},{"id":"c03046","function":"ss_levenshtein","pair":190,"parameters":[],"expected":0.9090909090909091},{"id":"c03047","function":"ss_lcs_similarity","pair":190,"parameters":[],"expected":0.9090909090909091},{"id":"c03048","function":"ss_jaro","pair":190,"parameters":[],"expected":0.9696969696969697},{"id":"c03049","function":"ss_jaro_winkler","pair":190,"parameters":[],"expected":0.9818181818181818},{"id":"c03050","function":"ss_needleman_wunsch","pair":190,"parameters":[],"expected":0.9090909090909091},{"id":"c03051","function":"ss_smith_waterman","pair":190,"parameters":[],"expected":1.0},{"id":"c03052","function":"ss_affine_gap","pair":190,"parameters":[],"expected":0.7272727272727273},{"id":"c03053","function":"ss_soundex","pair":190,"parameters":[],"expected":"B200"},{"id":"c03054","function":"ss_refined_soundex","pair":190,"parameters":[],"expected":"B2"},{"id":"c03055","function":"ss_double_metaphone","pair":190,"parameters":[],"expected":"PS"},{"id":"c03056","function":"ss_jaccard","pair":191,"parameters":[],"expected":1.0},{"id":"c03057","function":"ss_cosine","pair":191,"parameters":[],"expected":1.0},{"id":"c03058","function":"ss_sorensen_dice","pair":191,"parameters":[],"expected":1.0},{"id":"c03059","function":"ss_overlap_coefficient","pair":191,"parameters":[],"expected":1.0},{"id":"c03060","function":"ss_braun_blanquet","pair":191,"parameters":[],"expected":1.0},{"id":"c03061","function":"ss_monge_elkan","pair":191,"parameters":[],"expected":1.0},{"id":"c03062","function":"ss_levenshtein","pair":191,"parameters":[],"expected":0.0},{"id":"c03063","function":"ss_lcs_similarity","pair":191,"parameters":[],"expected":0.5},{"id":"c03064","function":"ss_jaro","pair":191,"parameters":[],"expected":0.0},{"id":"c03065","function":"ss_jaro_winkler","pair":191,"parameters":[],"expected":0.0},{"id":"c03066","function":"ss_needleman_wunsch","pair":191,"parameters":[],"expected":0.25},{"id":"c03067","function":"ss_smith_waterman","pair":191,"parameters":[],"expected":0.5},{"id":"c03068","function":"ss_affine_gap","pair":191,"parameters":[],"expected":0.0},{"id":"c03069","function":"ss_soundex","pair":191,"parameters":[],"expected":"C000"},{"id":"c03070","function":"ss_refined_soundex","pair":191,"parameters":[],"expected":"C"},{"id":"c03071","function":"ss_double_metaphone","pair":191,"parameters":[],"expected":"K"},{"id":"c03072","function":"ss_jaccard","pair":192,"parameters":[],"expected":0.0},{"id":"c03073","function":"ss_cosine","pair":192,"parameters":[],"expected":0.0},{"id":"c03074","function":"ss_sorensen_dice","pair":192,"parameters":[],"expected":0.0},{"id":"c03075","function":"ss_overlap_coefficient","pair":192,"parameters":[],"expected":0.0},{"id":"c03076","function":"ss_braun_blanquet","pair":192,"parameters":[],"expected":0.0},{"id":"c03077","function":"ss_monge_elkan","pair":192,"parameters":[],"expected":0.17777777777777776},{"id":"c03078","function":"ss_levenshtein","pair":192,"parameters":[],"expected":0.0},{"id":"c03079","function":"ss_lcs_similarity","pair":192,"parameters":[],"expected":0.1875},{"id":"c03080","function":"ss_jaro","pair":192,"parameters":[],"expected":0.5},{"id":"c03081","function":"ss_jaro_winkler","pair":192,"parameters":[],"expected":0.5},{"id":"c03082","function":"ss_needleman_wunsch","pair":192,"parameters":[],"expected":0.09375},{"id":"c03083","function":"ss_smith_waterman","pair":192,"parameters":[],"expected":0.125},{"id":"c03084","function":"ss_affine_gap","pair":192,"parameters":[],"expected":0.0},{"id":"c03085","function":"ss_soundex","pair":192,"parameters":[],"expected":"X000"},{"id":"c03086","function":"ss_refined_soundex","pair":192,"parameters":[],"expected":"X0"},{"id":"c03087","function":"ss_double_metaphone","pair":192,"parameters":[],"expected":"SKS"},{"id":"c03088","function":"ss_jaccard","pair":193,"parameters":[],"expected":1.0},{"id":"c03089","function":"ss_cosine","pair":193,"parameters":[],"expected":1.0},{"id":"c03090","function":"ss_sorensen_dice","pair":193,"parameters":[],"expected":1.0},{"id":"c03091","function":"ss_overlap_coefficient","pair":193,"parameters":[],"expected":1.0},{"id":"c03092","function":"ss_braun_blanquet","pair":193,"parameters":[],"expected":1.0},{"id":"c03093","function":"ss_monge_elkan","pair":193,"parameters":[],"expected":1.0},{"id":"c03094","function":"ss_levenshtein","pair":193,"parameters":[],"expected":1.0},{"id":"c03095","function":"ss_lcs_similarity","pair":193,"parameters":[],"expected":1.0},{"id":"c03096","function":"ss_jaro","pair":193,"parameters":[],"expected":1.0},{"id":"c03097","function":"ss_jaro_winkler","pair":193,"parameters":[],"expected":1.0},{"id":"c03098","function":"ss_needleman_wunsch","pair":193,"parameters":[],"expected":1.0},{"id":"c03099","function":"ss_smith_waterman","pair":193,"parameters":[],"expected":1.0},{"id":"c03100","function":"ss_affine_gap","pair":193,"parameters":[],"expected":1.0},{"id":"c03101","function":"ss_soundex","pair":193,"parameters":[],"expected":""},{"id":"c03102","function":"ss_refined_soundex","pair":193,"parameters":[],"expected":""},{"id":"c03103","function":"ss_double_metaphone","pair":193,"parameters":[],"expected":""},{"id":"c03104","function":"ss_jaccard","pair":194,"parameters":[],"expected":0.0},{"id":"c03105","function":"ss_cosine","pair":194,"parameters":[],"expected":0.0},{"id":"c03106","function":"ss_sorensen_dice","pair":194,"parameters":[],"expected":0.0},{"id":"c03107","function":"ss_overlap_coefficient","pair":194,"parameters":[],"expected":0.0},{"id":"c03108","function":"ss_braun_blanquet","pair":194,"parameters":[],"expected":0.0},{"id":"c03109","function":"ss_monge_elkan","pair":194,"parameters":[],"expected":0.5155555555555555},{"id":"c03110","function":"ss_levenshtein","pair":194,"parameters":[],"expected":0.17647058823529416},{"id":"c03111","function":"ss_lcs_similarity","pair":194,"parameters":[],"expected":0.35294117647058826},{"id":"c03112","function":"ss_jaro","pair":194,"parameters":[],"expected":0.49264705882352944},{"id":"c03113","function":"ss_jaro_winkler","pair":194,"parameters":[],"expected":0.49264705882352944},{"id":"c03114","function":"ss_needleman_wunsch","pair":194,"parameters":[],"expected":0.20588235294117646},{"id":"c03115","function":"ss_smith_waterman","pair":194,"parameters":[],"expected":0.125},{"id":"c03116","function":"ss_affine_gap","pair":194,"parameters":[],"expected":0.05882352941176472},{"id":"c03117","function":"ss_soundex","pair":194,"parameters":[],"expected":"I000"},{"id":"c03118","function":"ss_refined_soundex","pair":194,"parameters":[],"expected":"I"},{"id":"c03119","function":"ss_double_metaphone","pair":194,"parameters":[],"expected":"A"},{"id":"c03120","function":"ss_jaccard","pair":195,"parameters":[],"expected":0.0},{"id":"c03121","function":"ss_cosine","pair":195,"parameters":[],"expected":0.0},{"id":"c03122","function":"ss_sorensen_dice","pair":195,"parameters":[],"expected":0.0},{"id":"c03123","function":"ss_overlap_coefficient","pair":195,"parameters":[],"expected":0.0},{"id":"c03124","function":"ss_braun_blanquet","pair":195,"parameters":[],"expected":0.0},{"id":"c03125","function":"ss_monge_elkan","pair":195,"parameters":[],"expected":0.5555555555555555},{"id":"c03126","function":"ss_levenshtein","pair":195,"parameters":[],"expected":0.33333333333333337},{"id":"c03127","function":"ss_lcs_similarity","pair":195,"parameters":[],"expected":0.3333333333333333},{"id":"c03128","function":"ss_jaro","pair":195,"parameters":[],"expected":0.5555555555555555},{"id":"c03129","function":"ss_jaro_winkler","pair":195,"parameters":[],"expected":0.5555555555555555},{"id":"c03130","function":"ss_needleman_wunsch","pair":195,"parameters":[],"expected":0.3333333333333333},{"id":"c03131","function":"ss_smith_waterman","pair":195,"parameters":[],"expected":0.3333333333333333},{"id":"c03132","function":"ss_affine_gap","pair":195,"parameters":[],"expected":0.33333333333333337},{"id":"c03133","function":"ss_soundex","pair":195,"parameters":[],"expected":"D200"},{"id":"c03134","function":"ss_refined_soundex","pair":195,"parameters":[],"expected":"D02"},{"id":"c03135","function":"ss_double_metaphone","pair":195,"parameters":[],"expected":"TS"},{"id":"c03136","function":"ss_jaccard","pair":196,"parameters":[],"expected":1.0},{"id":"c03137","function":"ss_cosine","pair":196,"parameters":[],"expected":1.0},{"id":"c03138","function":"ss_sorensen_dice","pair":196,"parameters":[],"expected":1.0},{"id":"c03139","function":"ss_overlap_coefficient","pair":196,"parameters":[],"expected":1.0},{"id":"c03140","function":"ss_braun_blanquet","pair":196,"parameters":[],"expected":1.0},{"id":"c03141","function":"ss_monge_elkan","pair":196,"parameters":[],"expected":1.0},{"id":"c03142","function":"ss_levenshtein","pair":196,"parameters":[],"expected":1.0},{"id":"c03143","function":"ss_lcs_similarity","pair":196,"parameters":[],"expected":1.0},{"id":"c03144","function":"ss_jaro","pair":196,"parameters":[],"expected":1.0},{"id":"c03145","function":"ss_jaro_winkler","pair":196,"parameters":[],"expected":1.0},{"id":"c03146","function":"ss_needleman_wunsch","pair":196,"parameters":[],"expected":1.0},{"id":"c03147","function":"ss_smith_waterman","pair":196,"parameters":[],"expected":1.0},{"id":"c03148","function":"ss_affine_gap","pair":196,"parameters":[],"expected":1.0},{"id":"c03149","function":"ss_soundex","pair":196,"parameters":[],"expected":"A120"},{"id":"c03150","function":"ss_refined_soundex","pair":196,"parameters":[],"expected":"A12"},{"id":"c03151","function":"ss_double_metaphone","pair":196,"parameters":[],"expected":"APK"},{"id":"c03152","function":"ss_jaccard","pair":197,"parameters":[],"expected":1.0},{"id":"c03153","function":"ss_cosine","pair":197,"parameters":[],"expected":1.0},{"id":"c03154","function":"ss_sorensen_dice","pair":197,"parameters":[],"expected":1.0},{"id":"c03155","function":"ss_overlap_coefficient","pair":197,"parameters":[],"expected":1.0},{"id":"c03156","function":"ss_braun_blanquet","pair":197,"parameters":[],"expected":1.0},{"id":"c03157","function":"ss_monge_elkan","pair":197,"parameters":[],"expected":1.0},{"id":"c03158","function":"ss_levenshtein","pair":197,"parameters":[],"expected":0.9333333333333333},{"id":"c03159","function":"ss_lcs_similarity","pair":197,"parameters":[],"expected":0.9333333333333333},{"id":"c03160","function":"ss_jaro","pair":197,"parameters":[],"expected":0.9777777777777779},{"id":"c03161","function":"ss_jaro_winkler","pair":197,"parameters":[],"expected":0.9866666666666667},{"id":"c03162","function":"ss_needleman_wunsch","pair":197,"parameters":[],"expected":0.9333333333333333},{"id":"c03163","function":"ss_smith_waterman","pair":197,"parameters":[],"expected":1.0},{"id":"c03164","function":"ss_affine_gap","pair":197,"parameters":[],"expected":0.8},{"id":"c03165","function":"ss_soundex","pair":197,"parameters":[],"expected":"C000"},{"id":"c03166","function":"ss_refined_soundex","pair":197,"parameters":[],"expected":"C"},{"id":"c03167","function":"ss_double_metaphone","pair":197,"parameters":[],"expected":"KKSS"},{"id":"c03168","function":"ss_jaccard","pair":198,"parameters":[],"expected":0.0},{"id":"c03169","function":"ss_cosine","pair":198,"parameters":[],"expected":0.0},{"id":"c03170","function":"ss_sorensen_dice","pair":198,"parameters":[],"expected":0.0},{"id":"c03171","function":"ss_overlap_coefficient","pair":198,"parameters":[],"expected":0.0},{"id":"c03172","function":"ss_braun_blanquet","pair":198,"parameters":[],"expected":0.0},{"id":"c03173","function":"ss_monge_elkan","pair":198,"parameters":[],"expected":0.0},{"id":"c03174","function":"ss_levenshtein","pair":198,"parameters":[],"expected":0.5},{"id":"c03175","function":"ss_lcs_similarity","pair":198,"parameters":[],"expected":0.5},{"id":"c03176","function":"ss_jaro","pair":198,"parameters":[],"expected":0.6666666666666666},{"id":"c03177","function":"ss_jaro_winkler","pair":198,"parameters":[],"expected":0.6666666666666666},{"id":"c03178","function":"ss_needleman_wunsch","pair":198,"parameters":[],"expected":0.5},{"id":"c03179","function":"ss_smith_waterman","pair":198,"parameters":[],"expected":0.5},{"id":"c03180","function":"ss_affine_gap","pair":198,"parameters":[],"expected":0.5},{"id":"c03181","function":"ss_soundex","pair":198,"parameters":[],"expected":""},{"id":"c03182","function":"ss_refined_soundex","pair":198,"parameters":[],"expected":""},{"id":"c03183","function":"ss_double_metaphone","pair":198,"parameters":[],"expected":""},{"id":"c03184","function":"ss_jaccard","pair":199,"parameters":[],"expected":1.0},{"id":"c03185","function":"ss_cosine","pair":199,"parameters":[],"expected":1.0},{"id":"c03186","function":"ss_sorensen_dice","pair":199,"parameters":[],"expected":1.0},{"id":"c03187","function":"ss_overlap_coefficient","pair":199,"parameters":[],"expected":1.0},{"id":"c03188","function":"ss_braun_blanquet","pair":199,"parameters":[],"expected":1.0},{"id":"c03189","function":"ss_monge_elkan","pair":199,"parameters":[],"expected":1.0},{"id":"c03190","function":"ss_levenshtein","pair":199,"parameters":[],"expected":1.0},{"id":"c03191","function":"ss_lcs_similarity","pair":199,"parameters":[],"expected":1.0},{"id":"c03192","function":"ss_jaro","pair":199,"parameters":[],"expected":1.0},{"id":"c03193","function":"ss_jaro_winkler","pair":199,"parameters":[],"expected":1.0},{"id":"c03194","function":"ss_needleman_wunsch","pair":199,"parameters":[],"expected":1.0},{"id":"c03195","function":"ss_smith_waterman","pair":199,"parameters":[],"expected":1.0},{"id":"c03196","function":"ss_affine_gap","pair":199,"parameters":[],"expected":1.0},{"id":"c03197","function":"ss_soundex","pair":199,"parameters":[],"expected":"D000"},{"id":"c03198","function":"ss_refined_soundex","pair":199,"parameters":[],"expected":"D"},{"id":"c03199","function":"ss_double_metaphone","pair":199,"parameters":[],"expected":"T"},{"id":"c03200","function":"ss_jaccard","pair":200,"parameters":[],"expected":0.0},{"id":"c03201","function":"ss_cosine","pair":200,"parameters":[],"expected":0.0},{"id":"c03202","function":"ss_sorensen_dice","pair":200,"parameters":[],"expected":0.0},{"id":"c03203","function":"ss_overlap_coefficient","pair":200,"parameters":[],"expected":0.0},{"id":"c03204","function":"ss_braun_blanquet","pair":200,"parameters":[],"expected":0.0},{"id":"c03205","function":"ss_monge_elkan","pair":200,"parameters":[],"expected":0.5892255892255892},{"id":"c03206","function":"ss_levenshtein","pair":200,"parameters":[],"expected":0.11111111111111116},{"id":"c03207","function":"ss_lcs_similarity","pair":200,"parameters":[],"expected":0.2777777777777778},{"id":"c03208","function":"ss_jaro","pair":200,"parameters":[],"expected":0.5892255892255892},{"id":"c03209","function":"ss_jaro_winkler","pair":200,"parameters":[],"expected":0.5892255892255892},{"id":"c03210","function":"ss_needleman_wunsch","pair":200,"parameters":[],"expected":0.1111111111111111},{"id":"c03211","function":"ss_smith_waterman","pair":200,"parameters":[],"expected":0.16666666666666666},{"id":"c03212","function":"ss_affine_gap","pair":200,"parameters":[],"expected":0.11111111111111116},{"id":"c03213","function":"ss_soundex","pair":200,"parameters":[],"expected":"Y120"},{"id":"c03214","function":"ss_refined_soundex","pair":200,"parameters":[],"expected":"Y12"},{"id":"c03215","function":"ss_double_metaphone","pair":200,"parameters":[],"expected":"APKS"},{"id":"c03216","function":"ss_jaccard","pair":201,"parameters":[],"expected":1.0},{"id":"c03217","function":"ss_cosine","pair":201,"parameters":[],"expected":1.0},{"id":"c03218","function":"ss_sorensen_dice","pair":201,"parameters":[],"expected":1.0},{"id":"c03219","function":"ss_overlap_coefficient","pair":201,"parameters":[],"expected":1.0},{"id":"c03220","function":"ss_braun_blanquet","pair":201,"parameters":[],"expected":1.0},{"id":"c03221","function":"ss_monge_elkan","pair":201,"parameters":[],"expected":1.0},{"id":"c03222","function":"ss_levenshtein","pair":201,"parameters":[],"expected":1.0},{"id":"c03223","function":"ss_lcs_similarity","pair":201,"parameters":[],"expected":1.0},{"id":"c03224","function":"ss_jaro","pair":201,"parameters":[],"expected":1.0},{"id":"c03225","function":"ss_jaro_winkler","pair":201,"parameters":[],"expected":1.0},{"id":"c03226","function":"ss_needleman_wunsch","pair":201,"parameters":[],"expected":1.0},{"id":"c03227","function":"ss_smith_waterman","pair":201,"parameters":[],"expected":1.0},{"id":"c03228","function":"ss_affine_gap","pair":201,"parameters":[],"expected":1.0},{"id":"c03229","function":"ss_soundex","pair":201,"parameters":[],"expected":"I132"},{"id":"c03230","function":"ss_refined_soundex","pair":201,"parameters":[],"expected":"I132"},{"id":"c03231","function":"ss_double_metaphone","pair":201,"parameters":[],"expected":"APTS"},{"id":"c03232","function":"ss_jaccard","pair":202,"parameters":[],"expected":0.0},{"id":"c03233","function":"ss_cosine","pair":202,"parameters":[],"expected":0.0},{"id":"c03234","function":"ss_sorensen_dice","pair":202,"parameters":[],"expected":0.0},{"id":"c03235","function":"ss_overlap_coefficient","pair":202,"parameters":[],"expected":0.0},{"id":"c03236","function":"ss_braun_blanquet","pair":202,"parameters":[],"expected":0.0},{"id":"c03237","function":"ss_monge_elkan","pair":202,"parameters":[],"expected":0.96},{"id":"c03238","function":"ss_levenshtein","pair":202,"parameters":[],"expected":0.8},{"id":"c03239","function":"ss_lcs_similarity","pair":202,"parameters":[],"expected":0.8},{"id":"c03240","function":"ss_jaro","pair":202,"parameters":[],"expected":0.9333333333333332},{"id":"c03241","function":"ss_jaro_winkler","pair":202,"parameters":[],"expected":0.96},{"id":"c03242","function":"ss_needleman_wunsch","pair":202,"parameters":[],"expected":0.8},{"id":"c03243","function":"ss_smith_waterman","pair":202,"parameters":[],"expected":1.0},{"id":"c03244","function":"ss_affine_gap","pair":202,"parameters":[],"expected":0.4},{"id":"c03245","function":"ss_soundex","pair":202,"parameters":[],"expected":"B000"},{"id":"c03246","function":"ss_refined_soundex","pair":202,"parameters":[],"expected":"B"},{"id":"c03247","function":"ss_double_metaphone","pair":202,"parameters":[],"expected":"P"},{"id":"c03248","function":"ss_jaccard","pair":203,"parameters":[],"expected":0.0},{"id":"c03249","function":"ss_cosine","pair":203,"parameters":[],"expected":0.0},{"id":"c03250","function":"ss_sorensen_dice","pair":203,"parameters":[],"expected":0.0},{"id":"c03251","function":"ss_overlap_coefficient","pair":203,"parameters":[],"expected":0.0},{"id":"c03252","function":"ss_braun_blanquet","pair":203,"parameters":[],"expected":0.0},{"id":"c03253","function":"ss_monge_elkan","pair":203,"parameters":[],"expected":0.0},{"id":"c03254","function":"ss_levenshtein","pair":203,"parameters":[],"expected":0.0},{"id":"c03255","function":"ss_lcs_similarity","pair":203,"parameters":[],"expected":0.0},{"id":"c03256","function":"ss_jaro","pair":203,"parameters":[],"expected":0.0},{"id":"c03257","function":"ss_jaro_winkler","pair":203,"parameters":[],"expected":0.0},{"id":"c03258","function":"ss_needleman_wunsch","pair":203,"parameters":[],"expected":0.0},{"id":"c03259","function":"ss_smith_waterman","pair":203,"parameters":[],"expected":0.0},{"id":"c03260","function":"ss_affine_gap","pair":203,"parameters":[],"expected":0.0},{"id":"c03261","function":"ss_soundex","pair":203,"parameters":[],"expected":"C000"},{"id":"c03262","function":"ss_refined_soundex","pair":203,"parameters":[],"expected":"C0"},{"id":"c03263","function":"ss_double_metaphone","pair":203,"parameters":[],"expected":"KKS"},{"id":"c03264","function":"ss_jaccard","pair":204,"parameters":[],"expected":0.2},{"id":"c03265","function":"ss_cosine","pair":204,"parameters":[],"expected":0.3333333333333333},{"id":"c03266","function":"ss_sorensen_dice","pair":204,"parameters":[],"expected":0.3333333333333333},{"id":"c03267","function":"ss_overlap_coefficient","pair":204,"parameters":[],"expected":0.3333333333333333},{"id":"c03268","function":"ss_braun_blanquet","pair":204,"parameters":[],"expected":0.3333333333333333},{"id":"c03269","function":"ss_monge_elkan","pair":204,"parameters":[],"expected":0.6144444444444443},{"id":"c03270","function":"ss_levenshtein","pair":204,"parameters":[],"expected":0.19999999999999996},{"id":"c03271","function":"ss_lcs_similarity","pair":204,"parameters":[],"expected":0.3},{"id":"c03272","function":"ss_jaro","pair":204,"parameters":[],"expected":0.6222222222222222},{"id":"c03273","function":"ss_jaro_winkler","pair":204,"parameters":[],"expected":0.6222222222222222},{"id":"c03274","function":"ss_needleman_wunsch","pair":204,"parameters":[],"expected":0.25},{"id":"c03275","function":"ss_smith_waterman","pair":204,"parameters":[],"expected":0.3},{"id":"c03276","function":"ss_affine_gap","pair":204,"parameters":[],"expected":0.0},{"id":"c03277","function":"ss_soundex","pair":204,"parameters":[],"expected":"A200"},{"id":"c03278","function":"ss_refined_soundex","pair":204,"parameters":[],"expected":"A20"},{"id":"c03279","function":"ss_double_metaphone","pair":204,"parameters":[],"expected":"AKSS"},{"id":"c03280","function":"ss_jaccard","pair":205,"parameters":[],"expected":1.0},{"id":"c03281","function":"ss_cosine","pair":205,"parameters":[],"expected":1.0},{"id":"c03282","function":"ss_sorensen_dice","pair":205,"parameters":[],"expected":1.0},{"id":"c03283","function":"ss_overlap_coefficient","pair":205,"parameters":[],"expected":1.0},{"id":"c03284","function":"ss_braun_blanquet","pair":205,"parameters":[],"expected":1.0},{"id":"c03285","function":"ss_monge_elkan","pair":205,"parameters":[],"expected":1.0},{"id":"c03286","function":"ss_levenshtein","pair":205,"parameters":[],"expected":1.0},{"id":"c03287","function":"ss_lcs_similarity","pair":205,"parameters":[],"expected":1.0},{"id":"c03288","function":"ss_jaro","pair":205,"parameters":[],"expected":1.0},{"id":"c03289","function":"ss_jaro_winkler","pair":205,"parameters":[],"expected":1.0},{"id":"c03290","function":"ss_needleman_wunsch","pair":205,"parameters":[],"expected":1.0},{"id":"c03291","function":"ss_smith_waterman","pair":205,"parameters":[],"expected":1.0},{"id":"c03292","function":"ss_affine_gap","pair":205,"parameters":[],"expected":1.0},{"id":"c03293","function":"ss_soundex","pair":205,"parameters":[],"expected":"S000"},{"id":"c03294","function":"ss_refined_soundex","pair":205,"parameters":[],"expected":"S0"},{"id":"c03295","function":"ss_double_metaphone","pair":205,"parameters":[],"expected":"S"},{"id":"c03296","function":"ss_jaccard","pair":206,"parameters":[],"expected":0.0},{"id":"c03297","function":"ss_cosine","pair":206,"parameters":[],"expected":0.0},{"id":"c03298","function":"ss_sorensen_dice","pair":206,"parameters":[],"expected":0.0},{"id":"c03299","function":"ss_overlap_coefficient","pair":206,"parameters":[],"expected":0.0},{"id":"c03300","function":"ss_braun_blanquet","pair":206,"parameters":[],"expected":0.0},{"id":"c03301","function":"ss_monge_elkan","pair":206,"parameters":[],"expected":0.47916666666666663},{"id":"c03302","function":"ss_levenshtein","pair":206,"parameters":[],"expected":0.125},{"id":"c03303","function":"ss_lcs_similarity","pair":206,"parameters":[],"expected":0.25},{"id":"c03304","function":"ss_jaro","pair":206,"parameters":[],"expected":0.5119047619047619},{"id":"c03305","function":"ss_jaro_winkler","pair":206,"parameters":[],"expected":0.5119047619047619},{"id":"c03306","function":"ss_needleman_wunsch","pair":206,"parameters":[],"expected":0.1875},{"id":"c03307","function":"ss_smith_waterman","pair":206,"parameters":[],"expected":0.14285714285714285},{"id":"c03308","function":"ss_affine_gap","pair":206,"parameters":[],"expected":0.0},{"id":"c03309","function":"ss_soundex","pair":206,"parameters":[],"expected":"S000"},{"id":"c03310","function":"ss_refined_soundex","pair":206,"parameters":[],"expected":"S0"},{"id":"c03311","function":"ss_double_metaphone","pair":206,"parameters":[],"expected":"SK"},{"id":"c03312","function":"ss_jaccard","pair":207,"parameters":[],"expected":0.0},{"id":"c03313","function":"ss_cosine","pair":207,"parameters":[],"expected":0.0},{"id":"c03314","function":"ss_sorensen_dice","pair":207,"parameters":[],"expected":0.0},{"id":"c03315","function":"ss_overlap_coefficient","pair":207,"parameters":[],"expected":0.0},{"id":"c03316","function":"ss_braun_blanquet","pair":207,"parameters":[],"expected":0.0},{"id":"c03317","function":"ss_monge_elkan","pair":207,"parameters":[],"expected":0.5416666666666666},{"id":"c03318","function":"ss_levenshtein","pair":207,"parameters":[],"expected":0.21052631578947367},{"id":"c03319","function":"ss_lcs_similarity","pair":207,"parameters":[],"expected":0.21052631578947367},{"id":"c03320","function":"ss_jaro","pair":207,"parameters":[],"expected":0.4590643274853801},{"id":"c03321","function":"ss_jaro_winkler","pair":207,"parameters":[],"expected":0.4590643274853801},{"id":"c03322","function":"ss_needleman_wunsch","pair":207,"parameters":[],"expected":0.21052631578947367},{"id":"c03323","function":"ss_smith_waterman","pair":207,"parameters":[],"expected":0.3333333333333333},{"id":"c03324","function":"ss_affine_gap","pair":207,"parameters":[],"expected":0.0},{"id":"c03325","function":"ss_soundex","pair":207,"parameters":[],"expected":"B000"},{"id":"c03326","function":"ss_refined_soundex","pair":207,"parameters":[],"expected":"B"},{"id":"c03327","function":"ss_double_metaphone","pair":207,"parameters":[],"expected":"P"},{"id":"c03328","function":"ss_jaccard","pair":208,"parameters":[],"expected":0.0},{"id":"c03329","function":"ss_cosine","pair":208,"parameters":[],"expected":0.0},{"id":"c03330","function":"ss_sorensen_dice","pair":208,"parameters":[],"expected":0.0},{"id":"c03331","function":"ss_overlap_coefficient","pair":208,"parameters":[],"expected":0.0},{"id":"c03332","function":"ss_braun_blanquet","pair":208,"parameters":[],"expected":0.0},{"id":"c03333","function":"ss_monge_elkan","pair":208,"parameters":[],"expected":0.9111111111111111},{"id":"c03334","function":"ss_levenshtein","pair":208,"parameters":[],"expected":0.6666666666666667},{"id":"c03335","function":"ss_lcs_similarity","pair":208,"parameters":[],"expected":0.6666666666666666},{"id":"c03336","function":"ss_jaro","pair":208,"parameters":[],"expected":0.8888888888888888},{"id":"c03337","function":"ss_jaro_winkler","pair":208,"parameters":[],"expected":0.9111111111111111},{"id":"c03338","function":"ss_needleman_wunsch","pair":208,"parameters":[],"expected":0.6666666666666666},{"id":"c03339","function":"ss_smith_waterman","pair":208,"parameters":[],"expected":1.0},{"id":"c03340","function":"ss_affine_gap","pair":208,"parameters":[],"expected":0.0},{"id":"c03341","function":"ss_soundex","pair":208,"parameters":[],"expected":"Y000"},{"id":"c03342","function":"ss_refined_soundex","pair":208,"parameters":[],"expected":"Y"},{"id":"c03343","function":"ss_double_metaphone","pair":208,"parameters":[],"expected":"A"},{"id":"c03344","function":"ss_jaccard","pair":209,"parameters":[],"expected":1.0},{"id":"c03345","function":"ss_cosine","pair":209,"parameters":[],"expected":1.0},{"id":"c03346","function":"ss_sorensen_dice","pair":209,"parameters":[],"expected":1.0},{"id":"c03347","function":"ss_overlap_coefficient","pair":209,"parameters":[],"expected":1.0},{"id":"c03348","function":"ss_braun_blanquet","pair":209,"parameters":[],"expected":1.0},{"id":"c03349","function":"ss_monge_elkan","pair":209,"parameters":[],"expected":1.0},{"id":"c03350","function":"ss_levenshtein","pair":209,"parameters":[],"expected":1.0},{"id":"c03351","function":"ss_lcs_similarity","pair":209,"parameters":[],"expected":1.0},{"id":"c03352","function":"ss_jaro","pair":209,"parameters":[],"expected":1.0},{"id":"c03353","function":"ss_jaro_winkler","pair":209,"parameters":[],"expected":1.0},{"id":"c03354","function":"ss_needleman_wunsch","pair":209,"parameters":[],"expected":1.0},{"id":"c03355","function":"ss_smith_waterman","pair":209,"parameters":[],"expected":1.0},{"id":"c03356","function":"ss_affine_gap","pair":209,"parameters":[],"expected":1.0},{"id":"c03357","function":"ss_soundex","pair":209,"parameters":[],"expected":"A210"},{"id":"c03358","function":"ss_refined_soundex","pair":209,"parameters":[],"expected":"A210"},{"id":"c03359","function":"ss_double_metaphone","pair":209,"parameters":[],"expected":"AKSP"},{"id":"c03360","function":"ss_jaccard","pair":210,"parameters":[],"expected":1.0},{"id":"c03361","function":"ss_cosine","pair":210,"parameters":[],"expected":1.0},{"id":"c03362","function":"ss_sorensen_dice","pair":210,"parameters":[],"expected":1.0},{"id":"c03363","function":"ss_overlap_coefficient","pair":210,"parameters":[],"expected":1.0},{"id":"c03364","function":"ss_braun_blanquet","pair":210,"parameters":[],"expected":1.0},{"id":"c03365","function":"ss_monge_elkan","pair":210,"parameters":[],"expected":1.0},{"id":"c03366","function":"ss_levenshtein","pair":210,"parameters":[],"expected":1.0},{"id":"c03367","function":"ss_lcs_similarity","pair":210,"parameters":[],"expected":1.0},{"id":"c03368","function":"ss_jaro","pair":210,"parameters":[],"expected":1.0},{"id":"c03369","function":"ss_jaro_winkler","pair":210,"parameters":[],"expected":1.0},{"id":"c03370","function":"ss_needleman_wunsch","pair":210,"parameters":[],"expected":1.0},{"id":"c03371","function":"ss_smith_waterman","pair":210,"parameters":[],"expected":1.0},{"id":"c03372","function":"ss_affine_gap","pair":210,"parameters":[],"expected":1.0},{"id":"c03373","function":"ss_soundex","pair":210,"parameters":[],"expected":"B200"},{"id":"c03374","function":"ss_refined_soundex","pair":210,"parameters":[],"expected":"B2"},{"id":"c03375","function":"ss_double_metaphone","pair":210,"parameters":[],"expected":"PKS"},{"id":"c03376","function":"ss_jaccard","pair":211,"parameters":[],"expected":0.0},{"id":"c03377","function":"ss_cosine","pair":211,"parameters":[],"expected":0.0},{"id":"c03378","function":"ss_sorensen_dice","pair":211,"parameters":[],"expected":0.0},{"id":"c03379","function":"ss_overlap_coefficient","pair":211,"parameters":[],"expected":0.0},{"id":"c03380","function":"ss_braun_blanquet","pair":211,"parameters":[],"expected":0.0},{"id":"c03381","function":"ss_monge_elkan","pair":211,"parameters":[],"expected":0.3125},{"id":"c03382","function":"ss_levenshtein","pair":211,"parameters":[],"expected":0.0},{"id":"c03383","function":"ss_lcs_similarity","pair":211,"parameters":[],"expected":0.125},{"id":"c03384","function":"ss_jaro","pair":211,"parameters":[],"expected":0.4305555555555555},{"id":"c03385","function":"ss_jaro_winkler","pair":211,"parameters":[],"expected":0.4305555555555555},{"id":"c03386","function":"ss_needleman_wunsch","pair":211,"parameters":[],"expected":0.0},{"id":"c03387","function":"ss_smith_waterman","pair":211,"parameters":[],"expected":0.16666666666666666},{"id":"c03388","function":"ss_affine_gap","pair":211,"parameters":[],"expected":0.0},{"id":"c03389","function":"ss_soundex","pair":211,"parameters":[],"expected":"D000"},{"id":"c03390","function":"ss_refined_soundex","pair":211,"parameters":[],"expected":"D0"},{"id":"c03391","function":"ss_double_metaphone","pair":211,"parameters":[],"expected":"T"},{"id":"c03392","function":"ss_jaccard","pair":212,"parameters":[],"expected":0.0},{"id":"c03393","function":"ss_cosine","pair":212,"parameters":[],"expected":0.0},{"id":"c03394","function":"ss_sorensen_dice","pair":212,"parameters":[],"expected":0.0},{"id":"c03395","function":"ss_overlap_coefficient","pair":212,"parameters":[],"expected":0.0},{"id":"c03396","function":"ss_braun_blanquet","pair":212,"parameters":[],"expected":0.0},{"id":"c03397","function":"ss_monge_elkan","pair":212,"parameters":[],"expected":0.0},{"id":"c03398","function":"ss_levenshtein","pair":212,"parameters":[],"expected":0.19999999999999996},{"id":"c03399","function":"ss_lcs_similarity","pair":212,"parameters":[],"expected":0.2},{"id":"c03400","function":"ss_jaro","pair":212,"parameters":[],"expected":0.4666666666666666},{"id":"c03401","function":"ss_jaro_winkler","pair":212,"parameters":[],"expected":0.4666666666666666},{"id":"c03402","function":"ss_needleman_wunsch","pair":212,"parameters":[],"expected":0.2},{"id":"c03403","function":"ss_smith_waterman","pair":212,"parameters":[],"expected":0.2},{"id":"c03404","function":"ss_affine_gap","pair":212,"parameters":[],"expected":0.19999999999999996},{"id":"c03405","function":"ss_soundex","pair":212,"parameters":[],"expected":"C300"},{"id":"c03406","function":"ss_refined_soundex","pair":212,"parameters":[],"expected":"C03"},{"id":"c03407","function":"ss_double_metaphone","pair":212,"parameters":[],"expected":"ST"},{"id":"c03408","function":"ss_jaccard","pair":213,"parameters":[],"expected":1.0},{"id":"c03409","function":"ss_cosine","pair":213,"parameters":[],"expected":1.0},{"id":"c03410","function":"ss_sorensen_dice","pair":213,"parameters":[],"expected":1.0},{"id":"c03411","function":"ss_overlap_coefficient","pair":213,"parameters":[],"expected":1.0},{"id":"c03412","function":"ss_braun_blanquet","pair":213,"parameters":[],"expected":1.0},{"id":"c03413","function":"ss_monge_elkan","pair":213,"parameters":[],"expected":1.0},{"id":"c03414","function":"ss_levenshtein","pair":213,"parameters":[],"expected":0.75},{"id":"c03415","function":"ss_lcs_similarity","pair":213,"parameters":[],"expected":0.75},{"id":"c03416","function":"ss_jaro","pair":213,"parameters":[],"expected":0.9166666666666666},{"id":"c03417","function":"ss_jaro_winkler","pair":213,"parameters":[],"expected":0.9416666666666667},{"id":"c03418","function":"ss_needleman_wunsch","pair":213,"parameters":[],"expected":0.75},{"id":"c03419","function":"ss_smith_waterman","pair":213,"parameters":[],"expected":1.0},{"id":"c03420","function":"ss_affine_gap","pair":213,"parameters":[],"expected":0.25},{"id":"c03421","function":"ss_soundex","pair":213,"parameters":[],"expected":"Z000"},{"id":"c03422","function":"ss_refined_soundex","pair":213,"parameters":[],"expected":"Z"},{"id":"c03423","function":"ss_double_metaphone","pair":213,"parameters":[],"expected":"S"},{"id":"c03424","function":"ss_jaccard","pair":214,"parameters":[],"expected":0.0},{"id":"c03425","function":"ss_cosine","pair":214,"parameters":[],"expected":0.0},{"id":"c03426","function":"ss_sorensen_dice","pair":214,"parameters":[],"expected":0.0},{"id":"c03427","function":"ss_overlap_coefficient","pair":214,"parameters":[],"expected":0.0},{"id":"c03428","function":"ss_braun_blanquet","pair":214,"parameters":[],"expected":0.0},{"id":"c03429","function":"ss_monge_elkan","pair":214,"parameters":[],"expected":0.0},{"id":"c03430","function":"ss_levenshtein","pair":214,"parameters":[],"expected":0.08333333333333337},{"id":"c03431","function":"ss_lcs_similarity","pair":214,"parameters":[],"expected":0.16666666666666666},{"id":"c03432","function":"ss_jaro","pair":214,"parameters":[],"expected":0.47222222222222215},{"id":"c03433","function":"ss_jaro_winkler","pair":214,"parameters":[],"expected":0.47222222222222215},{"id":"c03434","function":"ss_needleman_wunsch","pair":214,"parameters":[],"expected":0.08333333333333333},{"id":"c03435","function":"ss_smith_waterman","pair":214,"parameters":[],"expected":0.125},{"id":"c03436","function":"ss_affine_gap","pair":214,"parameters":[],"expected":0.0},{"id":"c03437","function":"ss_soundex","pair":214,"parameters":[],"expected":"X120"},{"id":"c03438","function":"ss_refined_soundex","pair":214,"parameters":[],"expected":"X12"},{"id":"c03439","function":"ss_double_metaphone","pair":214,"parameters":[],"expected":"SPKK"},{"id":"c03440","function":"ss_jaccard","pair":215,"parameters":[],"expected":1.0},{"id":"c03441","function":"ss_cosine","pair":215,"parameters":[],"expected":1.0},{"id":"c03442","function":"ss_sorensen_dice","pair":215,"parameters":[],"expected":1.0},{"id":"c03443","function":"ss_overlap_coefficient","pair":215,"parameters":[],"expected":1.0},{"id":"c03444","function":"ss_braun_blanquet","pair":215,"parameters":[],"expected":1.0},{"id":"c03445","function":"ss_monge_elkan","pair":215,"parameters":[],"expected":1.0},{"id":"c03446","function":"ss_levenshtein","pair":215,"parameters":[],"expected":1.0},{"id":"c03447","function":"ss_lcs_similarity","pair":215,"parameters":[],"expected":1.0},{"id":"c03448","function":"ss_jaro","pair":215,"parameters":[],"expected":1.0},{"id":"c03449","function":"ss_jaro_winkler","pair":215,"parameters":[],"expected":1.0},{"id":"c03450","function":"ss_needleman_wunsch","pair":215,"parameters":[],"expected":1.0},{"id":"c03451","function":"ss_smith_waterman","pair":215,"parameters":[],"expected":1.0},{"id":"c03452","function":"ss_affine_gap","pair":215,"parameters":[],"expected":1.0},{"id":"c03453","function":"ss_soundex","pair":215,"parameters":[],"expected":"X000"},{"id":"c03454","function":"ss_refined_soundex","pair":215,"parameters":[],"expected":"X"},{"id":"c03455","function":"ss_double_metaphone","pair":215,"parameters":[],"expected":"S"},{"id":"c03456","function":"ss_jaccard","pair":216,"parameters":[],"expected":1.0},{"id":"c03457","function":"ss_cosine","pair":216,"parameters":[],"expected":1.0},{"id":"c03458","function":"ss_sorensen_dice","pair":216,"parameters":[],"expected":1.0},{"id":"c03459","function":"ss_overlap_coefficient","pair":216,"parameters":[],"expected":1.0},{"id":"c03460","function":"ss_braun_blanquet","pair":216,"parameters":[],"expected":1.0},{"id":"c03461","function":"ss_monge_elkan","pair":216,"parameters":[],"expected":1.0},{"id":"c03462","function":"ss_levenshtein","pair":216,"parameters":[],"expected":1.0},{"id":"c03463","function":"ss_lcs_similarity","pair":216,"parameters":[],"expected":1.0},{"id":"c03464","function":"ss_jaro","pair":216,"parameters":[],"expected":1.0},{"id":"c03465","function":"ss_jaro_winkler","pair":216,"parameters":[],"expected":1.0},{"id":"c03466","function":"ss_needleman_wunsch","pair":216,"parameters":[],"expected":1.0},{"id":"c03467","function":"ss_smith_waterman","pair":216,"parameters":[],"expected":1.0},{"id":"c03468","function":"ss_affine_gap","pair":216,"parameters":[],"expected":1.0},{"id":"c03469","function":"ss_soundex","pair":216,"parameters":[],"expected":"S000"},{"id":"c03470","function":"ss_refined_soundex","pair":216,"parameters":[],"expected":"S"},{"id":"c03471","function":"ss_double_metaphone","pair":216,"parameters":[],"expected":"S"},{"id":"c03472","function":"ss_jaccard","pair":217,"parameters":[],"expected":0.3333333333333333},{"id":"c03473","function":"ss_cosine","pair":217,"parameters":[],"expected":0.5},{"id":"c03474","function":"ss_sorensen_dice","pair":217,"parameters":[],"expected":0.5},{"id":"c03475","function":"ss_overlap_coefficient","pair":217,"parameters":[],"expected":0.5},{"id":"c03476","function":"ss_braun_blanquet","pair":217,"parameters":[],"expected":0.5},{"id":"c03477","function":"ss_monge_elkan","pair":217,"parameters":[],"expected":0.990909090909091},{"id":"c03478","function":"ss_levenshtein","pair":217,"parameters":[],"expected":0.9375},{"id":"c03479","function":"ss_lcs_similarity","pair":217,"parameters":[],"expected":0.9375},{"id":"c03480","function":"ss_jaro","pair":217,"parameters":[],"expected":0.9791666666666666},{"id":"c03481","function":"ss_jaro_winkler","pair":217,"parameters":[],"expected":0.9874999999999999},{"id":"c03482","function":"ss_needleman_wunsch","pair":217,"parameters":[],"expected":0.9375},{"id":"c03483","function":"ss_smith_waterman","pair":217,"parameters":[],"expected":1.0},{"id":"c03484","function":"ss_affine_gap","pair":217,"parameters":[],"expected":0.8125},{"id":"c03485","function":"ss_soundex","pair":217,"parameters":[],"expected":"X320"},{"id":"c03486","function":"ss_refined_soundex","pair":217,"parameters":[],"expected":"X32"},{"id":"c03487","function":"ss_double_metaphone","pair":217,"parameters":[],"expected":"SKTS"},{"id":"c03488","function":"ss_jaccard","pair":218,"parameters":[],"expected":0.0},{"id":"c03489","function":"ss_cosine","pair":218,"parameters":[],"expected":0.0},{"id":"c03490","function":"ss_sorensen_dice","pair":218,"parameters":[],"expected":0.0},{"id":"c03491","function":"ss_overlap_coefficient","pair":218,"parameters":[],"expected":0.0},{"id":"c03492","function":"ss_braun_blanquet","pair":218,"parameters":[],"expected":0.0},{"id":"c03493","function":"ss_monge_elkan","pair":218,"parameters":[],"expected":0.0},{"id":"c03494","function":"ss_levenshtein","pair":218,"parameters":[],"expected":0.0},{"id":"c03495","function":"ss_lcs_similarity","pair":218,"parameters":[],"expected":0.0},{"id":"c03496","function":"ss_jaro","pair":218,"parameters":[],"expected":0.0},{"id":"c03497","function":"ss_jaro_winkler","pair":218,"parameters":[],"expected":0.0},{"id":"c03498","function":"ss_needleman_wunsch","pair":218,"parameters":[],"expected":0.0},{"id":"c03499","function":"ss_smith_waterman","pair":218,"parameters":[],"expected":0.0},{"id":"c03500","function":"ss_affine_gap","pair":218,"parameters":[],"expected":0.0},{"id":"c03501","function":"ss_soundex","pair":218,"parameters":[],"expected":"Y320"},{"id":"c03502","function":"ss_refined_soundex","pair":218,"parameters":[],"expected":"Y32"},{"id":"c03503","function":"ss_double_metaphone","pair":218,"parameters":[],"expected":"ATS"},{"id":"c03504","function":"ss_jaccard","pair":219,"parameters":[],"expected":0.0},{"id":"c03505","function":"ss_cosine","pair":219,"parameters":[],"expected":0.0},{"id":"c03506","function":"ss_sorensen_dice","pair":219,"parameters":[],"expected":0.0},{"id":"c03507","function":"ss_overlap_coefficient","pair":219,"parameters":[],"expected":0.0},{"id":"c03508","function":"ss_braun_blanquet","pair":219,"parameters":[],"expected":0.0},{"id":"c03509","function":"ss_monge_elkan","pair":219,"parameters":[],"expected":0.0},{"id":"c03510","function":"ss_levenshtein","pair":219,"parameters":[],"expected":0.0},{"id":"c03511","function":"ss_lcs_similarity","pair":219,"parameters":[],"expected":0.0},{"id":"c03512","function":"ss_jaro","pair":219,"parameters":[],"expected":0.0},{"id":"c03513","function":"ss_jaro_winkler","pair":219,"parameters":[],"expected":0.0},{"id":"c03514","function":"ss_needleman_wunsch","pair":219,"parameters":[],"expected":0.0},{"id":"c03515","function":"ss_smith_waterman","pair":219,"parameters":[],"expected":0.0},{"id":"c03516","function":"ss_affine_gap","pair":219,"parameters":[],"expected":0.0},{"id":"c03517","function":"ss_soundex","pair":219,"parameters":[],"expected":""},{"id":"c03518","function":"ss_refined_soundex","pair":219,"parameters":[],"expected":""},{"id":"c03519","function":"ss_double_metaphone","pair":219,"parameters":[],"expected":""},{"id":"c03520","function":"ss_jaccard","pair":220,"parameters":[],"expected":0.0},{"id":"c03521","function":"ss_cosine","pair":220,"parameters":[],"expected":0.0},{"id":"c03522","function":"ss_sorensen_dice","pair":220,"parameters":[],"expected":0.0},{"id":"c03523","function":"ss_overlap_coefficient","pair":220,"parameters":[],"expected":0.0},{"id":"c03524","function":"ss_braun_blanquet","pair":220,"parameters":[],"expected":0.0},{"id":"c03525","function":"ss_monge_elkan","pair":220,"parameters":[],"expected":0.0},{"id":"c03526","function":"ss_levenshtein","pair":220,"parameters":[],"expected":0.0},{"id":"c03527","function":"ss_lcs_similarity","pair":220,"parameters":[],"expected":0.5},{"id":"c03528","function":"ss_jaro","pair":220,"parameters":[],"expected":0.0},{"id":"c03529","function":"ss_jaro_winkler","pair":220,"parameters":[],"expected":0.0},{"id":"c03530","function":"ss_needleman_wunsch","pair":220,"parameters":[],"expected":0.25},{"id":"c03531","function":"ss_smith_waterman","pair":220,"parameters":[],"expected":0.5},{"id":"c03532","function":"ss_affine_gap","pair":220,"parameters":[],"expected":0.0},{"id":"c03533","function":"ss_soundex","pair":220,"parameters":[],"expected":"D000"},{"id":"c03534","function":"ss_refined_soundex","pair":220,"parameters":[],"expected":"D0"},{"id":"c03535","function":"ss_double_metaphone","pair":220,"parameters":[],"expected":"T"},{"id":"c03536","function":"ss_jaccard","pair":221,"parameters":[],"expected":0.5},{"id":"c03537","function":"ss_cosine","pair":221,"parameters":[],"expected":0.6666666666666666},{"id":"c03538","function":"ss_sorensen_dice","pair":221,"parameters":[],"expected":0.6666666666666666},{"id":"c03539","function":"ss_overlap_coefficient","pair":221,"parameters":[],"expected":0.6666666666666666},{"id":"c03540","function":"ss_braun_blanquet","pair":221,"parameters":[],"expected":0.6666666666666666},{"id":"c03541","function":"ss_monge_elkan","pair":221,"parameters":[],"expected":0.9500000000000001},{"id":"c03542","function":"ss_levenshtein","pair":221,"parameters":[],"expected":0.9230769230769231},{"id":"c03543","function":"ss_lcs_similarity","pair":221,"parameters":[],"expected":0.9230769230769231},{"id":"c03544","function":"ss_jaro","pair":221,"parameters":[],"expected":0.9743589743589745},{"id":"c03545","function":"ss_jaro_winkler","pair":221,"parameters":[],"expected":0.9846153846153847},{"id":"c03546","function":"ss_needleman_wunsch","pair":221,"parameters":[],"expected":0.9230769230769231},{"id":"c03547","function":"ss_smith_waterman","pair":221,"parameters":[],"expected":1.0},{"id":"c03548","function":"ss_affine_gap","pair":221,"parameters":[],"expected":0.7692307692307692},{"id":"c03549","function":"ss_soundex","pair":221,"parameters":[],"expected":"I212"},{"id":"c03550","function":"ss_refined_soundex","pair":221,"parameters":[],"expected":"I212"},{"id":"c03551","function":"ss_double_metaphone","pair":221,"parameters":[],"expected":"AKSP"},{"id":"c03552","function":"ss_jaccard","pair":222,"parameters":[],"expected":0.0},{"id":"c03553","function":"ss_cosine","pair":222,"parameters":[],"expected":0.0},{"id":"c03554","function":"ss_sorensen_dice","pair":222,"parameters":[],"expected":0.0},{"id":"c03555","function":"ss_overlap_coefficient","pair":222,"parameters":[],"expected":0.0},{"id":"c03556","function":"ss_braun_blanquet","pair":222,"parameters":[],"expected":0.0},{"id":"c03557","function":"ss_monge_elkan","pair":222,"parameters":[],"expected":0.4375},{"id":"c03558","function":"ss_levenshtein","pair":222,"parameters":[],"expected":0.1333333333333333},{"id":"c03559","function":"ss_lcs_similarity","pair":222,"parameters":[],"expected":0.13333333333333333},{"id":"c03560","function":"ss_jaro","pair":222,"parameters":[],"expected":0.6},{"id":"c03561","function":"ss_jaro_winkler","pair":222,"parameters":[],"expected":0.64},{"id":"c03562","function":"ss_needleman_wunsch","pair":222,"parameters":[],"expected":0.13333333333333333},{"id":"c03563","function":"ss_smith_waterman","pair":222,"parameters":[],"expected":0.6666666666666666},{"id":"c03564","function":"ss_affine_gap","pair":222,"parameters":[],"expected":0.0},{"id":"c03565","function":"ss_soundex","pair":222,"parameters":[],"expected":"I200"},{"id":"c03566","function":"ss_refined_soundex","pair":222,"parameters":[],"expected":"I2"},{"id":"c03567","function":"ss_double_metaphone","pair":222,"parameters":[],"expected":"ASK"},{"id":"c03568","function":"ss_jaccard","pair":223,"parameters":[],"expected":1.0},{"id":"c03569","function":"ss_cosine","pair":223,"parameters":[],"expected":1.0},{"id":"c03570","function":"ss_sorensen_dice","pair":223,"parameters":[],"expected":1.0},{"id":"c03571","function":"ss_overlap_coefficient","pair":223,"parameters":[],"expected":1.0},{"id":"c03572","function":"ss_braun_blanquet","pair":223,"parameters":[],"expected":1.0},{"id":"c03573","function":"ss_monge_elkan","pair":223,"parameters":[],"expected":1.0},{"id":"c03574","function":"ss_levenshtein","pair":223,"parameters":[],"expected":0.0},{"id":"c03575","function":"ss_lcs_similarity","pair":223,"parameters":[],"expected":0.5},{"id":"c03576","function":"ss_jaro","pair":223,"parameters":[],"expected":0.0},{"id":"c03577","function":"ss_jaro_winkler","pair":223,"parameters":[],"expected":0.0},{"id":"c03578","function":"ss_needleman_wunsch","pair":223,"parameters":[],"expected":0.25},{"id":"c03579","function":"ss_smith_waterman","pair":223,"parameters":[],"expected":0.5},{"id":"c03580","function":"ss_affine_gap","pair":223,"parameters":[],"expected":0.0},{"id":"c03581","function":"ss_soundex","pair":223,"parameters":[],"expected":"Z000"},{"id":"c03582","function":"ss_refined_soundex","pair":223,"parameters":[],"expected":"Z"},{"id":"c03583","function":"ss_double_metaphone","pair":223,"parameters":[],"expected":"S"},{"id":"c03584","function":"ss_jaccard","pair":224,"parameters":[],"expected":0.14285714285714285},{"id":"c03585","function":"ss_cosine","pair":224,"parameters":[],"expected":0.25},{"id":"c03586","function":"ss_sorensen_dice","pair":224,"parameters":[],"expected":0.25},{"id":"c03587","function":"ss_overlap_coefficient","pair":224,"parameters":[],"expected":0.25},{"id":"c03588","function":"ss_braun_blanquet","pair":224,"parameters":[],"expected":0.25},{"id":"c03589","function":"ss_monge_elkan","pair":224,"parameters":[],"expected":0.6111111111111112},{"id":"c03590","function":"ss_levenshtein","pair":224,"parameters":[],"expected":0.25},{"id":"c03591","function":"ss_lcs_similarity","pair":224,"parameters":[],"expected":0.5625},{"id":"c03592","function":"ss_jaro","pair":224,"parameters":[],"expected":0.6944444444444445},{"id":"c03593","function":"ss_jaro_winkler","pair":224,"parameters":[],"expected":0.6944444444444445},{"id":"c03594","function":"ss_needleman_wunsch","pair":224,"parameters":[],"expected":0.34375},{"id":"c03595","function":"ss_smith_waterman","pair":224,"parameters":[],"expected":0.25},{"id":"c03596","function":"ss_affine_gap","pair":224,"parameters":[],"expected":0.0},{"id":"c03597","function":"ss_soundex","pair":224,"parameters":[],"expected":"X123"},{"id":"c03598","function":"ss_refined_soundex","pair":224,"parameters":[],"expected":"X12302"},{"id":"c03599","function":"ss_double_metaphone","pair":224,"parameters":[],"expected":"SSSP"},{"id":"c03600","function":"ss_jaccard","pair":225,"parameters":[],"expected":0.0},{"id":"c03601","function":"ss_cosine","pair":225,"parameters":[],"expected":0.0},{"id":"c03602","function":"ss_sorensen_dice","pair":225,"parameters":[],"expected":0.0},{"id":"c03603","function":"ss_overlap_coefficient","pair":225,"parameters":[],"expected":0.0},{"id":"c03604","function":"ss_braun_blanquet","pair":225,"parameters":[],"expected":0.0},{"id":"c03605","function":"ss_monge_elkan","pair":225,"parameters":[],"expected":0.96},{"id":"c03606","function":"ss_levenshtein","pair":225,"parameters":[],"expected":0.8},{"id":"c03607","function":"ss_lcs_similarity","pair":225,"parameters":[],"expected":0.8},{"id":"c03608","function":"ss_jaro","pair":225,"parameters":[],"expected":0.9333333333333332},{"id":"c03609","function":"ss_jaro_winkler","pair":225,"parameters":[],"expected":0.96},{"id":"c03610","function":"ss_needleman_wunsch","pair":225,"parameters":[],"expected":0.8},{"id":"c03611","function":"ss_smith_waterman","pair":225,"parameters":[],"expected":1.0},{"id":"c03612","function":"ss_affine_gap","pair":225,"parameters":[],"expected":0.4},{"id":"c03613","function":"ss_soundex","pair":225,"parameters":[],"expected":"I000"},{"id":"c03614","function":"ss_refined_soundex","pair":225,"parameters":[],"expected":"I"},{"id":"c03615","function":"ss_double_metaphone","pair":225,"parameters":[],"expected":"A"},{"id":"c03616","function":"ss_jaccard","pair":226,"parameters":[],"expected":0.0},{"id":"c03617","function":"ss_cosine","pair":226,"parameters":[],"expected":0.0},{"id":"c03618","function":"ss_sorensen_dice","pair":226,"parameters":[],"expected":0.0},{"id":"c03619","function":"ss_overlap_coefficient","pair":226,"parameters":[],"expected":0.0},{"id":"c03620","function":"ss_braun_blanquet","pair":226,"parameters":[],"expected":0.0},{"id":"c03621","function":"ss_monge_elkan","pair":226,"parameters":[],"expected":0.0},{"id":"c03622","function":"ss_levenshtein","pair":226,"parameters":[],"expected":0.0},{"id":"c03623","function":"ss_lcs_similarity","pair":226,"parameters":[],"expected":0.5},{"id":"c03624","function":"ss_jaro","pair":226,"parameters":[],"expected":0.0},{"id":"c03625","function":"ss_jaro_winkler","pair":226,"parameters":[],"expected":0.0},{"id":"c03626","function":"ss_needleman_wunsch","pair":226,"parameters":[],"expected":0.25},{"id":"c03627","function":"ss_smith_waterman","pair":226,"parameters":[],"expected":0.5},{"id":"c03628","function":"ss_affine_gap","pair":226,"parameters":[],"expected":0.0},{"id":"c03629","function":"ss_soundex","pair":226,"parameters":[],"expected":"X000"},{"id":"c03630","function":"ss_refined_soundex","pair":226,"parameters":[],"expected":"X"},{"id":"c03631","function":"ss_double_metaphone","pair":226,"parameters":[],"expected":"S"},{"id":"c03632","function":"ss_jaccard","pair":227,"parameters":[],"expected":0.0},{"id":"c03633","function":"ss_cosine","pair":227,"parameters":[],"expected":0.0},{"id":"c03634","function":"ss_sorensen_dice","pair":227,"parameters":[],"expected":0.0},{"id":"c03635","function":"ss_overlap_coefficient","pair":227,"parameters":[],"expected":0.0},{"id":"c03636","function":"ss_braun_blanquet","pair":227,"parameters":[],"expected":0.0},{"id":"c03637","function":"ss_monge_elkan","pair":227,"parameters":[],"expected":0.0},{"id":"c03638","function":"ss_levenshtein","pair":227,"parameters":[],"expected":0.0},{"id":"c03639","function":"ss_lcs_similarity","pair":227,"parameters":[],"expected":0.0},{"id":"c03640","function":"ss_jaro","pair":227,"parameters":[],"expected":0.0},{"id":"c03641","function":"ss_jaro_winkler","pair":227,"parameters":[],"expected":0.0},{"id":"c03642","function":"ss_needleman_wunsch","pair":227,"parameters":[],"expected":0.0},{"id":"c03643","function":"ss_smith_waterman","pair":227,"parameters":[],"expected":0.0},{"id":"c03644","function":"ss_affine_gap","pair":227,"parameters":[],"expected":0.0},{"id":"c03645","function":"ss_soundex","pair":227,"parameters":[],"expected":"A000"},{"id":"c03646","function":"ss_refined_soundex","pair":227,"parameters":[],"expected":"A"},{"id":"c03647","function":"ss_double_metaphone","pair":227,"parameters":[],"expected":"A"},{"id":"c03648","function":"ss_jaccard","pair":228,"parameters":[],"expected":0.0},{"id":"c03649","function":"ss_cosine","pair":228,"parameters":[],"expected":0.0},{"id":"c03650","function":"ss_sorensen_dice","pair":228,"parameters":[],"expected":0.0},{"id":"c03651","function":"ss_overlap_coefficient","pair":228,"parameters":[],"expected":0.0},{"id":"c03652","function":"ss_braun_blanquet","pair":228,"parameters":[],"expected":0.0},{"id":"c03653","function":"ss_monge_elkan","pair":228,"parameters":[],"expected":0.9416666666666667},{"id":"c03654","function":"ss_levenshtein","pair":228,"parameters":[],"expected":0.75},{"id":"c03655","function":"ss_lcs_similarity","pair":228,"parameters":[],"expected":0.75},{"id":"c03656","function":"ss_jaro","pair":228,"parameters":[],"expected":0.9166666666666666},{"id":"c03657","function":"ss_jaro_winkler","pair":228,"parameters":[],"expected":0.9416666666666667},{"id":"c03658","function":"ss_needleman_wunsch","pair":228,"parameters":[],"expected":0.75},{"id":"c03659","function":"ss_smith_waterman","pair":228,"parameters":[],"expected":1.0},{"id":"c03660","function":"ss_affine_gap","pair":228,"parameters":[],"expected":0.25},{"id":"c03661","function":"ss_soundex","pair":228,"parameters":[],"expected":""},{"id":"c03662","function":"ss_refined_soundex","pair":228,"parameters":[],"expected":""},{"id":"c03663","function":"ss_double_metaphone","pair":228,"parameters":[],"expected":""},{"id":"c03664","function":"ss_jaccard","pair":229,"parameters":[],"expected":1.0},{"id":"c03665","function":"ss_cosine","pair":229,"parameters":[],"expected":1.0},{"id":"c03666","function":"ss_sorensen_dice","pair":229,"parameters":[],"expected":1.0},{"id":"c03667","function":"ss_overlap_coefficient","pair":229,"parameters":[],"expected":1.0},{"id":"c03668","function":"ss_braun_blanquet","pair":229,"parameters":[],"expected":1.0},{"id":"c03669","function":"ss_monge_elkan","pair":229,"parameters":[],"expected":1.0},{"id":"c03670","function":"ss_levenshtein","pair":229,"parameters":[],"expected":1.0},{"id":"c03671","function":"ss_lcs_similarity","pair":229,"parameters":[],"expected":1.0},{"id":"c03672","function":"ss_jaro","pair":229,"parameters":[],"expected":1.0},{"id":"c03673","function":"ss_jaro_winkler","pair":229,"parameters":[],"expected":1.0},{"id":"c03674","function":"ss_needleman_wunsch","pair":229,"parameters":[],"expected":1.0},{"id":"c03675","function":"ss_smith_waterman","pair":229,"parameters":[],"expected":1.0},{"id":"c03676","function":"ss_affine_gap","pair":229,"parameters":[],"expected":1.0},{"id":"c03677","function":"ss_soundex","pair":229,"parameters":[],"expected":""},{"id":"c03678","function":"ss_refined_soundex","pair":229,"parameters":[],"expected":""},{"id":"c03679","function":"ss_double_metaphone","pair":229,"parameters":[],"expected":""},{"id":"c03680","function":"ss_jaccard","pair":230,"parameters":[],"expected":0.0},{"id":"c03681","function":"ss_cosine","pair":230,"parameters":[],"expected":0.0},{"id":"c03682","function":"ss_sorensen_dice","pair":230,"parameters":[],"expected":0.0},{"id":"c03683","function":"ss_overlap_coefficient","pair":230,"parameters":[],"expected":0.0},{"id":"c03684","function":"ss_braun_blanquet","pair":230,"parameters":[],"expected":0.0},{"id":"c03685","function":"ss_monge_elkan","pair":230,"parameters":[],"expected":0.5512820512820513},{"id":"c03686","function":"ss_levenshtein","pair":230,"parameters":[],"expected":0.125},{"id":"c03687","function":"ss_lcs_similarity","pair":230,"parameters":[],"expected":0.4375},{"id":"c03688","function":"ss_jaro","pair":230,"parameters":[],"expected":0.75},{"id":"c03689","function":"ss_jaro_winkler","pair":230,"parameters":[],"expected":0.75},{"id":"c03690","function":"ss_needleman_wunsch","pair":230,"parameters":[],"expected":0.28125},{"id":"c03691","function":"ss_smith_waterman","pair":230,"parameters":[],"expected":0.1875},{"id":"c03692","function":"ss_affine_gap","pair":230,"parameters":[],"expected":0.0},{"id":"c03693","function":"ss_soundex","pair":230,"parameters":[],"expected":"B212"},{"id":"c03694","function":"ss_refined_soundex","pair":230,"parameters":[],"expected":"B2012"},{"id":"c03695","function":"ss_double_metaphone","pair":230,"parameters":[],"expected":"PKSS"},{"id":"c03696","function":"ss_jaccard","pair":231,"parameters":[],"expected":0.0},{"id":"c03697","function":"ss_cosine","pair":231,"parameters":[],"expected":0.0},{"id":"c03698","function":"ss_sorensen_dice","pair":231,"parameters":[],"expected":0.0},{"id":"c03699","function":"ss_overlap_coefficient","pair":231,"parameters":[],"expected":0.0},{"id":"c03700","function":"ss_braun_blanquet","pair":231,"parameters":[],"expected":0.0},{"id":"c03701","function":"ss_monge_elkan","pair":231,"parameters":[],"expected":0.0},{"id":"c03702","function":"ss_levenshtein","pair":231,"parameters":[],"expected":0.0},{"id":"c03703","function":"ss_lcs_similarity","pair":231,"parameters":[],"expected":0.1},{"id":"c03704","function":"ss_jaro","pair":231,"parameters":[],"expected":0.4037037037037037},{"id":"c03705","function":"ss_jaro_winkler","pair":231,"parameters":[],"expected":0.4037037037037037},{"id":"c03706","function":"ss_needleman_wunsch","pair":231,"parameters":[],"expected":0.05},{"id":"c03707","function":"ss_smith_waterman","pair":231,"parameters":[],"expected":0.1111111111111111},{"id":"c03708","function":"ss_affine_gap","pair":231,"parameters":[],"expected":0.0},{"id":"c03709","function":"ss_soundex","pair":231,"parameters":[],"expected":"X230"},{"id":"c03710","function":"ss_refined_soundex","pair":231,"parameters":[],"expected":"X023"},{"id":"c03711","function":"ss_double_metaphone","pair":231,"parameters":[],"expected":"SKT"},{"id":"c03712","function":"ss_jaccard","pair":232,"parameters":[],"expected":0.0},{"id":"c03713","function":"ss_cosine","pair":232,"parameters":[],"expected":0.0},{"id":"c03714","function":"ss_sorensen_dice","pair":232,"parameters":[],"expected":0.0},{"id":"c03715","function":"ss_overlap_coefficient","pair":232,"parameters":[],"expected":0.0},{"id":"c03716","function":"ss_braun_blanquet","pair":232,"parameters":[],"expected":0.0},{"id":"c03717","function":"ss_monge_elkan","pair":232,"parameters":[],"expected":0.4041666666666667},{"id":"c03718","function":"ss_levenshtein","pair":232,"parameters":[],"expected":0.15000000000000002},{"id":"c03719","function":"ss_lcs_similarity","pair":232,"parameters":[],"expected":0.15},{"id":"c03720","function":"ss_jaro","pair":232,"parameters":[],"expected":0.48333333333333334},{"id":"c03721","function":"ss_jaro_winkler","pair":232,"parameters":[],"expected":0.48333333333333334},{"id":"c03722","function":"ss_needleman_wunsch","pair":232,"parameters":[],"expected":0.15},{"id":"c03723","function":"ss_smith_waterman","pair":232,"parameters":[],"expected":0.25},{"id":"c03724","function":"ss_affine_gap","pair":232,"parameters":[],"expected":0.0},{"id":"c03725","function":"ss_soundex","pair":232,"parameters":[],"expected":"S000"},{"id":"c03726","function":"ss_refined_soundex","pair":232,"parameters":[],"expected":"S"},{"id":"c03727","function":"ss_double_metaphone","pair":232,"parameters":[],"expected":"SK"},{"id":"c03728","function":"ss_jaccard","pair":233,"parameters":[],"expected":0.0},{"id":"c03729","function":"ss_cosine","pair":233,"parameters":[],"expected":0.0},{"id":"c03730","function":"ss_sorensen_dice","pair":233,"parameters":[],"expected":0.0},{"id":"c03731","function":"ss_overlap_coefficient","pair":233,"parameters":[],"expected":0.0},{"id":"c03732","function":"ss_braun_blanquet","pair":233,"parameters":[],"expected":0.0},{"id":"c03733","function":"ss_monge_elkan","pair":233,"parameters":[],"expected":0.4227777777777778},{"id":"c03734","function":"ss_levenshtein","pair":233,"parameters":[],"expected":0.25},{"id":"c03735","function":"ss_lcs_similarity","pair":233,"parameters":[],"expected":0.25},{"id":"c03736","function":"ss_jaro","pair":233,"parameters":[],"expected":0.5472222222222222},{"id":"c03737","function":"ss_jaro_winkler","pair":233,"parameters":[],"expected":0.5472222222222222},{"id":"c03738","function":"ss_needleman_wunsch","pair":233,"parameters":[],"expected":0.25},{"id":"c03739","function":"ss_smith_waterman","pair":233,"parameters":[],"expected":0.25},{"id":"c03740","function":"ss_affine_gap","pair":233,"parameters":[],"expected":0.08333333333333337},{"id":"c03741","function":"ss_soundex","pair":233,"parameters":[],"expected":"I200"},{"id":"c03742","function":"ss_refined_soundex","pair":233,"parameters":[],"expected":"I2"},{"id":"c03743","function":"ss_double_metaphone","pair":233,"parameters":[],"expected":"AKSK"},{"id":"c03744","function":"ss_jaccard","pair":234,"parameters":[],"expected":1.0},{"id":"c03745","function":"ss_cosine","pair":234,"parameters":[],"expected":1.0},{"id":"c03746","function":"ss_sorensen_dice","pair":234,"parameters":[],"expected":1.0},{"id":"c03747","function":"ss_overlap_coefficient","pair":234,"parameters":[],"expected":1.0},{"id":"c03748","function":"ss_braun_blanquet","pair":234,"parameters":[],"expected":1.0},{"id":"c03749","function":"ss_monge_elkan","pair":234,"parameters":[],"expected":1.0},{"id":"c03750","function":"ss_levenshtein","pair":234,"parameters":[],"expected":1.0},{"id":"c03751","function":"ss_lcs_similarity","pair":234,"parameters":[],"expected":1.0},{"id":"c03752","function":"ss_jaro","pair":234,"parameters":[],"expected":1.0},{"id":"c03753","function":"ss_jaro_winkler","pair":234,"parameters":[],"expected":1.0},{"id":"c03754","function":"ss_needleman_wunsch","pair":234,"parameters":[],"expected":1.0},{"id":"c03755","function":"ss_smith_waterman","pair":234,"parameters":[],"expected":1.0},{"id":"c03756","function":"ss_affine_gap","pair":234,"parameters":[],"expected":1.0},{"id":"c03757","function":"ss_soundex","pair":234,"parameters":[],"expected":"S000"},{"id":"c03758","function":"ss_refined_soundex","pair":234,"parameters":[],"expected":"S"},{"id":"c03759","function":"ss_double_metaphone","pair":234,"parameters":[],"expected":"SKS"},{"id":"c03760","function":"ss_jaccard","pair":235,"parameters":[],"expected":1.0},{"id":"c03761","function":"ss_cosine","pair":235,"parameters":[],"expected":1.0},{"id":"c03762","function":"ss_sorensen_dice","pair":235,"parameters":[],"expected":1.0},{"id":"c03763","function":"ss_overlap_coefficient","pair":235,"parameters":[],"expected":1.0},{"id":"c03764","function":"ss_braun_blanquet","pair":235,"parameters":[],"expected":1.0},{"id":"c03765","function":"ss_monge_elkan","pair":235,"parameters":[],"expected":1.0},{"id":"c03766","function":"ss_levenshtein","pair":235,"parameters":[],"expected":1.0},{"id":"c03767","function":"ss_lcs_similarity","pair":235,"parameters":[],"expected":1.0},{"id":"c03768","function":"ss_jaro","pair":235,"parameters":[],"expected":1.0},{"id":"c03769","function":"ss_jaro_winkler","pair":235,"parameters":[],"expected":1.0},{"id":"c03770","function":"ss_needleman_wunsch","pair":235,"parameters":[],"expected":1.0},{"id":"c03771","function":"ss_smith_waterman","pair":235,"parameters":[],"expected":1.0},{"id":"c03772","function":"ss_affine_gap","pair":235,"parameters":[],"expected":1.0},{"id":"c03773","function":"ss_soundex","pair":235,"parameters":[],"expected":""},{"id":"c03774","function":"ss_refined_soundex","pair":235,"parameters":[],"expected":""},{"id":"c03775","function":"ss_double_metaphone","pair":235,"parameters":[],"expected":""},{"id":"c03776","function":"ss_jaccard","pair":236,"parameters":[],"expected":1.0},{"id":"c03777","function":"ss_cosine","pair":236,"parameters":[],"expected":1.0},{"id":"c03778","function":"ss_sorensen_dice","pair":236,"parameters":[],"expected":1.0},{"id":"c03779","function":"ss_overlap_coefficient","pair":236,"parameters":[],"expected":1.0},{"id":"c03780","function":"ss_braun_blanquet","pair":236,"parameters":[],"expected":1.0},{"id":"c03781","function":"ss_monge_elkan","pair":236,"parameters":[],"expected":1.0},{"id":"c03782","function":"ss_levenshtein","pair":236,"parameters":[],"expected":1.0},{"id":"c03783","function":"ss_lcs_similarity","pair":236,"parameters":[],"expected":1.0},{"id":"c03784","function":"ss_jaro","pair":236,"parameters":[],"expected":1.0},{"id":"c03785","function":"ss_jaro_winkler","pair":236,"parameters":[],"expected":1.0},{"id":"c03786","function":"ss_needleman_wunsch","pair":236,"parameters":[],"expected":1.0},{"id":"c03787","function":"ss_smith_waterman","pair":236,"parameters":[],"expected":1.0},{"id":"c03788","function":"ss_affine_gap","pair":236,"parameters":[],"expected":1.0},{"id":"c03789","function":"ss_soundex","pair":236,"parameters":[],"expected":"I100"},{"id":"c03790","function":"ss_refined_soundex","pair":236,"parameters":[],"expected":"I10"},{"id":"c03791","function":"ss_double_metaphone","pair":236,"parameters":[],"expected":"AP"},{"id":"c03792","function":"ss_jaccard","pair":237,"parameters":[],"expected":1.0},{"id":"c03793","function":"ss_cosine","pair":237,"parameters":[],"expected":1.0},{"id":"c03794","function":"ss_sorensen_dice","pair":237,"parameters":[],"expected":1.0},{"id":"c03795","function":"ss_overlap_coefficient","pair":237,"parameters":[],"expected":1.0},{"id":"c03796","function":"ss_braun_blanquet","pair":237,"parameters":[],"expected":1.0},{"id":"c03797","function":"ss_monge_elkan","pair":237,"parameters":[],"expected":1.0},{"id":"c03798","function":"ss_levenshtein","pair":237,"parameters":[],"expected":1.0},{"id":"c03799","function":"ss_lcs_similarity","pair":237,"parameters":[],"expected":1.0},{"id":"c03800","function":"ss_jaro","pair":237,"parameters":[],"expected":1.0},{"id":"c03801","function":"ss_jaro_winkler","pair":237,"parameters":[],"expected":1.0},{"id":"c03802","function":"ss_needleman_wunsch","pair":237,"parameters":[],"expected":1.0},{"id":"c03803","function":"ss_smith_waterman","pair":237,"parameters":[],"expected":1.0},{"id":"c03804","function":"ss_affine_gap","pair":237,"parameters":[],"expected":1.0},{"id":"c03805","function":"ss_soundex","pair":237,"parameters":[],"expected":""},{"id":"c03806","function":"ss_refined_soundex","pair":237,"parameters":[],"expected":""},{"id":"c03807","function":"ss_double_metaphone","pair":237,"parameters":[],"expected":""},{"id":"c03808","function":"ss_jaccard","pair":238,"parameters":[],"expected":1.0},{"id":"c03809","function":"ss_cosine","pair":238,"parameters":[],"expected":1.0},{"id":"c03810","function":"ss_sorensen_dice","pair":238,"parameters":[],"expected":1.0},{"id":"c03811","function":"ss_overlap_coefficient","pair":238,"parameters":[],"expected":1.0},{"id":"c03812","function":"ss_braun_blanquet","pair":238,"parameters":[],"expected":1.0},{"id":"c03813","function":"ss_monge_elkan","pair":238,"parameters":[],"expected":1.0},{"id":"c03814","function":"ss_levenshtein","pair":238,"parameters":[],"expected":1.0},{"id":"c03815","function":"ss_lcs_similarity","pair":238,"parameters":[],"expected":1.0},{"id":"c03816","function":"ss_jaro","pair":238,"parameters":[],"expected":1.0},{"id":"c03817","function":"ss_jaro_winkler","pair":238,"parameters":[],"expected":1.0},{"id":"c03818","function":"ss_needleman_wunsch","pair":238,"parameters":[],"expected":1.0},{"id":"c03819","function":"ss_smith_waterman","pair":238,"parameters":[],"expected":1.0},{"id":"c03820","function":"ss_affine_gap","pair":238,"parameters":[],"expected":1.0},{"id":"c03821","function":"ss_soundex","pair":238,"parameters":[],"expected":""},{"id":"c03822","function":"ss_refined_soundex","pair":238,"parameters":[],"expected":""},{"id":"c03823","function":"ss_double_metaphone","pair":238,"parameters":[],"expected":""},{"id":"c03824","function":"ss_jaccard","pair":239,"parameters":[],"expected":0.0},{"id":"c03825","function":"ss_cosine","pair":239,"parameters":[],"expected":0.0},{"id":"c03826","function":"ss_sorensen_dice","pair":239,"parameters":[],"expected":0.0},{"id":"c03827","function":"ss_overlap_coefficient","pair":239,"parameters":[],"expected":0.0},{"id":"c03828","function":"ss_braun_blanquet","pair":239,"parameters":[],"expected":0.0},{"id":"c03829","function":"ss_monge_elkan","pair":239,"parameters":[],"expected":0.41841931216931216},{"id":"c03830","function":"ss_levenshtein","pair":239,"parameters":[],"expected":0.11111111111111116},{"id":"c03831","function":"ss_lcs_similarity","pair":239,"parameters":[],"expected":0.1111111111111111},{"id":"c03832","function":"ss_jaro","pair":239,"parameters":[],"expected":0.4314814814814814},{"id":"c03833","function":"ss_jaro_winkler","pair":239,"parameters":[],"expected":0.4314814814814814},{"id":"c03834","function":"ss_needleman_wunsch","pair":239,"parameters":[],"expected":0.1111111111111111},{"id":"c03835","function":"ss_smith_waterman","pair":239,"parameters":[],"expected":0.16666666666666666},{"id":"c03836","function":"ss_affine_gap","pair":239,"parameters":[],"expected":0.0},{"id":"c03837","function":"ss_soundex","pair":239,"parameters":[],"expected":"Z000"},{"id":"c03838","function":"ss_refined_soundex","pair":239,"parameters":[],"expected":"Z0"},{"id":"c03839","function":"ss_double_metaphone","pair":239,"parameters":[],"expected":"S"},{"id":"c03840","function":"ss_jaccard","pair":240,"parameters":[],"expected":1.0},{"id":"c03841","function":"ss_cosine","pair":240,"parameters":[],"expected":1.0},{"id":"c03842","function":"ss_sorensen_dice","pair":240,"parameters":[],"expected":1.0},{"id":"c03843","function":"ss_overlap_coefficient","pair":240,"parameters":[],"expected":1.0},{"id":"c03844","function":"ss_braun_blanquet","pair":240,"parameters":[],"expected":1.0},{"id":"c03845","function":"ss_monge_elkan","pair":240,"parameters":[],"expected":1.0},{"id":"c03846","function":"ss_levenshtein","pair":240,"parameters":[],"expected":1.0},{"id":"c03847","function":"ss_lcs_similarity","pair":240,"parameters":[],"expected":1.0},{"id":"c03848","function":"ss_jaro","pair":240,"parameters":[],"expected":1.0},{"id":"c03849","function":"ss_jaro_winkler","pair":240,"parameters":[],"expected":1.0},{"id":"c03850","function":"ss_needleman_wunsch","pair":240,"parameters":[],"expected":1.0},{"id":"c03851","function":"ss_smith_waterman","pair":240,"parameters":[],"expected":1.0},{"id":"c03852","function":"ss_affine_gap","pair":240,"parameters":[],"expected":1.0},{"id":"c03853","function":"ss_soundex","pair":240,"parameters":[],"expected":"D200"},{"id":"c03854","function":"ss_refined_soundex","pair":240,"parameters":[],"expected":"D2"},{"id":"c03855","function":"ss_double_metaphone","pair":240,"parameters":[],"expected":"TK"},{"id":"c03856","function":"ss_jaccard","pair":241,"parameters":[],"expected":1.0},{"id":"c03857","function":"ss_cosine","pair":241,"parameters":[],"expected":1.0},{"id":"c03858","function":"ss_sorensen_dice","pair":241,"parameters":[],"expected":1.0},{"id":"c03859","function":"ss_overlap_coefficient","pair":241,"parameters":[],"expected":1.0},{"id":"c03860","function":"ss_braun_blanquet","pair":241,"parameters":[],"expected":1.0},{"id":"c03861","function":"ss_monge_elkan","pair":241,"parameters":[],"expected":1.0},{"id":"c03862","function":"ss_levenshtein","pair":241,"parameters":[],"expected":1.0},{"id":"c03863","function":"ss_lcs_similarity","pair":241,"parameters":[],"expected":1.0},{"id":"c03864","function":"ss_jaro","pair":241,"parameters":[],"expected":1.0},{"id":"c03865","function":"ss_jaro_winkler","pair":241,"parameters":[],"expected":1.0},{"id":"c03866","function":"ss_needleman_wunsch","pair":241,"parameters":[],"expected":1.0},{"id":"c03867","function":"ss_smith_waterman","pair":241,"parameters":[],"expected":1.0},{"id":"c03868","function":"ss_affine_gap","pair":241,"parameters":[],"expected":1.0},{"id":"c03869","function":"ss_soundex","pair":241,"parameters":[],"expected":"Z220"},{"id":"c03870","function":"ss_refined_soundex","pair":241,"parameters":[],"expected":"Z0202"},{"id":"c03871","function":"ss_double_metaphone","pair":241,"parameters":[],"expected":"SSKS"},{"id":"c03872","function":"ss_jaccard","pair":242,"parameters":[],"expected":1.0},{"id":"c03873","function":"ss_cosine","pair":242,"parameters":[],"expected":1.0},{"id":"c03874","function":"ss_sorensen_dice","pair":242,"parameters":[],"expected":1.0},{"id":"c03875","function":"ss_overlap_coefficient","pair":242,"parameters":[],"expected":1.0},{"id":"c03876","function":"ss_braun_blanquet","pair":242,"parameters":[],"expected":1.0},{"id":"c03877","function":"ss_monge_elkan","pair":242,"parameters":[],"expected":1.0},{"id":"c03878","function":"ss_levenshtein","pair":242,"parameters":[],"expected":1.0},{"id":"c03879","function":"ss_lcs_similarity","pair":242,"parameters":[],"expected":1.0},{"id":"c03880","function":"ss_jaro","pair":242,"parameters":[],"expected":1.0},{"id":"c03881","function":"ss_jaro_winkler","pair":242,"parameters":[],"expected":1.0},{"id":"c03882","function":"ss_needleman_wunsch","pair":242,"parameters":[],"expected":1.0},{"id":"c03883","function":"ss_smith_waterman","pair":242,"parameters":[],"expected":1.0},{"id":"c03884","function":"ss_affine_gap","pair":242,"parameters":[],"expected":1.0},{"id":"c03885","function":"ss_soundex","pair":242,"parameters":[],"expected":"I200"},{"id":"c03886","function":"ss_refined_soundex","pair":242,"parameters":[],"expected":"I2"},{"id":"c03887","function":"ss_double_metaphone","pair":242,"parameters":[],"expected":"AK"},{"id":"c03888","function":"ss_jaccard","pair":243,"parameters":[],"expected":1.0},{"id":"c03889","function":"ss_cosine","pair":243,"parameters":[],"expected":1.0},{"id":"c03890","function":"ss_sorensen_dice","pair":243,"parameters":[],"expected":1.0},{"id":"c03891","function":"ss_overlap_coefficient","pair":243,"parameters":[],"expected":1.0},{"id":"c03892","function":"ss_braun_blanquet","pair":243,"parameters":[],"expected":1.0},{"id":"c03893","function":"ss_monge_elkan","pair":243,"parameters":[],"expected":1.0},{"id":"c03894","function":"ss_levenshtein","pair":243,"parameters":[],"expected":1.0},{"id":"c03895","function":"ss_lcs_similarity","pair":243,"parameters":[],"expected":1.0},{"id":"c03896","function":"ss_jaro","pair":243,"parameters":[],"expected":1.0},{"id":"c03897","function":"ss_jaro_winkler","pair":243,"parameters":[],"expected":1.0},{"id":"c03898","function":"ss_needleman_wunsch","pair":243,"parameters":[],"expected":1.0},{"id":"c03899","function":"ss_smith_waterman","pair":243,"parameters":[],"expected":1.0},{"id":"c03900","function":"ss_affine_gap","pair":243,"parameters":[],"expected":1.0},{"id":"c03901","function":"ss_soundex","pair":243,"parameters":[],"expected":"D000"},{"id":"c03902","function":"ss_refined_soundex","pair":243,"parameters":[],"expected":"D"},{"id":"c03903","function":"ss_double_metaphone","pair":243,"parameters":[],"expected":"T"},{"id":"c03904","function":"ss_jaccard","pair":244,"parameters":[],"expected":0.0},{"id":"c03905","function":"ss_cosine","pair":244,"parameters":[],"expected":0.0},{"id":"c03906","function":"ss_sorensen_dice","pair":244,"parameters":[],"expected":0.0},{"id":"c03907","function":"ss_overlap_coefficient","pair":244,"parameters":[],"expected":0.0},{"id":"c03908","function":"ss_braun_blanquet","pair":244,"parameters":[],"expected":0.0},{"id":"c03909","function":"ss_monge_elkan","pair":244,"parameters":[],"expected":0.21875},{"id":"c03910","function":"ss_levenshtein","pair":244,"parameters":[],"expected":0.0},{"id":"c03911","function":"ss_lcs_similarity","pair":244,"parameters":[],"expected":0.07692307692307693},{"id":"c03912","function":"ss_jaro","pair":244,"parameters":[],"expected":0.41452991452991456},{"id":"c03913","function":"ss_jaro_winkler","pair":244,"parameters":[],"expected":0.41452991452991456},{"id":"c03914","function":"ss_needleman_wunsch","pair":244,"parameters":[],"expected":0.0},{"id":"c03915","function":"ss_smith_waterman","pair":244,"parameters":[],"expected":0.16666666666666666},{"id":"c03916","function":"ss_affine_gap","pair":244,"parameters":[],"expected":0.0},{"id":"c03917","function":"ss_soundex","pair":244,"parameters":[],"expected":"X120"},{"id":"c03918","function":"ss_refined_soundex","pair":244,"parameters":[],"expected":"X102"},{"id":"c03919","function":"ss_double_metaphone","pair":244,"parameters":[],"expected":"SPSK"},{"id":"c03920","function":"ss_jaccard","pair":245,"parameters":[],"expected":0.0},{"id":"c03921","function":"ss_cosine","pair":245,"parameters":[],"expected":0.0},{"id":"c03922","function":"ss_sorensen_dice","pair":245,"parameters":[],"expected":0.0},{"id":"c03923","function":"ss_overlap_coefficient","pair":245,"parameters":[],"expected":0.0},{"id":"c03924","function":"ss_braun_blanquet","pair":245,"parameters":[],"expected":0.0},{"id":"c03925","function":"ss_monge_elkan","pair":245,"parameters":[],"expected":0.0},{"id":"c03926","function":"ss_levenshtein","pair":245,"parameters":[],"expected":0.0},{"id":"c03927","function":"ss_lcs_similarity","pair":245,"parameters":[],"expected":0.0},{"id":"c03928","function":"ss_jaro","pair":245,"parameters":[],"expected":0.0},{"id":"c03929","function":"ss_jaro_winkler","pair":245,"parameters":[],"expected":0.0},{"id":"c03930","function":"ss_needleman_wunsch","pair":245,"parameters":[],"expected":0.0},{"id":"c03931","function":"ss_smith_waterman","pair":245,"parameters":[],"expected":0.0},{"id":"c03932","function":"ss_affine_gap","pair":245,"parameters":[],"expected":0.0},{"id":"c03933","function":"ss_soundex","pair":245,"parameters":[],"expected":"Z000"},{"id":"c03934","function":"ss_refined_soundex","pair":245,"parameters":[],"expected":"Z"},{"id":"c03935","function":"ss_double_metaphone","pair":245,"parameters":[],"expected":"S"},{"id":"c03936","function":"ss_jaccard","pair":246,"parameters":[],"expected":0.0},{"id":"c03937","function":"ss_cosine","pair":246,"parameters":[],"expected":0.0},{"id":"c03938","function":"ss_sorensen_dice","pair":246,"parameters":[],"expected":0.0},{"id":"c03939","function":"ss_overlap_coefficient","pair":246,"parameters":[],"expected":0.0},{"id":"c03940","function":"ss_braun_blanquet","pair":246,"parameters":[],"expected":0.0},{"id":"c03941","function":"ss_monge_elkan","pair":246,"parameters":[],"expected":0.0},{"id":"c03942","function":"ss_levenshtein","pair":246,"parameters":[],"expected":0.0},{"id":"c03943","function":"ss_lcs_similarity","pair":246,"parameters":[],"expected":0.07142857142857142},{"id":"c03944","function":"ss_jaro","pair":246,"parameters":[],"expected":0.0},{"id":"c03945","function":"ss_jaro_winkler","pair":246,"parameters":[],"expected":0.0},{"id":"c03946","function":"ss_needleman_wunsch","pair":246,"parameters":[],"expected":0.03571428571428571},{"id":"c03947","function":"ss_smith_waterman","pair":246,"parameters":[],"expected":0.3333333333333333},{"id":"c03948","function":"ss_affine_gap","pair":246,"parameters":[],"expected":0.0},{"id":"c03949","function":"ss_soundex","pair":246,"parameters":[],"expected":"Z200"},{"id":"c03950","function":"ss_refined_soundex","pair":246,"parameters":[],"expected":"Z02"},{"id":"c03951","function":"ss_double_metaphone","pair":246,"parameters":[],"expected":"SKS"},{"id":"c03952","function":"ss_jaccard","pair":247,"parameters":[],"expected":0.0},{"id":"c03953","function":"ss_cosine","pair":247,"parameters":[],"expected":0.0},{"id":"c03954","function":"ss_sorensen_dice","pair":247,"parameters":[],"expected":0.0},{"id":"c03955","function":"ss_overlap_coefficient","pair":247,"parameters":[],"expected":0.0},{"id":"c03956","function":"ss_braun_blanquet","pair":247,"parameters":[],"expected":0.0},{"id":"c03957","function":"ss_monge_elkan","pair":247,"parameters":[],"expected":0.17939814814814814},{"id":"c03958","function":"ss_levenshtein","pair":247,"parameters":[],"expected":0.125},{"id":"c03959","function":"ss_lcs_similarity","pair":247,"parameters":[],"expected":0.1875},{"id":"c03960","function":"ss_jaro","pair":247,"parameters":[],"expected":0.4222222222222222},{"id":"c03961","function":"ss_jaro_winkler","pair":247,"parameters":[],"expected":0.4222222222222222},{"id":"c03962","function":"ss_needleman_wunsch","pair":247,"parameters":[],"expected":0.125},{"id":"c03963","function":"ss_smith_waterman","pair":247,"parameters":[],"expected":0.06666666666666667},{"id":"c03964","function":"ss_affine_gap","pair":247,"parameters":[],"expected":0.0},{"id":"c03965","function":"ss_soundex","pair":247,"parameters":[],"expected":"B000"},{"id":"c03966","function":"ss_refined_soundex","pair":247,"parameters":[],"expected":"B0"},{"id":"c03967","function":"ss_double_metaphone","pair":247,"parameters":[],"expected":"P"},{"id":"c03968","function":"ss_jaccard","pair":248,"parameters":[],"expected":0.0},{"id":"c03969","function":"ss_cosine","pair":248,"parameters":[],"expected":0.0},{"id":"c03970","function":"ss_sorensen_dice","pair":248,"parameters":[],"expected":0.0},{"id":"c03971","function":"ss_overlap_coefficient","pair":248,"parameters":[],"expected":0.0},{"id":"c03972","function":"ss_braun_blanquet","pair":248,"parameters":[],"expected":0.0},{"id":"c03973","function":"ss_monge_elkan","pair":248,"parameters":[],"expected":0.0},{"id":"c03974","function":"ss_levenshtein","pair":248,"parameters":[],"expected":0.0},{"id":"c03975","function":"ss_lcs_similarity","pair":248,"parameters":[],"expected":0.0},{"id":"c03976","function":"ss_jaro","pair":248,"parameters":[],"expected":0.0},{"id":"c03977","function":"ss_jaro_winkler","pair":248,"parameters":[],"expected":0.0},{"id":"c03978","function":"ss_needleman_wunsch","pair":248,"parameters":[],"expected":0.0},{"id":"c03979","function":"ss_smith_waterman","pair":248,"parameters":[],"expected":0.0},{"id":"c03980","function":"ss_affine_gap","pair":248,"parameters":[],"expected":0.0},{"id":"c03981","function":"ss_soundex","pair":248,"parameters":[],"expected":"A000"},{"id":"c03982","function":"ss_refined_soundex","pair":248,"parameters":[],"expected":"A"},{"id":"c03983","function":"ss_double_metaphone","pair":248,"parameters":[],"expected":"A"},{"id":"c03984","function":"ss_jaccard","pair":249,"parameters":[],"expected":0.3333333333333333},{"id":"c03985","function":"ss_cosine","pair":249,"parameters":[],"expected":0.5},{"id":"c03986","function":"ss_sorensen_dice","pair":249,"parameters":[],"expected":0.5},{"id":"c03987","function":"ss_overlap_coefficient","pair":249,"parameters":[],"expected":0.5},{"id":"c03988","function":"ss_braun_blanquet","pair":249,"parameters":[],"expected":0.5},{"id":"c03989","function":"ss_monge_elkan","pair":249,"parameters":[],"expected":0.925},{"id":"c03990","function":"ss_levenshtein","pair":249,"parameters":[],"expected":0.8},{"id":"c03991","function":"ss_lcs_similarity","pair":249,"parameters":[],"expected":0.8},{"id":"c03992","function":"ss_jaro","pair":249,"parameters":[],"expected":0.9333333333333332},{"id":"c03993","function":"ss_jaro_winkler","pair":249,"parameters":[],"expected":0.96},{"id":"c03994","function":"ss_needleman_wunsch","pair":249,"parameters":[],"expected":0.8},{"id":"c03995","function":"ss_smith_waterman","pair":249,"parameters":[],"expected":1.0},{"id":"c03996","function":"ss_affine_gap","pair":249,"parameters":[],"expected":0.4},{"id":"c03997","function":"ss_soundex","pair":249,"parameters":[],"expected":"Z000"},{"id":"c03998","function":"ss_refined_soundex","pair":249,"parameters":[],"expected":"Z"},{"id":"c03999","function":"ss_double_metaphone","pair":249,"parameters":[],"expected":"S"},{"id":"c04000","function":"ss_jaccard","pair":250,"parameters":[],"expected":0.5},{"id":"c04001","function":"ss_cosine","pair":250,"parameters":[],"expected":0.6666666666666666},{"id":"c04002","function":"ss_sorensen_dice","pair":250,"parameters":[],"expected":0.6666666666666666},{"id":"c04003","function":"ss_overlap_coefficient","pair":250,"parameters":[],"expected":0.6666666666666666},{"id":"c04004","function":"ss_braun_blanquet","pair":250,"parameters":[],"expected":0.6666666666666666},{"id":"c04005","function":"ss_monge_elkan","pair":250,"parameters":[],"expected":0.9703703703703703},{"id":"c04006","function":"ss_levenshtein","pair":250,"parameters":[],"expected":0.9090909090909091},{"id":"c04007","function":"ss_lcs_similarity","pair":250,"parameters":[],"expected":0.9090909090909091},{"id":"c04008","function":"ss_jaro","pair":250,"parameters":[],"expected":0.9696969696969697},{"id":"c04009","function":"ss_jaro_winkler","pair":250,"parameters":[],"expected":0.9818181818181818},{"id":"c04010","function":"ss_needleman_wunsch","pair":250,"parameters":[],"expected":0.9090909090909091},{"id":"c04011","function":"ss_smith_waterman","pair":250,"parameters":[],"expected":1.0},{"id":"c04012","function":"ss_affine_gap","pair":250,"parameters":[],"expected":0.7272727272727273},{"id":"c04013","function":"ss_soundex","pair":250,"parameters":[],"expected":"I230"},{"id":"c04014","function":"ss_refined_soundex","pair":250,"parameters":[],"expected":"I23"},{"id":"c04015","function":"ss_double_metaphone","pair":250,"parameters":[],"expected":"AKST"},{"id":"c04016","function":"ss_jaccard","pair":251,"parameters":[],"expected":1.0},{"id":"c04017","function":"ss_cosine","pair":251,"parameters":[],"expected":1.0},{"id":"c04018","function":"ss_sorensen_dice","pair":251,"parameters":[],"expected":1.0},{"id":"c04019","function":"ss_overlap_coefficient","pair":251,"parameters":[],"expected":1.0},{"id":"c04020","function":"ss_braun_blanquet","pair":251,"parameters":[],"expected":1.0},{"id":"c04021","function":"ss_monge_elkan","pair":251,"parameters":[],"expected":1.0},{"id":"c04022","function":"ss_levenshtein","pair":251,"parameters":[],"expected":1.0},{"id":"c04023","function":"ss_lcs_similarity","pair":251,"parameters":[],"expected":1.0},{"id":"c04024","function":"ss_jaro","pair":251,"parameters":[],"expected":1.0},{"id":"c04025","function":"ss_jaro_winkler","pair":251,"parameters":[],"expected":1.0},{"id":"c04026","function":"ss_needleman_wunsch","pair":251,"parameters":[],"expected":1.0},{"id":"c04027","function":"ss_smith_waterman","pair":251,"parameters":[],"expected":1.0},{"id":"c04028","function":"ss_affine_gap","pair":251,"parameters":[],"expected":1.0},{"id":"c04029","function":"ss_soundex","pair":251,"parameters":[],"expected":"A200"},{"id":"c04030","function":"ss_refined_soundex","pair":251,"parameters":[],"expected":"A2"},{"id":"c04031","function":"ss_double_metaphone","pair":251,"parameters":[],"expected":"AS"},{"id":"c04032","function":"ss_jaccard","pair":252,"parameters":[],"expected":1.0},{"id":"c04033","function":"ss_cosine","pair":252,"parameters":[],"expected":1.0},{"id":"c04034","function":"ss_sorensen_dice","pair":252,"parameters":[],"expected":1.0},{"id":"c04035","function":"ss_overlap_coefficient","pair":252,"parameters":[],"expected":1.0},{"id":"c04036","function":"ss_braun_blanquet","pair":252,"parameters":[],"expected":1.0},{"id":"c04037","function":"ss_monge_elkan","pair":252,"parameters":[],"expected":1.0},{"id":"c04038","function":"ss_levenshtein","pair":252,"parameters":[],"expected":1.0},{"id":"c04039","function":"ss_lcs_similarity","pair":252,"parameters":[],"expected":1.0},{"id":"c04040","function":"ss_jaro","pair":252,"parameters":[],"expected":1.0},{"id":"c04041","function":"ss_jaro_winkler","pair":252,"parameters":[],"expected":1.0},{"id":"c04042","function":"ss_needleman_wunsch","pair":252,"parameters":[],"expected":1.0},{"id":"c04043","function":"ss_smith_waterman","pair":252,"parameters":[],"expected":1.0},{"id":"c04044","function":"ss_affine_gap","pair":252,"parameters":[],"expected":1.0},{"id":"c04045","function":"ss_soundex","pair":252,"parameters":[],"expected":"I000"},{"id":"c04046","function":"ss_refined_soundex","pair":252,"parameters":[],"expected":"I"},{"id":"c04047","function":"ss_double_metaphone","pair":252,"parameters":[],"expected":"A"},{"id":"c04048","function":"ss_jaccard","pair":253,"parameters":[],"expected":1.0},{"id":"c04049","function":"ss_cosine","pair":253,"parameters":[],"expected":1.0},{"id":"c04050","function":"ss_sorensen_dice","pair":253,"parameters":[],"expected":1.0},{"id":"c04051","function":"ss_overlap_coefficient","pair":253,"parameters":[],"expected":1.0},{"id":"c04052","function":"ss_braun_blanquet","pair":253,"parameters":[],"expected":1.0},{"id":"c04053","function":"ss_monge_elkan","pair":253,"parameters":[],"expected":1.0},{"id":"c04054","function":"ss_levenshtein","pair":253,"parameters":[],"expected":1.0},{"id":"c04055","function":"ss_lcs_similarity","pair":253,"parameters":[],"expected":1.0},{"id":"c04056","function":"ss_jaro","pair":253,"parameters":[],"expected":1.0},{"id":"c04057","function":"ss_jaro_winkler","pair":253,"parameters":[],"expected":1.0},{"id":"c04058","function":"ss_needleman_wunsch","pair":253,"parameters":[],"expected":1.0},{"id":"c04059","function":"ss_smith_waterman","pair":253,"parameters":[],"expected":1.0},{"id":"c04060","function":"ss_affine_gap","pair":253,"parameters":[],"expected":1.0},{"id":"c04061","function":"ss_soundex","pair":253,"parameters":[],"expected":"S000"},{"id":"c04062","function":"ss_refined_soundex","pair":253,"parameters":[],"expected":"S"},{"id":"c04063","function":"ss_double_metaphone","pair":253,"parameters":[],"expected":"S"},{"id":"c04064","function":"ss_jaccard","pair":254,"parameters":[],"expected":1.0},{"id":"c04065","function":"ss_cosine","pair":254,"parameters":[],"expected":1.0},{"id":"c04066","function":"ss_sorensen_dice","pair":254,"parameters":[],"expected":1.0},{"id":"c04067","function":"ss_overlap_coefficient","pair":254,"parameters":[],"expected":1.0},{"id":"c04068","function":"ss_braun_blanquet","pair":254,"parameters":[],"expected":1.0},{"id":"c04069","function":"ss_monge_elkan","pair":254,"parameters":[],"expected":1.0},{"id":"c04070","function":"ss_levenshtein","pair":254,"parameters":[],"expected":1.0},{"id":"c04071","function":"ss_lcs_similarity","pair":254,"parameters":[],"expected":1.0},{"id":"c04072","function":"ss_jaro","pair":254,"parameters":[],"expected":1.0},{"id":"c04073","function":"ss_jaro_winkler","pair":254,"parameters":[],"expected":1.0},{"id":"c04074","function":"ss_needleman_wunsch","pair":254,"parameters":[],"expected":1.0},{"id":"c04075","function":"ss_smith_waterman","pair":254,"parameters":[],"expected":1.0},{"id":"c04076","function":"ss_affine_gap","pair":254,"parameters":[],"expected":1.0},{"id":"c04077","function":"ss_soundex","pair":254,"parameters":[],"expected":"Y300"},{"id":"c04078","function":"ss_refined_soundex","pair":254,"parameters":[],"expected":"Y30"},{"id":"c04079","function":"ss_double_metaphone","pair":254,"parameters":[],"expected":"AT"},{"id":"c04080","function":"ss_jaccard","pair":255,"parameters":[],"expected":0.3333333333333333},{"id":"c04081","function":"ss_cosine","pair":255,"parameters":[],"expected":0.5},{"id":"c04082","function":"ss_sorensen_dice","pair":255,"parameters":[],"expected":0.5},{"id":"c04083","function":"ss_overlap_coefficient","pair":255,"parameters":[],"expected":0.5},{"id":"c04084","function":"ss_braun_blanquet","pair":255,"parameters":[],"expected":0.5},{"id":"c04085","function":"ss_monge_elkan","pair":255,"parameters":[],"expected":0.9928571428571429},{"id":"c04086","function":"ss_levenshtein","pair":255,"parameters":[],"expected":0.9523809523809523},{"id":"c04087","function":"ss_lcs_similarity","pair":255,"parameters":[],"expected":0.9523809523809523},{"id":"c04088","function":"ss_jaro","pair":255,"parameters":[],"expected":0.9841269841269842},{"id":"c04089","function":"ss_jaro_winkler","pair":255,"parameters":[],"expected":0.9904761904761905},{"id":"c04090","function":"ss_needleman_wunsch","pair":255,"parameters":[],"expected":0.9523809523809523},{"id":"c04091","function":"ss_smith_waterman","pair":255,"parameters":[],"expected":1.0},{"id":"c04092","function":"ss_affine_gap","pair":255,"parameters":[],"expected":0.8571428571428572},{"id":"c04093","function":"ss_soundex","pair":255,"parameters":[],"expected":"A212"},{"id":"c04094","function":"ss_refined_soundex","pair":255,"parameters":[],"expected":"A212"},{"id":"c04095","function":"ss_double_metaphone","pair":255,"parameters":[],"expected":"ASPS"},{"id":"c04096","function":"ss_jaccard","pair":256,"parameters":[],"expected":1.0},{"id":"c04097","function":"ss_cosine","pair":256,"parameters":[],"expected":1.0},{"id":"c04098","function":"ss_sorensen_dice","pair":256,"parameters":[],"expected":1.0},{"id":"c04099","function":"ss_overlap_coefficient","pair":256,"parameters":[],"expected":1.0},{"id":"c04100","function":"ss_braun_blanquet","pair":256,"parameters":[],"expected":1.0},{"id":"c04101","function":"ss_monge_elkan","pair":256,"parameters":[],"expected":1.0},{"id":"c04102","function":"ss_levenshtein","pair":256,"parameters":[],"expected":1.0},{"id":"c04103","function":"ss_lcs_similarity","pair":256,"parameters":[],"expected":1.0},{"id":"c04104","function":"ss_jaro","pair":256,"parameters":[],"expected":1.0},{"id":"c04105","function":"ss_jaro_winkler","pair":256,"parameters":[],"expected":1.0},{"id":"c04106","function":"ss_needleman_wunsch","pair":256,"parameters":[],"expected":1.0},{"id":"c04107","function":"ss_smith_waterman","pair":256,"parameters":[],"expected":1.0},{"id":"c04108","function":"ss_affine_gap","pair":256,"parameters":[],"expected":1.0},{"id":"c04109","function":"ss_soundex","pair":256,"parameters":[],"expected":""},{"id":"c04110","function":"ss_refined_soundex","pair":256,"parameters":[],"expected":""},{"id":"c04111","function":"ss_double_metaphone","pair":256,"parameters":[],"expected":""},{"id":"c04112","function":"ss_jaccard","pair":257,"parameters":[],"expected":0.0},{"id":"c04113","function":"ss_cosine","pair":257,"parameters":[],"expected":0.0},{"id":"c04114","function":"ss_sorensen_dice","pair":257,"parameters":[],"expected":0.0},{"id":"c04115","function":"ss_overlap_coefficient","pair":257,"parameters":[],"expected":0.0},{"id":"c04116","function":"ss_braun_blanquet","pair":257,"parameters":[],"expected":0.0},{"id":"c04117","function":"ss_monge_elkan","pair":257,"parameters":[],"expected":0.0},{"id":"c04118","function":"ss_levenshtein","pair":257,"parameters":[],"expected":0.07692307692307687},{"id":"c04119","function":"ss_lcs_similarity","pair":257,"parameters":[],"expected":0.07692307692307693},{"id":"c04120","function":"ss_jaro","pair":257,"parameters":[],"expected":0.47008547008547},{"id":"c04121","function":"ss_jaro_winkler","pair":257,"parameters":[],"expected":0.47008547008547},{"id":"c04122","function":"ss_needleman_wunsch","pair":257,"parameters":[],"expected":0.07692307692307693},{"id":"c04123","function":"ss_smith_waterman","pair":257,"parameters":[],"expected":0.3333333333333333},{"id":"c04124","function":"ss_affine_gap","pair":257,"parameters":[],"expected":0.0},{"id":"c04125","function":"ss_soundex","pair":257,"parameters":[],"expected":"S100"},{"id":"c04126","function":"ss_refined_soundex","pair":257,"parameters":[],"expected":"S1"},{"id":"c04127","function":"ss_double_metaphone","pair":257,"parameters":[],"expected":"SP"},{"id":"c04128","function":"ss_jaccard","pair":258,"parameters":[],"expected":1.0},{"id":"c04129","function":"ss_cosine","pair":258,"parameters":[],"expected":1.0},{"id":"c04130","function":"ss_sorensen_dice","pair":258,"parameters":[],"expected":1.0},{"id":"c04131","function":"ss_overlap_coefficient","pair":258,"parameters":[],"expected":1.0},{"id":"c04132","function":"ss_braun_blanquet","pair":258,"parameters":[],"expected":1.0},{"id":"c04133","function":"ss_monge_elkan","pair":258,"parameters":[],"expected":1.0},{"id":"c04134","function":"ss_levenshtein","pair":258,"parameters":[],"expected":0.9333333333333333},{"id":"c04135","function":"ss_lcs_similarity","pair":258,"parameters":[],"expected":0.9333333333333333},{"id":"c04136","function":"ss_jaro","pair":258,"parameters":[],"expected":0.9777777777777779},{"id":"c04137","function":"ss_jaro_winkler","pair":258,"parameters":[],"expected":0.9866666666666667},{"id":"c04138","function":"ss_needleman_wunsch","pair":258,"parameters":[],"expected":0.9333333333333333},{"id":"c04139","function":"ss_smith_waterman","pair":258,"parameters":[],"expected":1.0},{"id":"c04140","function":"ss_affine_gap","pair":258,"parameters":[],"expected":0.8},{"id":"c04141","function":"ss_soundex","pair":258,"parameters":[],"expected":"B200"},{"id":"c04142","function":"ss_refined_soundex","pair":258,"parameters":[],"expected":"B20"},{"id":"c04143","function":"ss_double_metaphone","pair":258,"parameters":[],"expected":"PSKS"},{"id":"c04144","function":"ss_jaccard","pair":259,"parameters":[],"expected":0.0},{"id":"c04145","function":"ss_cosine","pair":259,"parameters":[],"expected":0.0},{"id":"c04146","function":"ss_sorensen_dice","pair":259,"parameters":[],"expected":0.0},{"id":"c04147","function":"ss_overlap_coefficient","pair":259,"parameters":[],"expected":0.0},{"id":"c04148","function":"ss_braun_blanquet","pair":259,"parameters":[],"expected":0.0},{"id":"c04149","function":"ss_monge_elkan","pair":259,"parameters":[],"expected":0.0},{"id":"c04150","function":"ss_levenshtein","pair":259,"parameters":[],"expected":0.0},{"id":"c04151","function":"ss_lcs_similarity","pair":259,"parameters":[],"expected":0.0},{"id":"c04152","function":"ss_jaro","pair":259,"parameters":[],"expected":0.0},{"id":"c04153","function":"ss_jaro_winkler","pair":259,"parameters":[],"expected":0.0},{"id":"c04154","function":"ss_needleman_wunsch","pair":259,"parameters":[],"expected":0.0},{"id":"c04155","function":"ss_smith_waterman","pair":259,"parameters":[],"expected":0.0},{"id":"c04156","function":"ss_affine_gap","pair":259,"parameters":[],"expected":0.0},{"id":"c04157","function":"ss_soundex","pair":259,"parameters":[],"expected":"I130"},{"id":"c04158","function":"ss_refined_soundex","pair":259,"parameters":[],"expected":"I130"},{"id":"c04159","function":"ss_double_metaphone","pair":259,"parameters":[],"expected":"APT"},{"id":"c04160","function":"ss_jaccard","pair":260,"parameters":[],"expected":1.0},{"id":"c04161","function":"ss_cosine","pair":260,"parameters":[],"expected":1.0},{"id":"c04162","function":"ss_sorensen_dice","pair":260,"parameters":[],"expected":1.0},{"id":"c04163","function":"ss_overlap_coefficient","pair":260,"parameters":[],"expected":1.0},{"id":"c04164","function":"ss_braun_blanquet","pair":260,"parameters":[],"expected":1.0},{"id":"c04165","function":"ss_monge_elkan","pair":260,"parameters":[],"expected":1.0},{"id":"c04166","function":"ss_levenshtein","pair":260,"parameters":[],"expected":1.0},{"id":"c04167","function":"ss_lcs_similarity","pair":260,"parameters":[],"expected":1.0},{"id":"c04168","function":"ss_jaro","pair":260,"parameters":[],"expected":1.0},{"id":"c04169","function":"ss_jaro_winkler","pair":260,"parameters":[],"expected":1.0},{"id":"c04170","function":"ss_needleman_wunsch","pair":260,"parameters":[],"expected":1.0},{"id":"c04171","function":"ss_smith_waterman","pair":260,"parameters":[],"expected":1.0},{"id":"c04172","function":"ss_affine_gap","pair":260,"parameters":[],"expected":1.0},{"id":"c04173","function":"ss_soundex","pair":260,"parameters":[],"expected":"A200"},{"id":"c04174","function":"ss_refined_soundex","pair":260,"parameters":[],"expected":"A2"},{"id":"c04175","function":"ss_double_metaphone","pair":260,"parameters":[],"expected":"AKSS"},{"id":"c04176","function":"ss_jaccard","pair":261,"parameters":[],"expected":0.2},{"id":"c04177","function":"ss_cosine","pair":261,"parameters":[],"expected":0.3333333333333333},{"id":"c04178","function":"ss_sorensen_dice","pair":261,"parameters":[],"expected":0.3333333333333333},{"id":"c04179","function":"ss_overlap_coefficient","pair":261,"parameters":[],"expected":0.3333333333333333},{"id":"c04180","function":"ss_braun_blanquet","pair":261,"parameters":[],"expected":0.3333333333333333},{"id":"c04181","function":"ss_monge_elkan","pair":261,"parameters":[],"expected":0.6814814814814814},{"id":"c04182","function":"ss_levenshtein","pair":261,"parameters":[],"expected":0.07692307692307687},{"id":"c04183","function":"ss_lcs_similarity","pair":261,"parameters":[],"expected":0.23076923076923078},{"id":"c04184","function":"ss_jaro","pair":261,"parameters":[],"expected":0.4743589743589744},{"id":"c04185","function":"ss_jaro_winkler","pair":261,"parameters":[],"expected":0.4743589743589744},{"id":"c04186","function":"ss_needleman_wunsch","pair":261,"parameters":[],"expected":0.07692307692307693},{"id":"c04187","function":"ss_smith_waterman","pair":261,"parameters":[],"expected":0.15384615384615385},{"id":"c04188","function":"ss_affine_gap","pair":261,"parameters":[],"expected":0.07692307692307687},{"id":"c04189","function":"ss_soundex","pair":261,"parameters":[],"expected":"C200"},{"id":"c04190","function":"ss_refined_soundex","pair":261,"parameters":[],"expected":"C02"},{"id":"c04191","function":"ss_double_metaphone","pair":261,"parameters":[],"expected":"KKS"},{"id":"c04192","function":"ss_jaccard","pair":262,"parameters":[],"expected":0.0},{"id":"c04193","function":"ss_cosine","pair":262,"parameters":[],"expected":1.0},{"id":"c04194","function":"ss_sorensen_dice","pair":262,"parameters":[],"expected":0.0},{"id":"c04195","function":"ss_overlap_coefficient","pair":262,"parameters":[],"expected":1.0},{"id":"c04196","function":"ss_braun_blanquet","pair":262,"parameters":[],"expected":0.0},{"id":"c04197","function":"ss_monge_elkan","pair":262,"parameters":[],"expected":0.0},{"id":"c04198","function":"ss_levenshtein","pair":262,"parameters":[],"expected":0.0},{"id":"c04199","function":"ss_lcs_similarity","pair":262,"parameters":[],"expected":0.0},{"id":"c04200","function":"ss_jaro","pair":262,"parameters":[],"expected":0.0},{"id":"c04201","function":"ss_jaro_winkler","pair":262,"parameters":[],"expected":0.0},{"id":"c04202","function":"ss_needleman_wunsch","pair":262,"parameters":[],"expected":0.0},{"id":"c04203","function":"ss_smith_waterman","pair":262,"parameters":[],"expected":0.0},{"id":"c04204","function":"ss_affine_gap","pair":262,"parameters":[],"expected":0.0},{"id":"c04205","function":"ss_soundex","pair":262,"parameters":[],"expected":"B200"},{"id":"c04206","function":"ss_refined_soundex","pair":262,"parameters":[],"expected":"B2"},{"id":"c04207","function":"ss_double_metaphone","pair":262,"parameters":[],"expected":"PKS"},{"id":"c04208","function":"ss_jaccard","pair":263,"parameters":[],"expected":0.0},{"id":"c04209","function":"ss_cosine","pair":263,"parameters":[],"expected":0.0},{"id":"c04210","function":"ss_sorensen_dice","pair":263,"parameters":[],"expected":0.0},{"id":"c04211","function":"ss_overlap_coefficient","pair":263,"parameters":[],"expected":0.0},{"id":"c04212","function":"ss_braun_blanquet","pair":263,"parameters":[],"expected":0.0},{"id":"c04213","function":"ss_monge_elkan","pair":263,"parameters":[],"expected":0.4119318181818181},{"id":"c04214","function":"ss_levenshtein","pair":263,"parameters":[],"expected":0.0},{"id":"c04215","function":"ss_lcs_similarity","pair":263,"parameters":[],"expected":0.2727272727272727},{"id":"c04216","function":"ss_jaro","pair":263,"parameters":[],"expected":0.5242424242424243},{"id":"c04217","function":"ss_jaro_winkler","pair":263,"parameters":[],"expected":0.5242424242424243},{"id":"c04218","function":"ss_needleman_wunsch","pair":263,"parameters":[],"expected":0.045454545454545456},{"id":"c04219","function":"ss_smith_waterman","pair":263,"parameters":[],"expected":0.1},{"id":"c04220","function":"ss_affine_gap","pair":263,"parameters":[],"expected":0.0},{"id":"c04221","function":"ss_soundex","pair":263,"parameters":[],"expected":"C200"},{"id":"c04222","function":"ss_refined_soundex","pair":263,"parameters":[],"expected":"C02"},{"id":"c04223","function":"ss_double_metaphone","pair":263,"parameters":[],"expected":"SK"},{"id":"c04224","function":"ss_jaccard","pair":264,"parameters":[],"expected":0.0},{"id":"c04225","function":"ss_cosine","pair":264,"parameters":[],"expected":0.0},{"id":"c04226","function":"ss_sorensen_dice","pair":264,"parameters":[],"expected":0.0},{"id":"c04227","function":"ss_overlap_coefficient","pair":264,"parameters":[],"expected":0.0},{"id":"c04228","function":"ss_braun_blanquet","pair":264,"parameters":[],"expected":0.0},{"id":"c04229","function":"ss_monge_elkan","pair":264,"parameters":[],"expected":0.7999999999999999},{"id":"c04230","function":"ss_levenshtein","pair":264,"parameters":[],"expected":0.33333333333333337},{"id":"c04231","function":"ss_lcs_similarity","pair":264,"parameters":[],"expected":0.3333333333333333},{"id":"c04232","function":"ss_jaro","pair":264,"parameters":[],"expected":0.7777777777777777},{"id":"c04233","function":"ss_jaro_winkler","pair":264,"parameters":[],"expected":0.7999999999999999},{"id":"c04234","function":"ss_needleman_wunsch","pair":264,"parameters":[],"expected":0.3333333333333333},{"id":"c04235","function":"ss_smith_waterman","pair":264,"parameters":[],"expected":1.0},{"id":"c04236","function":"ss_affine_gap","pair":264,"parameters":[],"expected":0.0},{"id":"c04237","function":"ss_soundex","pair":264,"parameters":[],"expected":"B000"},{"id":"c04238","function":"ss_refined_soundex","pair":264,"parameters":[],"expected":"B"},{"id":"c04239","function":"ss_double_metaphone","pair":264,"parameters":[],"expected":"P"},{"id":"c04240","function":"ss_jaccard","pair":265,"parameters":[],"expected":0.0},{"id":"c04241","function":"ss_cosine","pair":265,"parameters":[],"expected":0.0},{"id":"c04242","function":"ss_sorensen_dice","pair":265,"parameters":[],"expected":0.0},{"id":"c04243","function":"ss_overlap_coefficient","pair":265,"parameters":[],"expected":0.0},{"id":"c04244","function":"ss_braun_blanquet","pair":265,"parameters":[],"expected":0.0},{"id":"c04245","function":"ss_monge_elkan","pair":265,"parameters":[],"expected":0.0},{"id":"c04246","function":"ss_levenshtein","pair":265,"parameters":[],"expected":0.0},{"id":"c04247","function":"ss_lcs_similarity","pair":265,"parameters":[],"expected":0.21428571428571427},{"id":"c04248","function":"ss_jaro","pair":265,"parameters":[],"expected":0.36507936507936506},{"id":"c04249","function":"ss_jaro_winkler","pair":265,"parameters":[],"expected":0.36507936507936506},{"id":"c04250","function":"ss_needleman_wunsch","pair":265,"parameters":[],"expected":0.07142857142857142},{"id":"c04251","function":"ss_smith_waterman","pair":265,"parameters":[],"expected":0.10714285714285714},{"id":"c04252","function":"ss_affine_gap","pair":265,"parameters":[],"expected":0.0},{"id":"c04253","function":"ss_soundex","pair":265,"parameters":[],"expected":"Y121"},{"id":"c04254","function":"ss_refined_soundex","pair":265,"parameters":[],"expected":"Y12102"},{"id":"c04255","function":"ss_double_metaphone","pair":265,"parameters":[],"expected":"APKS"},{"id":"c04256","function":"ss_jaccard","pair":266,"parameters":[],"expected":0.0},{"id":"c04257","function":"ss_cosine","pair":266,"parameters":[],"expected":0.0},{"id":"c04258","function":"ss_sorensen_dice","pair":266,"parameters":[],"expected":0.0},{"id":"c04259","function":"ss_overlap_coefficient","pair":266,"parameters":[],"expected":0.0},{"id":"c04260","function":"ss_braun_blanquet","pair":266,"parameters":[],"expected":0.0},{"id":"c04261","function":"ss_monge_elkan","pair":266,"parameters":[],"expected":0.0},{"id":"c04262","function":"ss_levenshtein","pair":266,"parameters":[],"expected":0.0},{"id":"c04263","function":"ss_lcs_similarity","pair":266,"parameters":[],"expected":0.0},{"id":"c04264","function":"ss_jaro","pair":266,"parameters":[],"expected":0.0},{"id":"c04265","function":"ss_jaro_winkler","pair":266,"parameters":[],"expected":0.0},{"id":"c04266","function":"ss_needleman_wunsch","pair":266,"parameters":[],"expected":0.0},{"id":"c04267","function":"ss_smith_waterman","pair":266,"parameters":[],"expected":0.0},{"id":"c04268","function":"ss_affine_gap","pair":266,"parameters":[],"expected":0.0},{"id":"c04269","function":"ss_soundex","pair":266,"parameters":[],"expected":"D000"},{"id":"c04270","function":"ss_refined_soundex","pair":266,"parameters":[],"expected":"D"},{"id":"c04271","function":"ss_double_metaphone","pair":266,"parameters":[],"expected":"T"},{"id":"c04272","function":"ss_jaccard","pair":267,"parameters":[],"expected":1.0},{"id":"c04273","function":"ss_cosine","pair":267,"parameters":[],"expected":1.0},{"id":"c04274","function":"ss_sorensen_dice","pair":267,"parameters":[],"expected":1.0},{"id":"c04275","function":"ss_overlap_coefficient","pair":267,"parameters":[],"expected":1.0},{"id":"c04276","function":"ss_braun_blanquet","pair":267,"parameters":[],"expected":1.0},{"id":"c04277","function":"ss_monge_elkan","pair":267,"parameters":[],"expected":1.0},{"id":"c04278","function":"ss_levenshtein","pair":267,"parameters":[],"expected":1.0},{"id":"c04279","function":"ss_lcs_similarity","pair":267,"parameters":[],"expected":1.0},{"id":"c04280","function":"ss_jaro","pair":267,"parameters":[],"expected":1.0},{"id":"c04281","function":"ss_jaro_winkler","pair":267,"parameters":[],"expected":1.0},{"id":"c04282","function":"ss_needleman_wunsch","pair":267,"parameters":[],"expected":1.0},{"id":"c04283","function":"ss_smith_waterman","pair":267,"parameters":[],"expected":1.0},{"id":"c04284","function":"ss_affine_gap","pair":267,"parameters":[],"expected":1.0},{"id":"c04285","function":"ss_soundex","pair":267,"parameters":[],"expected":"Z120"},{"id":"c04286","function":"ss_refined_soundex","pair":267,"parameters":[],"expected":"Z12"},{"id":"c04287","function":"ss_double_metaphone","pair":267,"parameters":[],"expected":"SPS"},{"id":"c04288","function":"ss_jaccard","pair":268,"parameters":[],"expected":0.0},{"id":"c04289","function":"ss_cosine","pair":268,"parameters":[],"expected":0.0},{"id":"c04290","function":"ss_sorensen_dice","pair":268,"parameters":[],"expected":0.0},{"id":"c04291","function":"ss_overlap_coefficient","pair":268,"parameters":[],"expected":0.0},{"id":"c04292","function":"ss_braun_blanquet","pair":268,"parameters":[],"expected":0.0},{"id":"c04293","function":"ss_monge_elkan","pair":268,"parameters":[],"expected":0.9846153846153847},{"id":"c04294","function":"ss_levenshtein","pair":268,"parameters":[],"expected":0.9230769230769231},{"id":"c04295","function":"ss_lcs_similarity","pair":268,"parameters":[],"expected":0.9230769230769231},{"id":"c04296","function":"ss_jaro","pair":268,"parameters":[],"expected":0.9743589743589745},{"id":"c04297","function":"ss_jaro_winkler","pair":268,"parameters":[],"expected":0.9846153846153847},{"id":"c04298","function":"ss_needleman_wunsch","pair":268,"parameters":[],"expected":0.9230769230769231},{"id":"c04299","function":"ss_smith_waterman","pair":268,"parameters":[],"expected":1.0},{"id":"c04300","function":"ss_affine_gap","pair":268,"parameters":[],"expected":0.7692307692307692},{"id":"c04301","function":"ss_soundex","pair":268,"parameters":[],"expected":"Z120"},{"id":"c04302","function":"ss_refined_soundex","pair":268,"parameters":[],"expected":"Z102"},{"id":"c04303","function":"ss_double_metaphone","pair":268,"parameters":[],"expected":"SPKS"},{"id":"c04304","function":"ss_jaccard","pair":269,"parameters":[],"expected":0.0},{"id":"c04305","function":"ss_cosine","pair":269,"parameters":[],"expected":0.0},{"id":"c04306","function":"ss_sorensen_dice","pair":269,"parameters":[],"expected":0.0},{"id":"c04307","function":"ss_overlap_coefficient","pair":269,"parameters":[],"expected":0.0},{"id":"c04308","function":"ss_braun_blanquet","pair":269,"parameters":[],"expected":0.0},{"id":"c04309","function":"ss_monge_elkan","pair":269,"parameters":[],"expected":0.9888888888888889},{"id":"c04310","function":"ss_levenshtein","pair":269,"parameters":[],"expected":0.9444444444444444},{"id":"c04311","function":"ss_lcs_similarity","pair":269,"parameters":[],"expected":0.9444444444444444},{"id":"c04312","function":"ss_jaro","pair":269,"parameters":[],"expected":0.9814814814814815},{"id":"c04313","function":"ss_jaro_winkler","pair":269,"parameters":[],"expected":0.9888888888888889},{"id":"c04314","function":"ss_needleman_wunsch","pair":269,"parameters":[],"expected":0.9444444444444444},{"id":"c04315","function":"ss_smith_waterman","pair":269,"parameters":[],"expected":1.0},{"id":"c04316","function":"ss_affine_gap","pair":269,"parameters":[],"expected":0.8333333333333334},{"id":"c04317","function":"ss_soundex","pair":269,"parameters":[],"expected":"X120"},{"id":"c04318","function":"ss_refined_soundex","pair":269,"parameters":[],"expected":"X01020"},{"id":"c04319","function":"ss_double_metaphone","pair":269,"parameters":[],"expected":"SSPK"},{"id":"c04320","function":"ss_jaccard","pair":270,"parameters":[],"expected":1.0},{"id":"c04321","function":"ss_cosine","pair":270,"parameters":[],"expected":1.0},{"id":"c04322","function":"ss_sorensen_dice","pair":270,"parameters":[],"expected":1.0},{"id":"c04323","function":"ss_overlap_coefficient","pair":270,"parameters":[],"expected":1.0},{"id":"c04324","function":"ss_braun_blanquet","pair":270,"parameters":[],"expected":1.0},{"id":"c04325","function":"ss_monge_elkan","pair":270,"parameters":[],"expected":1.0},{"id":"c04326","function":"ss_levenshtein","pair":270,"parameters":[],"expected":1.0},{"id":"c04327","function":"ss_lcs_similarity","pair":270,"parameters":[],"expected":1.0},{"id":"c04328","function":"ss_jaro","pair":270,"parameters":[],"expected":1.0},{"id":"c04329","function":"ss_jaro_winkler","pair":270,"parameters":[],"expected":1.0},{"id":"c04330","function":"ss_needleman_wunsch","pair":270,"parameters":[],"expected":1.0},{"id":"c04331","function":"ss_smith_waterman","pair":270,"parameters":[],"expected":1.0},{"id":"c04332","function":"ss_affine_gap","pair":270,"parameters":[],"expected":1.0},{"id":"c04333","function":"ss_soundex","pair":270,"parameters":[],"expected":""},{"id":"c04334","function":"ss_refined_soundex","pair":270,"parameters":[],"expected":""},{"id":"c04335","function":"ss_double_metaphone","pair":270,"parameters":[],"expected":""},{"id":"c04336","function":"ss_jaccard","pair":271,"parameters":[],"expected":0.2},{"id":"c04337","function":"ss_cosine","pair":271,"parameters":[],"expected":0.3333333333333333},{"id":"c04338","function":"ss_sorensen_dice","pair":271,"parameters":[],"expected":0.3333333333333333},{"id":"c04339","function":"ss_overlap_coefficient","pair":271,"parameters":[],"expected":0.3333333333333333},{"id":"c04340","function":"ss_braun_blanquet","pair":271,"parameters":[],"expected":0.3333333333333333},{"id":"c04341","function":"ss_monge_elkan","pair":271,"parameters":[],"expected":0.7185185185185187},{"id":"c04342","function":"ss_levenshtein","pair":271,"parameters":[],"expected":0.06666666666666665},{"id":"c04343","function":"ss_lcs_similarity","pair":271,"parameters":[],"expected":0.4},{"id":"c04344","function":"ss_jaro","pair":271,"parameters":[],"expected":0.6592592592592593},{"id":"c04345","function":"ss_jaro_winkler","pair":271,"parameters":[],"expected":0.6592592592592593},{"id":"c04346","function":"ss_needleman_wunsch","pair":271,"parameters":[],"expected":0.23333333333333334},{"id":"c04347","function":"ss_smith_waterman","pair":271,"parameters":[],"expected":0.2},{"id":"c04348","function":"ss_affine_gap","pair":271,"parameters":[],"expected":0.06666666666666665},{"id":"c04349","function":"ss_soundex","pair":271,"parameters":[],"expected":"I120"},{"id":"c04350","function":"ss_refined_soundex","pair":271,"parameters":[],"expected":"I12"},{"id":"c04351","function":"ss_double_metaphone","pair":271,"parameters":[],"expected":"APSK"},{"id":"c04352","function":"ss_jaccard","pair":272,"parameters":[],"expected":0.0},{"id":"c04353","function":"ss_cosine","pair":272,"parameters":[],"expected":0.0},{"id":"c04354","function":"ss_sorensen_dice","pair":272,"parameters":[],"expected":0.0},{"id":"c04355","function":"ss_overlap_coefficient","pair":272,"parameters":[],"expected":0.0},{"id":"c04356","function":"ss_braun_blanquet","pair":272,"parameters":[],"expected":0.0},{"id":"c04357","function":"ss_monge_elkan","pair":272,"parameters":[],"expected":0.0},{"id":"c04358","function":"ss_levenshtein","pair":272,"parameters":[],"expected":0.0},{"id":"c04359","function":"ss_lcs_similarity","pair":272,"parameters":[],"expected":0.0},{"id":"c04360","function":"ss_jaro","pair":272,"parameters":[],"expected":0.0},{"id":"c04361","function":"ss_jaro_winkler","pair":272,"parameters":[],"expected":0.0},{"id":"c04362","function":"ss_needleman_wunsch","pair":272,"parameters":[],"expected":0.0},{"id":"c04363","function":"ss_smith_waterman","pair":272,"parameters":[],"expected":0.0},{"id":"c04364","function":"ss_affine_gap","pair":272,"parameters":[],"expected":0.0},{"id":"c04365","function":"ss_soundex","pair":272,"parameters":[],"expected":"C133"},{"id":"c04366","function":"ss_refined_soundex","pair":272,"parameters":[],"expected":"C01303"},{"id":"c04367","function":"ss_double_metaphone","pair":272,"parameters":[],"expected":"SPTT"},{"id":"c04368","function":"ss_jaccard","pair":273,"parameters":[],"expected":0.0},{"id":"c04369","function":"ss_cosine","pair":273,"parameters":[],"expected":0.0},{"id":"c04370","function":"ss_sorensen_dice","pair":273,"parameters":[],"expected":0.0},{"id":"c04371","function":"ss_overlap_coefficient","pair":273,"parameters":[],"expected":0.0},{"id":"c04372","function":"ss_braun_blanquet","pair":273,"parameters":[],"expected":0.0},{"id":"c04373","function":"ss_monge_elkan","pair":273,"parameters":[],"expected":0.0},{"id":"c04374","function":"ss_levenshtein","pair":273,"parameters":[],"expected":0.0},{"id":"c04375","function":"ss_lcs_similarity","pair":273,"parameters":[],"expected":0.0},{"id":"c04376","function":"ss_jaro","pair":273,"parameters":[],"expected":0.0},{"id":"c04377","function":"ss_jaro_winkler","pair":273,"parameters":[],"expected":0.0},{"id":"c04378","function":"ss_needleman_wunsch","pair":273,"parameters":[],"expected":0.0},{"id":"c04379","function":"ss_smith_waterman","pair":273,"parameters":[],"expected":0.0},{"id":"c04380","function":"ss_affine_gap","pair":273,"parameters":[],"expected":0.0},{"id":"c04381","function":"ss_soundex","pair":273,"parameters":[],"expected":"A100"},{"id":"c04382","function":"ss_refined_soundex","pair":273,"parameters":[],"expected":"A1"},{"id":"c04383","function":"ss_double_metaphone","pair":273,"parameters":[],"expected":"AP"},{"id":"c04384","function":"ss_jaccard","pair":274,"parameters":[],"expected":1.0},{"id":"c04385","function":"ss_cosine","pair":274,"parameters":[],"expected":1.0},{"id":"c04386","function":"ss_sorensen_dice","pair":274,"parameters":[],"expected":1.0},{"id":"c04387","function":"ss_overlap_coefficient","pair":274,"parameters":[],"expected":1.0},{"id":"c04388","function":"ss_braun_blanquet","pair":274,"parameters":[],"expected":1.0},{"id":"c04389","function":"ss_monge_elkan","pair":274,"parameters":[],"expected":1.0},{"id":"c04390","function":"ss_levenshtein","pair":274,"parameters":[],"expected":1.0},{"id":"c04391","function":"ss_lcs_similarity","pair":274,"parameters":[],"expected":1.0},{"id":"c04392","function":"ss_jaro","pair":274,"parameters":[],"expected":1.0},{"id":"c04393","function":"ss_jaro_winkler","pair":274,"parameters":[],"expected":1.0},{"id":"c04394","function":"ss_needleman_wunsch","pair":274,"parameters":[],"expected":1.0},{"id":"c04395","function":"ss_smith_waterman","pair":274,"parameters":[],"expected":1.0},{"id":"c04396","function":"ss_affine_gap","pair":274,"parameters":[],"expected":1.0},{"id":"c04397","function":"ss_soundex","pair":274,"parameters":[],"expected":""},{"id":"c04398","function":"ss_refined_soundex","pair":274,"parameters":[],"expected":""},{"id":"c04399","function":"ss_double_metaphone","pair":274,"parameters":[],"expected":""},{"id":"c04400","function":"ss_jaccard","pair":275,"parameters":[],"expected":1.0},{"id":"c04401","function":"ss_cosine","pair":275,"parameters":[],"expected":1.0},{"id":"c04402","function":"ss_sorensen_dice","pair":275,"parameters":[],"expected":1.0},{"id":"c04403","function":"ss_overlap_coefficient","pair":275,"parameters":[],"expected":1.0},{"id":"c04404","function":"ss_braun_blanquet","pair":275,"parameters":[],"expected":1.0},{"id":"c04405","function":"ss_monge_elkan","pair":275,"parameters":[],"expected":1.0},{"id":"c04406","function":"ss_levenshtein","pair":275,"parameters":[],"expected":1.0},{"id":"c04407","function":"ss_lcs_similarity","pair":275,"parameters":[],"expected":1.0},{"id":"c04408","function":"ss_jaro","pair":275,"parameters":[],"expected":1.0},{"id":"c04409","function":"ss_jaro_winkler","pair":275,"parameters":[],"expected":1.0},{"id":"c04410","function":"ss_needleman_wunsch","pair":275,"parameters":[],"expected":1.0},{"id":"c04411","function":"ss_smith_waterman","pair":275,"parameters":[],"expected":1.0},{"id":"c04412","function":"ss_affine_gap","pair":275,"parameters":[],"expected":1.0},{"id":"c04413","function":"ss_soundex","pair":275,"parameters":[],"expected":"C000"},{"id":"c04414","function":"ss_refined_soundex","pair":275,"parameters":[],"expected":"C"},{"id":"c04415","function":"ss_double_metaphone","pair":275,"parameters":[],"expected":"K"},{"id":"c04416","function":"ss_jaccard","pair":276,"parameters":[],"expected":1.0},{"id":"c04417","function":"ss_cosine","pair":276,"parameters":[],"expected":1.0},{"id":"c04418","function":"ss_sorensen_dice","pair":276,"parameters":[],"expected":1.0},{"id":"c04419","function":"ss_overlap_coefficient","pair":276,"parameters":[],"expected":1.0},{"id":"c04420","function":"ss_braun_blanquet","pair":276,"parameters":[],"expected":1.0},{"id":"c04421","function":"ss_monge_elkan","pair":276,"parameters":[],"expected":1.0},{"id":"c04422","function":"ss_levenshtein","pair":276,"parameters":[],"expected":0.9090909090909091},{"id":"c04423","function":"ss_lcs_similarity","pair":276,"parameters":[],"expected":0.9090909090909091},{"id":"c04424","function":"ss_jaro","pair":276,"parameters":[],"expected":0.9696969696969697},{"id":"c04425","function":"ss_jaro_winkler","pair":276,"parameters":[],"expected":0.9818181818181818},{"id":"c04426","function":"ss_needleman_wunsch","pair":276,"parameters":[],"expected":0.9090909090909091},{"id":"c04427","function":"ss_smith_waterman","pair":276,"parameters":[],"expected":1.0},{"id":"c04428","function":"ss_affine_gap","pair":276,"parameters":[],"expected":0.7272727272727273},{"id":"c04429","function":"ss_soundex","pair":276,"parameters":[],"expected":"C000"},{"id":"c04430","function":"ss_refined_soundex","pair":276,"parameters":[],"expected":"C0"},{"id":"c04431","function":"ss_double_metaphone","pair":276,"parameters":[],"expected":"K"},{"id":"c04432","function":"ss_jaccard","pair":277,"parameters":[],"expected":1.0},{"id":"c04433","function":"ss_cosine","pair":277,"parameters":[],"expected":1.0},{"id":"c04434","function":"ss_sorensen_dice","pair":277,"parameters":[],"expected":1.0},{"id":"c04435","function":"ss_overlap_coefficient","pair":277,"parameters":[],"expected":1.0},{"id":"c04436","function":"ss_braun_blanquet","pair":277,"parameters":[],"expected":1.0},{"id":"c04437","function":"ss_monge_elkan","pair":277,"parameters":[],"expected":1.0},{"id":"c04438","function":"ss_levenshtein","pair":277,"parameters":[],"expected":0.8333333333333334},{"id":"c04439","function":"ss_lcs_similarity","pair":277,"parameters":[],"expected":0.8333333333333334},{"id":"c04440","function":"ss_jaro","pair":277,"parameters":[],"expected":0.9444444444444445},{"id":"c04441","function":"ss_jaro_winkler","pair":277,"parameters":[],"expected":0.9666666666666667},{"id":"c04442","function":"ss_needleman_wunsch","pair":277,"parameters":[],"expected":0.8333333333333334},{"id":"c04443","function":"ss_smith_waterman","pair":277,"parameters":[],"expected":1.0},{"id":"c04444","function":"ss_affine_gap","pair":277,"parameters":[],"expected":0.5},{"id":"c04445","function":"ss_soundex","pair":277,"parameters":[],"expected":"Y120"},{"id":"c04446","function":"ss_refined_soundex","pair":277,"parameters":[],"expected":"Y12"},{"id":"c04447","function":"ss_double_metaphone","pair":277,"parameters":[],"expected":"APS"},{"id":"c04448","function":"ss_jaccard","pair":278,"parameters":[],"expected":0.3333333333333333},{"id":"c04449","function":"ss_cosine","pair":278,"parameters":[],"expected":0.5},{"id":"c04450","function":"ss_sorensen_dice","pair":278,"parameters":[],"expected":0.5},{"id":"c04451","function":"ss_overlap_coefficient","pair":278,"parameters":[],"expected":0.5},{"id":"c04452","function":"ss_braun_blanquet","pair":278,"parameters":[],"expected":0.5},{"id":"c04453","function":"ss_monge_elkan","pair":278,"parameters":[],"expected":0.925},{"id":"c04454","function":"ss_levenshtein","pair":278,"parameters":[],"expected":0.8571428571428572},{"id":"c04455","function":"ss_lcs_similarity","pair":278,"parameters":[],"expected":0.8571428571428571},{"id":"c04456","function":"ss_jaro","pair":278,"parameters":[],"expected":0.9523809523809524},{"id":"c04457","function":"ss_jaro_winkler","pair":278,"parameters":[],"expected":0.9714285714285714},{"id":"c04458","function":"ss_needleman_wunsch","pair":278,"parameters":[],"expected":0.8571428571428571},{"id":"c04459","function":"ss_smith_waterman","pair":278,"parameters":[],"expected":1.0},{"id":"c04460","function":"ss_affine_gap","pair":278,"parameters":[],"expected":0.5714285714285714},{"id":"c04461","function":"ss_soundex","pair":278,"parameters":[],"expected":"A000"},{"id":"c04462","function":"ss_refined_soundex","pair":278,"parameters":[],"expected":"A"},{"id":"c04463","function":"ss_double_metaphone","pair":278,"parameters":[],"expected":"A"},{"id":"c04464","function":"ss_jaccard","pair":279,"parameters":[],"expected":0.0},{"id":"c04465","function":"ss_cosine","pair":279,"parameters":[],"expected":0.0},{"id":"c04466","function":"ss_sorensen_dice","pair":279,"parameters":[],"expected":0.0},{"id":"c04467","function":"ss_overlap_coefficient","pair":279,"parameters":[],"expected":0.0},{"id":"c04468","function":"ss_braun_blanquet","pair":279,"parameters":[],"expected":0.0},{"id":"c04469","function":"ss_monge_elkan","pair":279,"parameters":[],"expected":0.7083333333333334},{"id":"c04470","function":"ss_levenshtein","pair":279,"parameters":[],"expected":0.2857142857142857},{"id":"c04471","function":"ss_lcs_similarity","pair":279,"parameters":[],"expected":0.42857142857142855},{"id":"c04472","function":"ss_jaro","pair":279,"parameters":[],"expected":0.735930735930736},{"id":"c04473","function":"ss_jaro_winkler","pair":279,"parameters":[],"expected":0.735930735930736},{"id":"c04474","function":"ss_needleman_wunsch","pair":279,"parameters":[],"expected":0.32142857142857145},{"id":"c04475","function":"ss_smith_waterman","pair":279,"parameters":[],"expected":0.21428571428571427},{"id":"c04476","function":"ss_affine_gap","pair":279,"parameters":[],"expected":0.0},{"id":"c04477","function":"ss_soundex","pair":279,"parameters":[],"expected":"Z200"},{"id":"c04478","function":"ss_refined_soundex","pair":279,"parameters":[],"expected":"Z02"},{"id":"c04479","function":"ss_double_metaphone","pair":279,"parameters":[],"expected":"SS"},{"id":"c04480","function":"ss_jaccard","pair":280,"parameters":[],"expected":0.0},{"id":"c04481","function":"ss_cosine","pair":280,"parameters":[],"expected":0.0},{"id":"c04482","function":"ss_sorensen_dice","pair":280,"parameters":[],"expected":0.0},{"id":"c04483","function":"ss_overlap_coefficient","pair":280,"parameters":[],"expected":0.0},{"id":"c04484","function":"ss_braun_blanquet","pair":280,"parameters":[],"expected":0.0},{"id":"c04485","function":"ss_monge_elkan","pair":280,"parameters":[],"expected":0.0},{"id":"c04486","function":"ss_levenshtein","pair":280,"parameters":[],"expected":0.06666666666666665},{"id":"c04487","function":"ss_lcs_similarity","pair":280,"parameters":[],"expected":0.13333333333333333},{"id":"c04488","function":"ss_jaro","pair":280,"parameters":[],"expected":0.43333333333333335},{"id":"c04489","function":"ss_jaro_winkler","pair":280,"parameters":[],"expected":0.43333333333333335},{"id":"c04490","function":"ss_needleman_wunsch","pair":280,"parameters":[],"expected":0.1},{"id":"c04491","function":"ss_smith_waterman","pair":280,"parameters":[],"expected":0.125},{"id":"c04492","function":"ss_affine_gap","pair":280,"parameters":[],"expected":0.0},{"id":"c04493","function":"ss_soundex","pair":280,"parameters":[],"expected":"Z000"},{"id":"c04494","function":"ss_refined_soundex","pair":280,"parameters":[],"expected":"Z0"},{"id":"c04495","function":"ss_double_metaphone","pair":280,"parameters":[],"expected":"S"},{"id":"c04496","function":"ss_jaccard","pair":281,"parameters":[],"expected":0.3333333333333333},{"id":"c04497","function":"ss_cosine","pair":281,"parameters":[],"expected":0.5},{"id":"c04498","function":"ss_sorensen_dice","pair":281,"parameters":[],"expected":0.5},{"id":"c04499","function":"ss_overlap_coefficient","pair":281,"parameters":[],"expected":0.5},{"id":"c04500","function":"ss_braun_blanquet","pair":281,"parameters":[],"expected":0.5},{"id":"c04501","function":"ss_monge_elkan","pair":281,"parameters":[],"expected":0.925},{"id":"c04502","function":"ss_levenshtein","pair":281,"parameters":[],"expected":0.8},{"id":"c04503","function":"ss_lcs_similarity","pair":281,"parameters":[],"expected":0.8},{"id":"c04504","function":"ss_jaro","pair":281,"parameters":[],"expected":0.9333333333333332},{"id":"c04505","function":"ss_jaro_winkler","pair":281,"parameters":[],"expected":0.96},{"id":"c04506","function":"ss_needleman_wunsch","pair":281,"parameters":[],"expected":0.8},{"id":"c04507","function":"ss_smith_waterman","pair":281,"parameters":[],"expected":1.0},{"id":"c04508","function":"ss_affine_gap","pair":281,"parameters":[],"expected":0.4},{"id":"c04509","function":"ss_soundex","pair":281,"parameters":[],"expected":"I000"},{"id":"c04510","function":"ss_refined_soundex","pair":281,"parameters":[],"expected":"I"},{"id":"c04511","function":"ss_double_metaphone","pair":281,"parameters":[],"expected":"A"},{"id":"c04512","function":"ss_jaccard","pair":282,"parameters":[],"expected":1.0},{"id":"c04513","function":"ss_cosine","pair":282,"parameters":[],"expected":1.0},{"id":"c04514","function":"ss_sorensen_dice","pair":282,"parameters":[],"expected":1.0},{"id":"c04515","function":"ss_overlap_coefficient","pair":282,"parameters":[],"expected":1.0},{"id":"c04516","function":"ss_braun_blanquet","pair":282,"parameters":[],"expected":1.0},{"id":"c04517","function":"ss_monge_elkan","pair":282,"parameters":[],"expected":1.0},{"id":"c04518","function":"ss_levenshtein","pair":282,"parameters":[],"expected":1.0},{"id":"c04519","function":"ss_lcs_similarity","pair":282,"parameters":[],"expected":1.0},{"id":"c04520","function":"ss_jaro","pair":282,"parameters":[],"expected":1.0},{"id":"c04521","function":"ss_jaro_winkler","pair":282,"parameters":[],"expected":1.0},{"id":"c04522","function":"ss_needleman_wunsch","pair":282,"parameters":[],"expected":1.0},{"id":"c04523","function":"ss_smith_waterman","pair":282,"parameters":[],"expected":1.0},{"id":"c04524","function":"ss_affine_gap","pair":282,"parameters":[],"expected":1.0},{"id":"c04525","function":"ss_soundex","pair":282,"parameters":[],"expected":"C000"},{"id":"c04526","function":"ss_refined_soundex","pair":282,"parameters":[],"expected":"C0"},{"id":"c04527","function":"ss_double_metaphone","pair":282,"parameters":[],"expected":"S"},{"id":"c04528","function":"ss_jaccard","pair":283,"parameters":[],"expected":1.0},{"id":"c04529","function":"ss_cosine","pair":283,"parameters":[],"expected":1.0},{"id":"c04530","function":"ss_sorensen_dice","pair":283,"parameters":[],"expected":1.0},{"id":"c04531","function":"ss_overlap_coefficient","pair":283,"parameters":[],"expected":1.0},{"id":"c04532","function":"ss_braun_blanquet","pair":283,"parameters":[],"expected":1.0},{"id":"c04533","function":"ss_monge_elkan","pair":283,"parameters":[],"expected":1.0},{"id":"c04534","function":"ss_levenshtein","pair":283,"parameters":[],"expected":1.0},{"id":"c04535","function":"ss_lcs_similarity","pair":283,"parameters":[],"expected":1.0},{"id":"c04536","function":"ss_jaro","pair":283,"parameters":[],"expected":1.0},{"id":"c04537","function":"ss_jaro_winkler","pair":283,"parameters":[],"expected":1.0},{"id":"c04538","function":"ss_needleman_wunsch","pair":283,"parameters":[],"expected":1.0},{"id":"c04539","function":"ss_smith_waterman","pair":283,"parameters":[],"expected":1.0},{"id":"c04540","function":"ss_affine_gap","pair":283,"parameters":[],"expected":1.0},{"id":"c04541","function":"ss_soundex","pair":283,"parameters":[],"expected":"B000"},{"id":"c04542","function":"ss_refined_soundex","pair":283,"parameters":[],"expected":"B"},{"id":"c04543","function":"ss_double_metaphone","pair":283,"parameters":[],"expected":"P"},{"id":"c04544","function":"ss_jaccard","pair":284,"parameters":[],"expected":1.0},{"id":"c04545","function":"ss_cosine","pair":284,"parameters":[],"expected":1.0},{"id":"c04546","function":"ss_sorensen_dice","pair":284,"parameters":[],"expected":1.0},{"id":"c04547","function":"ss_overlap_coefficient","pair":284,"parameters":[],"expected":1.0},{"id":"c04548","function":"ss_braun_blanquet","pair":284,"parameters":[],"expected":1.0},{"id":"c04549","function":"ss_monge_elkan","pair":284,"parameters":[],"expected":1.0},{"id":"c04550","function":"ss_levenshtein","pair":284,"parameters":[],"expected":1.0},{"id":"c04551","function":"ss_lcs_similarity","pair":284,"parameters":[],"expected":1.0},{"id":"c04552","function":"ss_jaro","pair":284,"parameters":[],"expected":1.0},{"id":"c04553","function":"ss_jaro_winkler","pair":284,"parameters":[],"expected":1.0},{"id":"c04554","function":"ss_needleman_wunsch","pair":284,"parameters":[],"expected":1.0},{"id":"c04555","function":"ss_smith_waterman","pair":284,"parameters":[],"expected":1.0},{"id":"c04556","function":"ss_affine_gap","pair":284,"parameters":[],"expected":1.0},{"id":"c04557","function":"ss_soundex","pair":284,"parameters":[],"expected":"Y200"},{"id":"c04558","function":"ss_refined_soundex","pair":284,"parameters":[],"expected":"Y20"},{"id":"c04559","function":"ss_double_metaphone","pair":284,"parameters":[],"expected":"AS"},{"id":"c04560","function":"ss_jaccard","pair":285,"parameters":[],"expected":0.0},{"id":"c04561","function":"ss_cosine","pair":285,"parameters":[],"expected":0.0},{"id":"c04562","function":"ss_sorensen_dice","pair":285,"parameters":[],"expected":0.0},{"id":"c04563","function":"ss_overlap_coefficient","pair":285,"parameters":[],"expected":0.0},{"id":"c04564","function":"ss_braun_blanquet","pair":285,"parameters":[],"expected":0.0},{"id":"c04565","function":"ss_monge_elkan","pair":285,"parameters":[],"expected":0.0},{"id":"c04566","function":"ss_levenshtein","pair":285,"parameters":[],"expected":0.0},{"id":"c04567","function":"ss_lcs_similarity","pair":285,"parameters":[],"expected":0.5},{"id":"c04568","function":"ss_jaro","pair":285,"parameters":[],"expected":0.0},{"id":"c04569","function":"ss_jaro_winkler","pair":285,"parameters":[],"expected":0.0},{"id":"c04570","function":"ss_needleman_wunsch","pair":285,"parameters":[],"expected":0.25},{"id":"c04571","function":"ss_smith_waterman","pair":285,"parameters":[],"expected":0.5},{"id":"c04572","function":"ss_affine_gap","pair":285,"parameters":[],"expected":0.0},{"id":"c04573","function":"ss_soundex","pair":285,"parameters":[],"expected":""},{"id":"c04574","function":"ss_refined_soundex","pair":285,"parameters":[],"expected":""},{"id":"c04575","function":"ss_double_metaphone","pair":285,"parameters":[],"expected":""},{"id":"c04576","function":"ss_jaccard","pair":286,"parameters":[],"expected":0.0},{"id":"c04577","function":"ss_cosine","pair":286,"parameters":[],"expected":0.0},{"id":"c04578","function":"ss_sorensen_dice","pair":286,"parameters":[],"expected":0.0},{"id":"c04579","function":"ss_overlap_coefficient","pair":286,"parameters":[],"expected":0.0},{"id":"c04580","function":"ss_braun_blanquet","pair":286,"parameters":[],"expected":0.0},{"id":"c04581","function":"ss_monge_elkan","pair":286,"parameters":[],"expected":0.28095238095238095},{"id":"c04582","function":"ss_levenshtein","pair":286,"parameters":[],"expected":0.0625},{"id":"c04583","function":"ss_lcs_similarity","pair":286,"parameters":[],"expected":0.1875},{"id":"c04584","function":"ss_jaro","pair":286,"parameters":[],"expected":0.27499999999999997},{"id":"c04585","function":"ss_jaro_winkler","pair":286,"parameters":[],"expected":0.27499999999999997},{"id":"c04586","function":"ss_needleman_wunsch","pair":286,"parameters":[],"expected":0.09375},{"id":"c04587","function":"ss_smith_waterman","pair":286,"parameters":[],"expected":0.2},{"id":"c04588","function":"ss_affine_gap","pair":286,"parameters":[],"expected":0.0},{"id":"c04589","function":"ss_soundex","pair":286,"parameters":[],"expected":"X120"},{"id":"c04590","function":"ss_refined_soundex","pair":286,"parameters":[],"expected":"X120"},{"id":"c04591","function":"ss_double_metaphone","pair":286,"parameters":[],"expected":"SPS"},{"id":"c04592","function":"ss_jaccard","pair":287,"parameters":[],"expected":1.0},{"id":"c04593","function":"ss_cosine","pair":287,"parameters":[],"expected":1.0},{"id":"c04594","function":"ss_sorensen_dice","pair":287,"parameters":[],"expected":1.0},{"id":"c04595","function":"ss_overlap_coefficient","pair":287,"parameters":[],"expected":1.0},{"id":"c04596","function":"ss_braun_blanquet","pair":287,"parameters":[],"expected":1.0},{"id":"c04597","function":"ss_monge_elkan","pair":287,"parameters":[],"expected":1.0},{"id":"c04598","function":"ss_levenshtein","pair":287,"parameters":[],"expected":1.0},{"id":"c04599","function":"ss_lcs_similarity","pair":287,"parameters":[],"expected":1.0},{"id":"c04600","function":"ss_jaro","pair":287,"parameters":[],"expected":1.0},{"id":"c04601","function":"ss_jaro_winkler","pair":287,"parameters":[],"expected":1.0},{"id":"c04602","function":"ss_needleman_wunsch","pair":287,"parameters":[],"expected":1.0},{"id":"c04603","function":"ss_smith_waterman","pair":287,"parameters":[],"expected":1.0},{"id":"c04604","function":"ss_affine_gap","pair":287,"parameters":[],"expected":1.0},{"id":"c04605","function":"ss_soundex","pair":287,"parameters":[],"expected":""},{"id":"c04606","function":"ss_refined_soundex","pair":287,"parameters":[],"expected":""},{"id":"c04607","function":"ss_double_metaphone","pair":287,"parameters":[],"expected":""},{"id":"c04608","function":"ss_jaccard","pair":288,"parameters":[],"expected":0.0},{"id":"c04609","function":"ss_cosine","pair":288,"parameters":[],"expected":0.0},{"id":"c04610","function":"ss_sorensen_dice","pair":288,"parameters":[],"expected":0.0},{"id":"c04611","function":"ss_overlap_coefficient","pair":288,"parameters":[],"expected":0.0},{"id":"c04612","function":"ss_braun_blanquet","pair":288,"parameters":[],"expected":0.0},{"id":"c04613","function":"ss_monge_elkan","pair":288,"parameters":[],"expected":0.4640522875816993},{"id":"c04614","function":"ss_levenshtein","pair":288,"parameters":[],"expected":0.11764705882352944},{"id":"c04615","function":"ss_lcs_similarity","pair":288,"parameters":[],"expected":0.11764705882352941},{"id":"c04616","function":"ss_jaro","pair":288,"parameters":[],"expected":0.4640522875816993},{"id":"c04617","function":"ss_jaro_winkler","pair":288,"parameters":[],"expected":0.4640522875816993},{"id":"c04618","function":"ss_needleman_wunsch","pair":288,"parameters":[],"expected":0.11764705882352941},{"id":"c04619","function":"ss_smith_waterman","pair":288,"parameters":[],"expected":0.6666666666666666},{"id":"c04620","function":"ss_affine_gap","pair":288,"parameters":[],"expected":0.0},{"id":"c04621","function":"ss_soundex","pair":288,"parameters":[],"expected":"C000"},{"id":"c04622","function":"ss_refined_soundex","pair":288,"parameters":[],"expected":"C"},{"id":"c04623","function":"ss_double_metaphone","pair":288,"parameters":[],"expected":"KS"},{"id":"c04624","function":"ss_jaccard","pair":289,"parameters":[],"expected":1.0},{"id":"c04625","function":"ss_cosine","pair":289,"parameters":[],"expected":1.0},{"id":"c04626","function":"ss_sorensen_dice","pair":289,"parameters":[],"expected":1.0},{"id":"c04627","function":"ss_overlap_coefficient","pair":289,"parameters":[],"expected":1.0},{"id":"c04628","function":"ss_braun_blanquet","pair":289,"parameters":[],"expected":1.0},{"id":"c04629","function":"ss_monge_elkan","pair":289,"parameters":[],"expected":1.0},{"id":"c04630","function":"ss_levenshtein","pair":289,"parameters":[],"expected":1.0},{"id":"c04631","function":"ss_lcs_similarity","pair":289,"parameters":[],"expected":1.0},{"id":"c04632","function":"ss_jaro","pair":289,"parameters":[],"expected":1.0},{"id":"c04633","function":"ss_jaro_winkler","pair":289,"parameters":[],"expected":1.0},{"id":"c04634","function":"ss_needleman_wunsch","pair":289,"parameters":[],"expected":1.0},{"id":"c04635","function":"ss_smith_waterman","pair":289,"parameters":[],"expected":1.0},{"id":"c04636","function":"ss_affine_gap","pair":289,"parameters":[],"expected":1.0},{"id":"c04637","function":"ss_soundex","pair":289,"parameters":[],"expected":""},{"id":"c04638","function":"ss_refined_soundex","pair":289,"parameters":[],"expected":""},{"id":"c04639","function":"ss_double_metaphone","pair":289,"parameters":[],"expected":""},{"id":"c04640","function":"ss_jaccard","pair":290,"parameters":[],"expected":1.0},{"id":"c04641","function":"ss_cosine","pair":290,"parameters":[],"expected":1.0},{"id":"c04642","function":"ss_sorensen_dice","pair":290,"parameters":[],"expected":1.0},{"id":"c04643","function":"ss_overlap_coefficient","pair":290,"parameters":[],"expected":1.0},{"id":"c04644","function":"ss_braun_blanquet","pair":290,"parameters":[],"expected":1.0},{"id":"c04645","function":"ss_monge_elkan","pair":290,"parameters":[],"expected":1.0},{"id":"c04646","function":"ss_levenshtein","pair":290,"parameters":[],"expected":1.0},{"id":"c04647","function":"ss_lcs_similarity","pair":290,"parameters":[],"expected":1.0},{"id":"c04648","function":"ss_jaro","pair":290,"parameters":[],"expected":1.0},{"id":"c04649","function":"ss_jaro_winkler","pair":290,"parameters":[],"expected":1.0},{"id":"c04650","function":"ss_needleman_wunsch","pair":290,"parameters":[],"expected":1.0},{"id":"c04651","function":"ss_smith_waterman","pair":290,"parameters":[],"expected":1.0},{"id":"c04652","function":"ss_affine_gap","pair":290,"parameters":[],"expected":1.0},{"id":"c04653","function":"ss_soundex","pair":290,"parameters":[],"expected":"C000"},{"id":"c04654","function":"ss_refined_soundex","pair":290,"parameters":[],"expected":"C"},{"id":"c04655","function":"ss_double_metaphone","pair":290,"parameters":[],"expected":"KKSS"},{"id":"c04656","function":"ss_jaccard","pair":291,"parameters":[],"expected":0.0},{"id":"c04657","function":"ss_cosine","pair":291,"parameters":[],"expected":0.0},{"id":"c04658","function":"ss_sorensen_dice","pair":291,"parameters":[],"expected":0.0},{"id":"c04659","function":"ss_overlap_coefficient","pair":291,"parameters":[],"expected":0.0},{"id":"c04660","function":"ss_braun_blanquet","pair":291,"parameters":[],"expected":0.0},{"id":"c04661","function":"ss_monge_elkan","pair":291,"parameters":[],"expected":0.5970695970695971},{"id":"c04662","function":"ss_levenshtein","pair":291,"parameters":[],"expected":0.07692307692307687},{"id":"c04663","function":"ss_lcs_similarity","pair":291,"parameters":[],"expected":0.23076923076923078},{"id":"c04664","function":"ss_jaro","pair":291,"parameters":[],"expected":0.5970695970695971},{"id":"c04665","function":"ss_jaro_winkler","pair":291,"parameters":[],"expected":0.5970695970695971},{"id":"c04666","function":"ss_needleman_wunsch","pair":291,"parameters":[],"expected":0.15384615384615385},{"id":"c04667","function":"ss_smith_waterman","pair":291,"parameters":[],"expected":0.15384615384615385},{"id":"c04668","function":"ss_affine_gap","pair":291,"parameters":[],"expected":0.07692307692307687},{"id":"c04669","function":"ss_soundex","pair":291,"parameters":[],"expected":"Z321"},{"id":"c04670","function":"ss_refined_soundex","pair":291,"parameters":[],"expected":"Z30201"},{"id":"c04671","function":"ss_double_metaphone","pair":291,"parameters":[],"expected":"SKST"},{"id":"c04672","function":"ss_jaccard","pair":292,"parameters":[],"expected":1.0},{"id":"c04673","function":"ss_cosine","pair":292,"parameters":[],"expected":1.0},{"id":"c04674","function":"ss_sorensen_dice","pair":292,"parameters":[],"expected":1.0},{"id":"c04675","function":"ss_overlap_coefficient","pair":292,"parameters":[],"expected":1.0},{"id":"c04676","function":"ss_braun_blanquet","pair":292,"parameters":[],"expected":1.0},{"id":"c04677","function":"ss_monge_elkan","pair":292,"parameters":[],"expected":1.0},{"id":"c04678","function":"ss_levenshtein","pair":292,"parameters":[],"expected":1.0},{"id":"c04679","function":"ss_lcs_similarity","pair":292,"parameters":[],"expected":1.0},{"id":"c04680","function":"ss_jaro","pair":292,"parameters":[],"expected":1.0},{"id":"c04681","function":"ss_jaro_winkler","pair":292,"parameters":[],"expected":1.0},{"id":"c04682","function":"ss_needleman_wunsch","pair":292,"parameters":[],"expected":1.0},{"id":"c04683","function":"ss_smith_waterman","pair":292,"parameters":[],"expected":1.0},{"id":"c04684","function":"ss_affine_gap","pair":292,"parameters":[],"expected":1.0},{"id":"c04685","function":"ss_soundex","pair":292,"parameters":[],"expected":""},{"id":"c04686","function":"ss_refined_soundex","pair":292,"parameters":[],"expected":""},{"id":"c04687","function":"ss_double_metaphone","pair":292,"parameters":[],"expected":""},{"id":"c04688","function":"ss_jaccard","pair":293,"parameters":[],"expected":1.0},{"id":"c04689","function":"ss_cosine","pair":293,"parameters":[],"expected":1.0},{"id":"c04690","function":"ss_sorensen_dice","pair":293,"parameters":[],"expected":1.0},{"id":"c04691","function":"ss_overlap_coefficient","pair":293,"parameters":[],"expected":1.0},{"id":"c04692","function":"ss_braun_blanquet","pair":293,"parameters":[],"expected":1.0},{"id":"c04693","function":"ss_monge_elkan","pair":293,"parameters":[],"expected":1.0},{"id":"c04694","function":"ss_levenshtein","pair":293,"parameters":[],"expected":1.0},{"id":"c04695","function":"ss_lcs_similarity","pair":293,"parameters":[],"expected":1.0},{"id":"c04696","function":"ss_jaro","pair":293,"parameters":[],"expected":1.0},{"id":"c04697","function":"ss_jaro_winkler","pair":293,"parameters":[],"expected":1.0},{"id":"c04698","function":"ss_needleman_wunsch","pair":293,"parameters":[],"expected":1.0},{"id":"c04699","function":"ss_smith_waterman","pair":293,"parameters":[],"expected":1.0},{"id":"c04700","function":"ss_affine_gap","pair":293,"parameters":[],"expected":1.0},{"id":"c04701","function":"ss_soundex","pair":293,"parameters":[],"expected":"A000"},{"id":"c04702","function":"ss_refined_soundex","pair":293,"parameters":[],"expected":"A"},{"id":"c04703","function":"ss_double_metaphone","pair":293,"parameters":[],"expected":"A"},{"id":"c04704","function":"ss_jaccard","pair":294,"parameters":[],"expected":0.0},{"id":"c04705","function":"ss_cosine","pair":294,"parameters":[],"expected":0.0},{"id":"c04706","function":"ss_sorensen_dice","pair":294,"parameters":[],"expected":0.0},{"id":"c04707","function":"ss_overlap_coefficient","pair":294,"parameters":[],"expected":0.0},{"id":"c04708","function":"ss_braun_blanquet","pair":294,"parameters":[],"expected":0.0},{"id":"c04709","function":"ss_monge_elkan","pair":294,"parameters":[],"expected":0.0},{"id":"c04710","function":"ss_levenshtein","pair":294,"parameters":[],"expected":0.0},{"id":"c04711","function":"ss_lcs_similarity","pair":294,"parameters":[],"expected":0.0},{"id":"c04712","function":"ss_jaro","pair":294,"parameters":[],"expected":0.0},{"id":"c04713","function":"ss_jaro_winkler","pair":294,"parameters":[],"expected":0.0},{"id":"c04714","function":"ss_needleman_wunsch","pair":294,"parameters":[],"expected":0.0},{"id":"c04715","function":"ss_smith_waterman","pair":294,"parameters":[],"expected":0.0},{"id":"c04716","function":"ss_affine_gap","pair":294,"parameters":[],"expected":0.0},{"id":"c04717","function":"ss_soundex","pair":294,"parameters":[],"expected":""},{"id":"c04718","function":"ss_refined_soundex","pair":294,"parameters":[],"expected":""},{"id":"c04719","function":"ss_double_metaphone","pair":294,"parameters":[],"expected":""},{"id":"c04720","function":"ss_jaccard","pair":295,"parameters":[],"expected":1.0},{"id":"c04721","function":"ss_cosine","pair":295,"parameters":[],"expected":1.0},{"id":"c04722","function":"ss_sorensen_dice","pair":295,"parameters":[],"expected":1.0},{"id":"c04723","function":"ss_overlap_coefficient","pair":295,"parameters":[],"expected":1.0},{"id":"c04724","function":"ss_braun_blanquet","pair":295,"parameters":[],"expected":1.0},{"id":"c04725","function":"ss_monge_elkan","pair":295,"parameters":[],"expected":1.0},{"id":"c04726","function":"ss_levenshtein","pair":295,"parameters":[],"expected":0.33333333333333337},{"id":"c04727","function":"ss_lcs_similarity","pair":295,"parameters":[],"expected":0.3333333333333333},{"id":"c04728","function":"ss_jaro","pair":295,"parameters":[],"expected":0.5555555555555555},{"id":"c04729","function":"ss_jaro_winkler","pair":295,"parameters":[],"expected":0.5555555555555555},{"id":"c04730","function":"ss_needleman_wunsch","pair":295,"parameters":[],"expected":0.3333333333333333},{"id":"c04731","function":"ss_smith_waterman","pair":295,"parameters":[],"expected":0.3333333333333333},{"id":"c04732","function":"ss_affine_gap","pair":295,"parameters":[],"expected":0.33333333333333337},{"id":"c04733","function":"ss_soundex","pair":295,"parameters":[],"expected":"X300"},{"id":"c04734","function":"ss_refined_soundex","pair":295,"parameters":[],"expected":"X3"},{"id":"c04735","function":"ss_double_metaphone","pair":295,"parameters":[],"expected":"ST"},{"id":"c04736","function":"ss_jaccard","pair":296,"parameters":[],"expected":1.0},{"id":"c04737","function":"ss_cosine","pair":296,"parameters":[],"expected":1.0},{"id":"c04738","function":"ss_sorensen_dice","pair":296,"parameters":[],"expected":1.0},{"id":"c04739","function":"ss_overlap_coefficient","pair":296,"parameters":[],"expected":1.0},{"id":"c04740","function":"ss_braun_blanquet","pair":296,"parameters":[],"expected":1.0},{"id":"c04741","function":"ss_monge_elkan","pair":296,"parameters":[],"expected":1.0},{"id":"c04742","function":"ss_levenshtein","pair":296,"parameters":[],"expected":1.0},{"id":"c04743","function":"ss_lcs_similarity","pair":296,"parameters":[],"expected":1.0},{"id":"c04744","function":"ss_jaro","pair":296,"parameters":[],"expected":1.0},{"id":"c04745","function":"ss_jaro_winkler","pair":296,"parameters":[],"expected":1.0},{"id":"c04746","function":"ss_needleman_wunsch","pair":296,"parameters":[],"expected":1.0},{"id":"c04747","function":"ss_smith_waterman","pair":296,"parameters":[],"expected":1.0},{"id":"c04748","function":"ss_affine_gap","pair":296,"parameters":[],"expected":1.0},{"id":"c04749","function":"ss_soundex","pair":296,"parameters":[],"expected":"A000"},{"id":"c04750","function":"ss_refined_soundex","pair":296,"parameters":[],"expected":"A"},{"id":"c04751","function":"ss_double_metaphone","pair":296,"parameters":[],"expected":"A"},{"id":"c04752","function":"ss_jaccard","pair":297,"parameters":[],"expected":0.14285714285714285},{"id":"c04753","function":"ss_cosine","pair":297,"parameters":[],"expected":0.25},{"id":"c04754","function":"ss_sorensen_dice","pair":297,"parameters":[],"expected":0.25},{"id":"c04755","function":"ss_overlap_coefficient","pair":297,"parameters":[],"expected":0.25},{"id":"c04756","function":"ss_braun_blanquet","pair":297,"parameters":[],"expected":0.25},{"id":"c04757","function":"ss_monge_elkan","pair":297,"parameters":[],"expected":0.3611111111111111},{"id":"c04758","function":"ss_levenshtein","pair":297,"parameters":[],"expected":0.05882352941176472},{"id":"c04759","function":"ss_lcs_similarity","pair":297,"parameters":[],"expected":0.11764705882352941},{"id":"c04760","function":"ss_jaro","pair":297,"parameters":[],"expected":0.46498599439775906},{"id":"c04761","function":"ss_jaro_winkler","pair":297,"parameters":[],"expected":0.46498599439775906},{"id":"c04762","function":"ss_needleman_wunsch","pair":297,"parameters":[],"expected":0.058823529411764705},{"id":"c04763","function":"ss_smith_waterman","pair":297,"parameters":[],"expected":0.11764705882352941},{"id":"c04764","function":"ss_affine_gap","pair":297,"parameters":[],"expected":0.05882352941176472},{"id":"c04765","function":"ss_soundex","pair":297,"parameters":[],"expected":"S120"},{"id":"c04766","function":"ss_refined_soundex","pair":297,"parameters":[],"expected":"S12"},{"id":"c04767","function":"ss_double_metaphone","pair":297,"parameters":[],"expected":"SKSP"},{"id":"c04768","function":"ss_jaccard","pair":298,"parameters":[],"expected":0.0},{"id":"c04769","function":"ss_cosine","pair":298,"parameters":[],"expected":0.0},{"id":"c04770","function":"ss_sorensen_dice","pair":298,"parameters":[],"expected":0.0},{"id":"c04771","function":"ss_overlap_coefficient","pair":298,"parameters":[],"expected":0.0},{"id":"c04772","function":"ss_braun_blanquet","pair":298,"parameters":[],"expected":0.0},{"id":"c04773","function":"ss_monge_elkan","pair":298,"parameters":[],"expected":0.586111111111111},{"id":"c04774","function":"ss_levenshtein","pair":298,"parameters":[],"expected":0.06666666666666665},{"id":"c04775","function":"ss_lcs_similarity","pair":298,"parameters":[],"expected":0.26666666666666666},{"id":"c04776","function":"ss_jaro","pair":298,"parameters":[],"expected":0.5015873015873016},{"id":"c04777","function":"ss_jaro_winkler","pair":298,"parameters":[],"expected":0.5015873015873016},{"id":"c04778","function":"ss_needleman_wunsch","pair":298,"parameters":[],"expected":0.16666666666666666},{"id":"c04779","function":"ss_smith_waterman","pair":298,"parameters":[],"expected":0.2},{"id":"c04780","function":"ss_affine_gap","pair":298,"parameters":[],"expected":0.06666666666666665},{"id":"c04781","function":"ss_soundex","pair":298,"parameters":[],"expected":"Y210"},{"id":"c04782","function":"ss_refined_soundex","pair":298,"parameters":[],"expected":"Y21"},{"id":"c04783","function":"ss_double_metaphone","pair":298,"parameters":[],"expected":"AKKP"},{"id":"c04784","function":"ss_jaccard","pair":299,"parameters":[],"expected":0.0},{"id":"c04785","function":"ss_cosine","pair":299,"parameters":[],"expected":0.0},{"id":"c04786","function":"ss_sorensen_dice","pair":299,"parameters":[],"expected":0.0},{"id":"c04787","function":"ss_overlap_coefficient","pair":299,"parameters":[],"expected":0.0},{"id":"c04788","function":"ss_braun_blanquet","pair":299,"parameters":[],"expected":0.0},{"id":"c04789","function":"ss_monge_elkan","pair":299,"parameters":[],"expected":0.4621212121212121},{"id":"c04790","function":"ss_levenshtein","pair":299,"parameters":[],"expected":0.2142857142857143},{"id":"c04791","function":"ss_lcs_similarity","pair":299,"parameters":[],"expected":0.21428571428571427},{"id":"c04792","function":"ss_jaro","pair":299,"parameters":[],"expected":0.7380952380952381},{"id":"c04793","function":"ss_jaro_winkler","pair":299,"parameters":[],"expected":0.7380952380952381},{"id":"c04794","function":"ss_needleman_wunsch","pair":299,"parameters":[],"expected":0.21428571428571427},{"id":"c04795","function":"ss_smith_waterman","pair":299,"parameters":[],"expected":0.6666666666666666},{"id":"c04796","function":"ss_affine_gap","pair":299,"parameters":[],"expected":0.0},{"id":"c04797","function":"ss_soundex","pair":299,"parameters":[],"expected":"C100"},{"id":"c04798","function":"ss_refined_soundex","pair":299,"parameters":[],"expected":"C1"},{"id":"c04799","function":"ss_double_metaphone","pair":299,"parameters":[],"expected":"KP"},{"id":"c04800","function":"ss_jaccard","pair":0,"parameters":[1],"expected":1.0},{"id":"c04801","function":"ss_jaccard","pair":0,"parameters":[2],"expected":1.0},{"id":"c04802","function":"ss_jaccard","pair":0,"parameters":[3],"expected":1.0},{"id":"c04803","function":"ss_cosine","pair":0,"parameters":[1],"expected":1.0},{"id":"c04804","function":"ss_cosine","pair":0,"parameters":[2],"expected":1.0},{"id":"c04805","function":"ss_cosine","pair":0,"parameters":[3],"expected":1.0},{"id":"c04806","function":"ss_sorensen_dice","pair":0,"parameters":[1],"expected":1.0},{"id":"c04807","function":"ss_sorensen_dice","pair":0,"parameters":[2],"expected":1.0},{"id":"c04808","function":"ss_sorensen_dice","pair":0,"parameters":[3],"expected":1.0},{"id":"c04809","function":"ss_overlap_coefficient","pair":0,"parameters":[1],"expected":1.0},{"id":"c04810","function":"ss_overlap_coefficient","pair":0,"parameters":[2],"expected":1.0},{"id":"c04811","function":"ss_overlap_coefficient","pair":0,"parameters":[3],"expected":1.0},{"id":"c04812","function":"ss_braun_blanquet","pair":0,"parameters":[1],"expected":1.0},{"id":"c04813","function":"ss_braun_blanquet","pair":0,"parameters":[2],"expected":1.0},{"id":"c04814","function":"ss_braun_blanquet","pair":0,"parameters":[3],"expected":1.0},{"id":"c04815","function":"ss_jaro_winkler","pair":0,"parameters":[0.2,6],"expected":1.0},{"id":"c04816","function":"ss_needleman_wunsch","pair":0,"parameters":[2,-2,-1],"expected":1.0},{"id":"c04817","function":"ss_smith_waterman","pair":0,"parameters":[3,-1,-2],"expected":1.0},{"id":"c04818","function":"ss_affine_gap","pair":0,"parameters":[-2,-3,-2],"expected":1.0},{"id":"c04819","function":"ss_monge_elkan","pair":0,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c04820","function":"ss_monge_elkan","pair":0,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c04821","function":"ss_monge_elkan","pair":0,"parameters":["jaro_winkler",2],"expected":1.0},{"id":"c04822","function":"ss_monge_elkan","pair":0,"parameters":["jaro_winkler",3],"expected":1.0},{"id":"c04823","function":"ss_monge_elkan","pair":0,"parameters":["jaro",0],"expected":1.0},{"id":"c04824","function":"ss_monge_elkan","pair":0,"parameters":["jaro",1],"expected":1.0},{"id":"c04825","function":"ss_monge_elkan","pair":0,"parameters":["jaro",2],"expected":1.0},{"id":"c04826","function":"ss_monge_elkan","pair":0,"parameters":["jaro",3],"expected":1.0},{"id":"c04827","function":"ss_monge_elkan","pair":0,"parameters":["levenshtein",0],"expected":1.0},{"id":"c04828","function":"ss_monge_elkan","pair":0,"parameters":["levenshtein",1],"expected":1.0},{"id":"c04829","function":"ss_monge_elkan","pair":0,"parameters":["levenshtein",2],"expected":1.0},{"id":"c04830","function":"ss_monge_elkan","pair":0,"parameters":["levenshtein",3],"expected":1.0},{"id":"c04831","function":"ss_monge_elkan","pair":0,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c04832","function":"ss_monge_elkan","pair":0,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c04833","function":"ss_monge_elkan","pair":0,"parameters":["needleman_wunsch",2],"expected":1.0},{"id":"c04834","function":"ss_monge_elkan","pair":0,"parameters":["needleman_wunsch",3],"expected":1.0},{"id":"c04835","function":"ss_monge_elkan","pair":0,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c04836","function":"ss_monge_elkan","pair":0,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c04837","function":"ss_monge_elkan","pair":0,"parameters":["smith_waterman",2],"expected":1.0},{"id":"c04838","function":"ss_monge_elkan","pair":0,"parameters":["smith_waterman",3],"expected":1.0},{"id":"c04839","function":"ss_jaccard","pair":1,"parameters":[1],"expected":0.0},{"id":"c04840","function":"ss_jaccard","pair":1,"parameters":[2],"expected":0.0},{"id":"c04841","function":"ss_jaccard","pair":1,"parameters":[3],"expected":0.0},{"id":"c04842","function":"ss_cosine","pair":1,"parameters":[1],"expected":0.0},{"id":"c04843","function":"ss_cosine","pair":1,"parameters":[2],"expected":0.0},{"id":"c04844","function":"ss_cosine","pair":1,"parameters":[3],"expected":0.0},{"id":"c04845","function":"ss_sorensen_dice","pair":1,"parameters":[1],"expected":0.0},{"id":"c04846","function":"ss_sorensen_dice","pair":1,"parameters":[2],"expected":0.0},{"id":"c04847","function":"ss_sorensen_dice","pair":1,"parameters":[3],"expected":0.0},{"id":"c04848","function":"ss_overlap_coefficient","pair":1,"parameters":[1],"expected":0.0},{"id":"c04849","function":"ss_overlap_coefficient","pair":1,"parameters":[2],"expected":0.0},{"id":"c04850","function":"ss_overlap_coefficient","pair":1,"parameters":[3],"expected":0.0},{"id":"c04851","function":"ss_braun_blanquet","pair":1,"parameters":[1],"expected":0.0},{"id":"c04852","function":"ss_braun_blanquet","pair":1,"parameters":[2],"expected":0.0},{"id":"c04853","function":"ss_braun_blanquet","pair":1,"parameters":[3],"expected":0.0},{"id":"c04854","function":"ss_jaro_winkler","pair":1,"parameters":[0.2,6],"expected":0.0},{"id":"c04855","function":"ss_needleman_wunsch","pair":1,"parameters":[2,-2,-1],"expected":0.0},{"id":"c04856","function":"ss_smith_waterman","pair":1,"parameters":[3,-1,-2],"expected":0.0},{"id":"c04857","function":"ss_affine_gap","pair":1,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c04858","function":"ss_monge_elkan","pair":1,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c04859","function":"ss_monge_elkan","pair":1,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c04860","function":"ss_monge_elkan","pair":1,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c04861","function":"ss_monge_elkan","pair":1,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c04862","function":"ss_monge_elkan","pair":1,"parameters":["jaro",0],"expected":0.0},{"id":"c04863","function":"ss_monge_elkan","pair":1,"parameters":["jaro",1],"expected":0.0},{"id":"c04864","function":"ss_monge_elkan","pair":1,"parameters":["jaro",2],"expected":0.0},{"id":"c04865","function":"ss_monge_elkan","pair":1,"parameters":["jaro",3],"expected":0.0},{"id":"c04866","function":"ss_monge_elkan","pair":1,"parameters":["levenshtein",0],"expected":0.0},{"id":"c04867","function":"ss_monge_elkan","pair":1,"parameters":["levenshtein",1],"expected":0.0},{"id":"c04868","function":"ss_monge_elkan","pair":1,"parameters":["levenshtein",2],"expected":0.0},{"id":"c04869","function":"ss_monge_elkan","pair":1,"parameters":["levenshtein",3],"expected":0.0},{"id":"c04870","function":"ss_monge_elkan","pair":1,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c04871","function":"ss_monge_elkan","pair":1,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c04872","function":"ss_monge_elkan","pair":1,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c04873","function":"ss_monge_elkan","pair":1,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c04874","function":"ss_monge_elkan","pair":1,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c04875","function":"ss_monge_elkan","pair":1,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c04876","function":"ss_monge_elkan","pair":1,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c04877","function":"ss_monge_elkan","pair":1,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c04878","function":"ss_jaccard","pair":2,"parameters":[1],"expected":0.0},{"id":"c04879","function":"ss_jaccard","pair":2,"parameters":[2],"expected":0.0},{"id":"c04880","function":"ss_jaccard","pair":2,"parameters":[3],"expected":0.0},{"id":"c04881","function":"ss_cosine","pair":2,"parameters":[1],"expected":0.0},{"id":"c04882","function":"ss_cosine","pair":2,"parameters":[2],"expected":0.0},{"id":"c04883","function":"ss_cosine","pair":2,"parameters":[3],"expected":0.0},{"id":"c04884","function":"ss_sorensen_dice","pair":2,"parameters":[1],"expected":0.0},{"id":"c04885","function":"ss_sorensen_dice","pair":2,"parameters":[2],"expected":0.0},{"id":"c04886","function":"ss_sorensen_dice","pair":2,"parameters":[3],"expected":0.0},{"id":"c04887","function":"ss_overlap_coefficient","pair":2,"parameters":[1],"expected":0.0},{"id":"c04888","function":"ss_overlap_coefficient","pair":2,"parameters":[2],"expected":0.0},{"id":"c04889","function":"ss_overlap_coefficient","pair":2,"parameters":[3],"expected":0.0},{"id":"c04890","function":"ss_braun_blanquet","pair":2,"parameters":[1],"expected":0.0},{"id":"c04891","function":"ss_braun_blanquet","pair":2,"parameters":[2],"expected":0.0},{"id":"c04892","function":"ss_braun_blanquet","pair":2,"parameters":[3],"expected":0.0},{"id":"c04893","function":"ss_jaro_winkler","pair":2,"parameters":[0.2,6],"expected":0.0},{"id":"c04894","function":"ss_needleman_wunsch","pair":2,"parameters":[2,-2,-1],"expected":0.0},{"id":"c04895","function":"ss_smith_waterman","pair":2,"parameters":[3,-1,-2],"expected":0.0},{"id":"c04896","function":"ss_affine_gap","pair":2,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c04897","function":"ss_monge_elkan","pair":2,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c04898","function":"ss_monge_elkan","pair":2,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c04899","function":"ss_monge_elkan","pair":2,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c04900","function":"ss_monge_elkan","pair":2,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c04901","function":"ss_monge_elkan","pair":2,"parameters":["jaro",0],"expected":0.0},{"id":"c04902","function":"ss_monge_elkan","pair":2,"parameters":["jaro",1],"expected":0.0},{"id":"c04903","function":"ss_monge_elkan","pair":2,"parameters":["jaro",2],"expected":0.0},{"id":"c04904","function":"ss_monge_elkan","pair":2,"parameters":["jaro",3],"expected":0.0},{"id":"c04905","function":"ss_monge_elkan","pair":2,"parameters":["levenshtein",0],"expected":0.0},{"id":"c04906","function":"ss_monge_elkan","pair":2,"parameters":["levenshtein",1],"expected":0.0},{"id":"c04907","function":"ss_monge_elkan","pair":2,"parameters":["levenshtein",2],"expected":0.0},{"id":"c04908","function":"ss_monge_elkan","pair":2,"parameters":["levenshtein",3],"expected":0.0},{"id":"c04909","function":"ss_monge_elkan","pair":2,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c04910","function":"ss_monge_elkan","pair":2,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c04911","function":"ss_monge_elkan","pair":2,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c04912","function":"ss_monge_elkan","pair":2,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c04913","function":"ss_monge_elkan","pair":2,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c04914","function":"ss_monge_elkan","pair":2,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c04915","function":"ss_monge_elkan","pair":2,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c04916","function":"ss_monge_elkan","pair":2,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c04917","function":"ss_jaccard","pair":3,"parameters":[1],"expected":0.0},{"id":"c04918","function":"ss_jaccard","pair":3,"parameters":[2],"expected":0.0},{"id":"c04919","function":"ss_jaccard","pair":3,"parameters":[3],"expected":0.0},{"id":"c04920","function":"ss_cosine","pair":3,"parameters":[1],"expected":0.0},{"id":"c04921","function":"ss_cosine","pair":3,"parameters":[2],"expected":0.0},{"id":"c04922","function":"ss_cosine","pair":3,"parameters":[3],"expected":0.0},{"id":"c04923","function":"ss_sorensen_dice","pair":3,"parameters":[1],"expected":0.0},{"id":"c04924","function":"ss_sorensen_dice","pair":3,"parameters":[2],"expected":0.0},{"id":"c04925","function":"ss_sorensen_dice","pair":3,"parameters":[3],"expected":0.0},{"id":"c04926","function":"ss_overlap_coefficient","pair":3,"parameters":[1],"expected":0.0},{"id":"c04927","function":"ss_overlap_coefficient","pair":3,"parameters":[2],"expected":0.0},{"id":"c04928","function":"ss_overlap_coefficient","pair":3,"parameters":[3],"expected":0.0},{"id":"c04929","function":"ss_braun_blanquet","pair":3,"parameters":[1],"expected":0.0},{"id":"c04930","function":"ss_braun_blanquet","pair":3,"parameters":[2],"expected":0.0},{"id":"c04931","function":"ss_braun_blanquet","pair":3,"parameters":[3],"expected":0.0},{"id":"c04932","function":"ss_jaro_winkler","pair":3,"parameters":[0.2,6],"expected":0.0},{"id":"c04933","function":"ss_needleman_wunsch","pair":3,"parameters":[2,-2,-1],"expected":0.0},{"id":"c04934","function":"ss_smith_waterman","pair":3,"parameters":[3,-1,-2],"expected":0.0},{"id":"c04935","function":"ss_affine_gap","pair":3,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c04936","function":"ss_monge_elkan","pair":3,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c04937","function":"ss_monge_elkan","pair":3,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c04938","function":"ss_monge_elkan","pair":3,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c04939","function":"ss_monge_elkan","pair":3,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c04940","function":"ss_monge_elkan","pair":3,"parameters":["jaro",0],"expected":1.0},{"id":"c04941","function":"ss_monge_elkan","pair":3,"parameters":["jaro",1],"expected":0.0},{"id":"c04942","function":"ss_monge_elkan","pair":3,"parameters":["jaro",2],"expected":0.0},{"id":"c04943","function":"ss_monge_elkan","pair":3,"parameters":["jaro",3],"expected":0.0},{"id":"c04944","function":"ss_monge_elkan","pair":3,"parameters":["levenshtein",0],"expected":1.0},{"id":"c04945","function":"ss_monge_elkan","pair":3,"parameters":["levenshtein",1],"expected":0.0},{"id":"c04946","function":"ss_monge_elkan","pair":3,"parameters":["levenshtein",2],"expected":0.0},{"id":"c04947","function":"ss_monge_elkan","pair":3,"parameters":["levenshtein",3],"expected":0.0},{"id":"c04948","function":"ss_monge_elkan","pair":3,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c04949","function":"ss_monge_elkan","pair":3,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c04950","function":"ss_monge_elkan","pair":3,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c04951","function":"ss_monge_elkan","pair":3,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c04952","function":"ss_monge_elkan","pair":3,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c04953","function":"ss_monge_elkan","pair":3,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c04954","function":"ss_monge_elkan","pair":3,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c04955","function":"ss_monge_elkan","pair":3,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c04956","function":"ss_jaccard","pair":4,"parameters":[1],"expected":0.0},{"id":"c04957","function":"ss_jaccard","pair":4,"parameters":[2],"expected":0.0},{"id":"c04958","function":"ss_jaccard","pair":4,"parameters":[3],"expected":0.0},{"id":"c04959","function":"ss_cosine","pair":4,"parameters":[1],"expected":0.0},{"id":"c04960","function":"ss_cosine","pair":4,"parameters":[2],"expected":0.0},{"id":"c04961","function":"ss_cosine","pair":4,"parameters":[3],"expected":0.0},{"id":"c04962","function":"ss_sorensen_dice","pair":4,"parameters":[1],"expected":0.0},{"id":"c04963","function":"ss_sorensen_dice","pair":4,"parameters":[2],"expected":0.0},{"id":"c04964","function":"ss_sorensen_dice","pair":4,"parameters":[3],"expected":0.0},{"id":"c04965","function":"ss_overlap_coefficient","pair":4,"parameters":[1],"expected":0.0},{"id":"c04966","function":"ss_overlap_coefficient","pair":4,"parameters":[2],"expected":0.0},{"id":"c04967","function":"ss_overlap_coefficient","pair":4,"parameters":[3],"expected":0.0},{"id":"c04968","function":"ss_braun_blanquet","pair":4,"parameters":[1],"expected":0.0},{"id":"c04969","function":"ss_braun_blanquet","pair":4,"parameters":[2],"expected":0.0},{"id":"c04970","function":"ss_braun_blanquet","pair":4,"parameters":[3],"expected":0.0},{"id":"c04971","function":"ss_jaro_winkler","pair":4,"parameters":[0.2,6],"expected":0.0},{"id":"c04972","function":"ss_needleman_wunsch","pair":4,"parameters":[2,-2,-1],"expected":0.0},{"id":"c04973","function":"ss_smith_waterman","pair":4,"parameters":[3,-1,-2],"expected":0.0},{"id":"c04974","function":"ss_affine_gap","pair":4,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c04975","function":"ss_monge_elkan","pair":4,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c04976","function":"ss_monge_elkan","pair":4,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c04977","function":"ss_monge_elkan","pair":4,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c04978","function":"ss_monge_elkan","pair":4,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c04979","function":"ss_monge_elkan","pair":4,"parameters":["jaro",0],"expected":0.0},{"id":"c04980","function":"ss_monge_elkan","pair":4,"parameters":["jaro",1],"expected":0.0},{"id":"c04981","function":"ss_monge_elkan","pair":4,"parameters":["jaro",2],"expected":0.0},{"id":"c04982","function":"ss_monge_elkan","pair":4,"parameters":["jaro",3],"expected":0.0},{"id":"c04983","function":"ss_monge_elkan","pair":4,"parameters":["levenshtein",0],"expected":0.0},{"id":"c04984","function":"ss_monge_elkan","pair":4,"parameters":["levenshtein",1],"expected":0.0},{"id":"c04985","function":"ss_monge_elkan","pair":4,"parameters":["levenshtein",2],"expected":0.0},{"id":"c04986","function":"ss_monge_elkan","pair":4,"parameters":["levenshtein",3],"expected":0.0},{"id":"c04987","function":"ss_monge_elkan","pair":4,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c04988","function":"ss_monge_elkan","pair":4,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c04989","function":"ss_monge_elkan","pair":4,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c04990","function":"ss_monge_elkan","pair":4,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c04991","function":"ss_monge_elkan","pair":4,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c04992","function":"ss_monge_elkan","pair":4,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c04993","function":"ss_monge_elkan","pair":4,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c04994","function":"ss_monge_elkan","pair":4,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c04995","function":"ss_jaccard","pair":5,"parameters":[1],"expected":0.25},{"id":"c04996","function":"ss_jaccard","pair":5,"parameters":[2],"expected":0.0},{"id":"c04997","function":"ss_jaccard","pair":5,"parameters":[3],"expected":0.0},{"id":"c04998","function":"ss_cosine","pair":5,"parameters":[1],"expected":0.4082482904638631},{"id":"c04999","function":"ss_cosine","pair":5,"parameters":[2],"expected":0.0},{"id":"c05000","function":"ss_cosine","pair":5,"parameters":[3],"expected":0.0},{"id":"c05001","function":"ss_sorensen_dice","pair":5,"parameters":[1],"expected":0.4},{"id":"c05002","function":"ss_sorensen_dice","pair":5,"parameters":[2],"expected":0.0},{"id":"c05003","function":"ss_sorensen_dice","pair":5,"parameters":[3],"expected":0.0},{"id":"c05004","function":"ss_overlap_coefficient","pair":5,"parameters":[1],"expected":0.5},{"id":"c05005","function":"ss_overlap_coefficient","pair":5,"parameters":[2],"expected":0.0},{"id":"c05006","function":"ss_overlap_coefficient","pair":5,"parameters":[3],"expected":0.0},{"id":"c05007","function":"ss_braun_blanquet","pair":5,"parameters":[1],"expected":0.3333333333333333},{"id":"c05008","function":"ss_braun_blanquet","pair":5,"parameters":[2],"expected":0.0},{"id":"c05009","function":"ss_braun_blanquet","pair":5,"parameters":[3],"expected":0.0},{"id":"c05010","function":"ss_jaro_winkler","pair":5,"parameters":[0.2,6],"expected":0.0},{"id":"c05011","function":"ss_needleman_wunsch","pair":5,"parameters":[2,-2,-1],"expected":0.3333333333333333},{"id":"c05012","function":"ss_smith_waterman","pair":5,"parameters":[3,-1,-2],"expected":0.5},{"id":"c05013","function":"ss_affine_gap","pair":5,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05014","function":"ss_monge_elkan","pair":5,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c05015","function":"ss_monge_elkan","pair":5,"parameters":["jaro_winkler",1],"expected":0.41666666666666663},{"id":"c05016","function":"ss_monge_elkan","pair":5,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c05017","function":"ss_monge_elkan","pair":5,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c05018","function":"ss_monge_elkan","pair":5,"parameters":["jaro",0],"expected":1.0},{"id":"c05019","function":"ss_monge_elkan","pair":5,"parameters":["jaro",1],"expected":0.41666666666666663},{"id":"c05020","function":"ss_monge_elkan","pair":5,"parameters":["jaro",2],"expected":0.0},{"id":"c05021","function":"ss_monge_elkan","pair":5,"parameters":["jaro",3],"expected":0.0},{"id":"c05022","function":"ss_monge_elkan","pair":5,"parameters":["levenshtein",0],"expected":1.0},{"id":"c05023","function":"ss_monge_elkan","pair":5,"parameters":["levenshtein",1],"expected":0.41666666666666663},{"id":"c05024","function":"ss_monge_elkan","pair":5,"parameters":["levenshtein",2],"expected":0.0},{"id":"c05025","function":"ss_monge_elkan","pair":5,"parameters":["levenshtein",3],"expected":0.0},{"id":"c05026","function":"ss_monge_elkan","pair":5,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c05027","function":"ss_monge_elkan","pair":5,"parameters":["needleman_wunsch",1],"expected":0.41666666666666663},{"id":"c05028","function":"ss_monge_elkan","pair":5,"parameters":["needleman_wunsch",2],"expected":0.1875},{"id":"c05029","function":"ss_monge_elkan","pair":5,"parameters":["needleman_wunsch",3],"expected":0.16666666666666666},{"id":"c05030","function":"ss_monge_elkan","pair":5,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05031","function":"ss_monge_elkan","pair":5,"parameters":["smith_waterman",1],"expected":0.41666666666666663},{"id":"c05032","function":"ss_monge_elkan","pair":5,"parameters":["smith_waterman",2],"expected":0.375},{"id":"c05033","function":"ss_monge_elkan","pair":5,"parameters":["smith_waterman",3],"expected":0.5},{"id":"c05034","function":"ss_jaccard","pair":6,"parameters":[1],"expected":0.6},{"id":"c05035","function":"ss_jaccard","pair":6,"parameters":[2],"expected":0.6},{"id":"c05036","function":"ss_jaccard","pair":6,"parameters":[3],"expected":0.5},{"id":"c05037","function":"ss_cosine","pair":6,"parameters":[1],"expected":0.75},{"id":"c05038","function":"ss_cosine","pair":6,"parameters":[2],"expected":0.75},{"id":"c05039","function":"ss_cosine","pair":6,"parameters":[3],"expected":0.6666666666666666},{"id":"c05040","function":"ss_sorensen_dice","pair":6,"parameters":[1],"expected":0.75},{"id":"c05041","function":"ss_sorensen_dice","pair":6,"parameters":[2],"expected":0.75},{"id":"c05042","function":"ss_sorensen_dice","pair":6,"parameters":[3],"expected":0.6666666666666666},{"id":"c05043","function":"ss_overlap_coefficient","pair":6,"parameters":[1],"expected":0.75},{"id":"c05044","function":"ss_overlap_coefficient","pair":6,"parameters":[2],"expected":0.75},{"id":"c05045","function":"ss_overlap_coefficient","pair":6,"parameters":[3],"expected":0.6666666666666666},{"id":"c05046","function":"ss_braun_blanquet","pair":6,"parameters":[1],"expected":0.75},{"id":"c05047","function":"ss_braun_blanquet","pair":6,"parameters":[2],"expected":0.75},{"id":"c05048","function":"ss_braun_blanquet","pair":6,"parameters":[3],"expected":0.6666666666666666},{"id":"c05049","function":"ss_jaro_winkler","pair":6,"parameters":[0.2,6],"expected":0.9733333333333334},{"id":"c05050","function":"ss_needleman_wunsch","pair":6,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05051","function":"ss_smith_waterman","pair":6,"parameters":[3,-1,-2],"expected":0.8},{"id":"c05052","function":"ss_affine_gap","pair":6,"parameters":[-2,-3,-2],"expected":0.6},{"id":"c05053","function":"ss_monge_elkan","pair":6,"parameters":["jaro_winkler",0],"expected":0.6666666666666666},{"id":"c05054","function":"ss_monge_elkan","pair":6,"parameters":["jaro_winkler",1],"expected":0.75},{"id":"c05055","function":"ss_monge_elkan","pair":6,"parameters":["jaro_winkler",2],"expected":0.925},{"id":"c05056","function":"ss_monge_elkan","pair":6,"parameters":["jaro_winkler",3],"expected":0.9407407407407407},{"id":"c05057","function":"ss_monge_elkan","pair":6,"parameters":["jaro",0],"expected":0.6666666666666666},{"id":"c05058","function":"ss_monge_elkan","pair":6,"parameters":["jaro",1],"expected":0.75},{"id":"c05059","function":"ss_monge_elkan","pair":6,"parameters":["jaro",2],"expected":0.9166666666666666},{"id":"c05060","function":"ss_monge_elkan","pair":6,"parameters":["jaro",3],"expected":0.9259259259259259},{"id":"c05061","function":"ss_monge_elkan","pair":6,"parameters":["levenshtein",0],"expected":0.6666666666666666},{"id":"c05062","function":"ss_monge_elkan","pair":6,"parameters":["levenshtein",1],"expected":0.75},{"id":"c05063","function":"ss_monge_elkan","pair":6,"parameters":["levenshtein",2],"expected":0.875},{"id":"c05064","function":"ss_monge_elkan","pair":6,"parameters":["levenshtein",3],"expected":0.888888888888889},{"id":"c05065","function":"ss_monge_elkan","pair":6,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c05066","function":"ss_monge_elkan","pair":6,"parameters":["needleman_wunsch",1],"expected":0.75},{"id":"c05067","function":"ss_monge_elkan","pair":6,"parameters":["needleman_wunsch",2],"expected":0.875},{"id":"c05068","function":"ss_monge_elkan","pair":6,"parameters":["needleman_wunsch",3],"expected":0.8888888888888888},{"id":"c05069","function":"ss_monge_elkan","pair":6,"parameters":["smith_waterman",0],"expected":0.6666666666666666},{"id":"c05070","function":"ss_monge_elkan","pair":6,"parameters":["smith_waterman",1],"expected":0.75},{"id":"c05071","function":"ss_monge_elkan","pair":6,"parameters":["smith_waterman",2],"expected":0.875},{"id":"c05072","function":"ss_monge_elkan","pair":6,"parameters":["smith_waterman",3],"expected":0.8888888888888888},{"id":"c05073","function":"ss_jaccard","pair":7,"parameters":[1],"expected":0.75},{"id":"c05074","function":"ss_jaccard","pair":7,"parameters":[2],"expected":0.5},{"id":"c05075","function":"ss_jaccard","pair":7,"parameters":[3],"expected":0.3333333333333333},{"id":"c05076","function":"ss_cosine","pair":7,"parameters":[1],"expected":0.8660254037844387},{"id":"c05077","function":"ss_cosine","pair":7,"parameters":[2],"expected":0.7071067811865475},{"id":"c05078","function":"ss_cosine","pair":7,"parameters":[3],"expected":0.5773502691896258},{"id":"c05079","function":"ss_sorensen_dice","pair":7,"parameters":[1],"expected":0.8571428571428571},{"id":"c05080","function":"ss_sorensen_dice","pair":7,"parameters":[2],"expected":0.6666666666666666},{"id":"c05081","function":"ss_sorensen_dice","pair":7,"parameters":[3],"expected":0.5},{"id":"c05082","function":"ss_overlap_coefficient","pair":7,"parameters":[1],"expected":1.0},{"id":"c05083","function":"ss_overlap_coefficient","pair":7,"parameters":[2],"expected":1.0},{"id":"c05084","function":"ss_overlap_coefficient","pair":7,"parameters":[3],"expected":1.0},{"id":"c05085","function":"ss_braun_blanquet","pair":7,"parameters":[1],"expected":0.75},{"id":"c05086","function":"ss_braun_blanquet","pair":7,"parameters":[2],"expected":0.5},{"id":"c05087","function":"ss_braun_blanquet","pair":7,"parameters":[3],"expected":0.3333333333333333},{"id":"c05088","function":"ss_jaro_winkler","pair":7,"parameters":[0.2,6],"expected":0.9466666666666667},{"id":"c05089","function":"ss_needleman_wunsch","pair":7,"parameters":[2,-2,-1],"expected":0.9},{"id":"c05090","function":"ss_smith_waterman","pair":7,"parameters":[3,-1,-2],"expected":1.0},{"id":"c05091","function":"ss_affine_gap","pair":7,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05092","function":"ss_monge_elkan","pair":7,"parameters":["jaro_winkler",0],"expected":0.8333333333333333},{"id":"c05093","function":"ss_monge_elkan","pair":7,"parameters":["jaro_winkler",1],"expected":0.875},{"id":"c05094","function":"ss_monge_elkan","pair":7,"parameters":["jaro_winkler",2],"expected":0.9208333333333334},{"id":"c05095","function":"ss_monge_elkan","pair":7,"parameters":["jaro_winkler",3],"expected":0.7592592592592593},{"id":"c05096","function":"ss_monge_elkan","pair":7,"parameters":["jaro",0],"expected":0.8333333333333333},{"id":"c05097","function":"ss_monge_elkan","pair":7,"parameters":["jaro",1],"expected":0.875},{"id":"c05098","function":"ss_monge_elkan","pair":7,"parameters":["jaro",2],"expected":0.9166666666666666},{"id":"c05099","function":"ss_monge_elkan","pair":7,"parameters":["jaro",3],"expected":0.7592592592592593},{"id":"c05100","function":"ss_monge_elkan","pair":7,"parameters":["levenshtein",0],"expected":0.8333333333333333},{"id":"c05101","function":"ss_monge_elkan","pair":7,"parameters":["levenshtein",1],"expected":0.875},{"id":"c05102","function":"ss_monge_elkan","pair":7,"parameters":["levenshtein",2],"expected":0.875},{"id":"c05103","function":"ss_monge_elkan","pair":7,"parameters":["levenshtein",3],"expected":0.7777777777777779},{"id":"c05104","function":"ss_monge_elkan","pair":7,"parameters":["needleman_wunsch",0],"expected":0.8333333333333333},{"id":"c05105","function":"ss_monge_elkan","pair":7,"parameters":["needleman_wunsch",1],"expected":0.875},{"id":"c05106","function":"ss_monge_elkan","pair":7,"parameters":["needleman_wunsch",2],"expected":0.875},{"id":"c05107","function":"ss_monge_elkan","pair":7,"parameters":["needleman_wunsch",3],"expected":0.8055555555555556},{"id":"c05108","function":"ss_monge_elkan","pair":7,"parameters":["smith_waterman",0],"expected":0.8333333333333333},{"id":"c05109","function":"ss_monge_elkan","pair":7,"parameters":["smith_waterman",1],"expected":0.875},{"id":"c05110","function":"ss_monge_elkan","pair":7,"parameters":["smith_waterman",2],"expected":0.875},{"id":"c05111","function":"ss_monge_elkan","pair":7,"parameters":["smith_waterman",3],"expected":0.8333333333333333},{"id":"c05112","function":"ss_jaccard","pair":8,"parameters":[1],"expected":1.0},{"id":"c05113","function":"ss_jaccard","pair":8,"parameters":[2],"expected":0.6666666666666666},{"id":"c05114","function":"ss_jaccard","pair":8,"parameters":[3],"expected":0.3333333333333333},{"id":"c05115","function":"ss_cosine","pair":8,"parameters":[1],"expected":1.0},{"id":"c05116","function":"ss_cosine","pair":8,"parameters":[2],"expected":0.8164965809277261},{"id":"c05117","function":"ss_cosine","pair":8,"parameters":[3],"expected":0.5773502691896258},{"id":"c05118","function":"ss_sorensen_dice","pair":8,"parameters":[1],"expected":1.0},{"id":"c05119","function":"ss_sorensen_dice","pair":8,"parameters":[2],"expected":0.8},{"id":"c05120","function":"ss_sorensen_dice","pair":8,"parameters":[3],"expected":0.5},{"id":"c05121","function":"ss_overlap_coefficient","pair":8,"parameters":[1],"expected":1.0},{"id":"c05122","function":"ss_overlap_coefficient","pair":8,"parameters":[2],"expected":1.0},{"id":"c05123","function":"ss_overlap_coefficient","pair":8,"parameters":[3],"expected":1.0},{"id":"c05124","function":"ss_braun_blanquet","pair":8,"parameters":[1],"expected":1.0},{"id":"c05125","function":"ss_braun_blanquet","pair":8,"parameters":[2],"expected":0.6666666666666666},{"id":"c05126","function":"ss_braun_blanquet","pair":8,"parameters":[3],"expected":0.3333333333333333},{"id":"c05127","function":"ss_jaro_winkler","pair":8,"parameters":[0.2,6],"expected":0.7904761904761906},{"id":"c05128","function":"ss_needleman_wunsch","pair":8,"parameters":[2,-2,-1],"expected":0.6428571428571429},{"id":"c05129","function":"ss_smith_waterman","pair":8,"parameters":[3,-1,-2],"expected":1.0},{"id":"c05130","function":"ss_affine_gap","pair":8,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05131","function":"ss_monge_elkan","pair":8,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c05132","function":"ss_monge_elkan","pair":8,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c05133","function":"ss_monge_elkan","pair":8,"parameters":["jaro_winkler",2],"expected":0.95},{"id":"c05134","function":"ss_monge_elkan","pair":8,"parameters":["jaro_winkler",3],"expected":0.8037037037037037},{"id":"c05135","function":"ss_monge_elkan","pair":8,"parameters":["jaro",0],"expected":1.0},{"id":"c05136","function":"ss_monge_elkan","pair":8,"parameters":["jaro",1],"expected":1.0},{"id":"c05137","function":"ss_monge_elkan","pair":8,"parameters":["jaro",2],"expected":0.9444444444444444},{"id":"c05138","function":"ss_monge_elkan","pair":8,"parameters":["jaro",3],"expected":0.7962962962962963},{"id":"c05139","function":"ss_monge_elkan","pair":8,"parameters":["levenshtein",0],"expected":1.0},{"id":"c05140","function":"ss_monge_elkan","pair":8,"parameters":["levenshtein",1],"expected":1.0},{"id":"c05141","function":"ss_monge_elkan","pair":8,"parameters":["levenshtein",2],"expected":0.9166666666666667},{"id":"c05142","function":"ss_monge_elkan","pair":8,"parameters":["levenshtein",3],"expected":0.8333333333333333},{"id":"c05143","function":"ss_monge_elkan","pair":8,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c05144","function":"ss_monge_elkan","pair":8,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c05145","function":"ss_monge_elkan","pair":8,"parameters":["needleman_wunsch",2],"expected":0.9166666666666667},{"id":"c05146","function":"ss_monge_elkan","pair":8,"parameters":["needleman_wunsch",3],"expected":0.8611111111111112},{"id":"c05147","function":"ss_monge_elkan","pair":8,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05148","function":"ss_monge_elkan","pair":8,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c05149","function":"ss_monge_elkan","pair":8,"parameters":["smith_waterman",2],"expected":0.9166666666666667},{"id":"c05150","function":"ss_monge_elkan","pair":8,"parameters":["smith_waterman",3],"expected":0.8888888888888888},{"id":"c05151","function":"ss_jaccard","pair":9,"parameters":[1],"expected":0.5},{"id":"c05152","function":"ss_jaccard","pair":9,"parameters":[2],"expected":0.2},{"id":"c05153","function":"ss_jaccard","pair":9,"parameters":[3],"expected":0.0},{"id":"c05154","function":"ss_cosine","pair":9,"parameters":[1],"expected":0.6666666666666666},{"id":"c05155","function":"ss_cosine","pair":9,"parameters":[2],"expected":0.3333333333333333},{"id":"c05156","function":"ss_cosine","pair":9,"parameters":[3],"expected":0.0},{"id":"c05157","function":"ss_sorensen_dice","pair":9,"parameters":[1],"expected":0.6666666666666666},{"id":"c05158","function":"ss_sorensen_dice","pair":9,"parameters":[2],"expected":0.3333333333333333},{"id":"c05159","function":"ss_sorensen_dice","pair":9,"parameters":[3],"expected":0.0},{"id":"c05160","function":"ss_overlap_coefficient","pair":9,"parameters":[1],"expected":0.6666666666666666},{"id":"c05161","function":"ss_overlap_coefficient","pair":9,"parameters":[2],"expected":0.3333333333333333},{"id":"c05162","function":"ss_overlap_coefficient","pair":9,"parameters":[3],"expected":0.0},{"id":"c05163","function":"ss_braun_blanquet","pair":9,"parameters":[1],"expected":0.6666666666666666},{"id":"c05164","function":"ss_braun_blanquet","pair":9,"parameters":[2],"expected":0.3333333333333333},{"id":"c05165","function":"ss_braun_blanquet","pair":9,"parameters":[3],"expected":0.0},{"id":"c05166","function":"ss_jaro_winkler","pair":9,"parameters":[0.2,6],"expected":0.8400000000000001},{"id":"c05167","function":"ss_needleman_wunsch","pair":9,"parameters":[2,-2,-1],"expected":0.7},{"id":"c05168","function":"ss_smith_waterman","pair":9,"parameters":[3,-1,-2],"expected":0.5333333333333333},{"id":"c05169","function":"ss_affine_gap","pair":9,"parameters":[-2,-3,-2],"expected":0.19999999999999996},{"id":"c05170","function":"ss_monge_elkan","pair":9,"parameters":["jaro_winkler",0],"expected":0.5},{"id":"c05171","function":"ss_monge_elkan","pair":9,"parameters":["jaro_winkler",1],"expected":0.6666666666666666},{"id":"c05172","function":"ss_monge_elkan","pair":9,"parameters":["jaro_winkler",2],"expected":0.7944444444444444},{"id":"c05173","function":"ss_monge_elkan","pair":9,"parameters":["jaro_winkler",3],"expected":0.7703703703703704},{"id":"c05174","function":"ss_monge_elkan","pair":9,"parameters":["jaro",0],"expected":0.5},{"id":"c05175","function":"ss_monge_elkan","pair":9,"parameters":["jaro",1],"expected":0.6666666666666666},{"id":"c05176","function":"ss_monge_elkan","pair":9,"parameters":["jaro",2],"expected":0.7777777777777777},{"id":"c05177","function":"ss_monge_elkan","pair":9,"parameters":["jaro",3],"expected":0.7407407407407407},{"id":"c05178","function":"ss_monge_elkan","pair":9,"parameters":["levenshtein",0],"expected":0.5},{"id":"c05179","function":"ss_monge_elkan","pair":9,"parameters":["levenshtein",1],"expected":0.6666666666666666},{"id":"c05180","function":"ss_monge_elkan","pair":9,"parameters":["levenshtein",2],"expected":0.6666666666666666},{"id":"c05181","function":"ss_monge_elkan","pair":9,"parameters":["levenshtein",3],"expected":0.6111111111111112},{"id":"c05182","function":"ss_monge_elkan","pair":9,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c05183","function":"ss_monge_elkan","pair":9,"parameters":["needleman_wunsch",1],"expected":0.6666666666666666},{"id":"c05184","function":"ss_monge_elkan","pair":9,"parameters":["needleman_wunsch",2],"expected":0.6666666666666666},{"id":"c05185","function":"ss_monge_elkan","pair":9,"parameters":["needleman_wunsch",3],"expected":0.611111111111111},{"id":"c05186","function":"ss_monge_elkan","pair":9,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c05187","function":"ss_monge_elkan","pair":9,"parameters":["smith_waterman",1],"expected":0.6666666666666666},{"id":"c05188","function":"ss_monge_elkan","pair":9,"parameters":["smith_waterman",2],"expected":0.6666666666666666},{"id":"c05189","function":"ss_monge_elkan","pair":9,"parameters":["smith_waterman",3],"expected":0.5833333333333333},{"id":"c05190","function":"ss_jaccard","pair":10,"parameters":[1],"expected":1.0},{"id":"c05191","function":"ss_jaccard","pair":10,"parameters":[2],"expected":0.9090909090909091},{"id":"c05192","function":"ss_jaccard","pair":10,"parameters":[3],"expected":0.7272727272727273},{"id":"c05193","function":"ss_cosine","pair":10,"parameters":[1],"expected":1.0},{"id":"c05194","function":"ss_cosine","pair":10,"parameters":[2],"expected":0.9534625892455924},{"id":"c05195","function":"ss_cosine","pair":10,"parameters":[3],"expected":0.8432740427115678},{"id":"c05196","function":"ss_sorensen_dice","pair":10,"parameters":[1],"expected":1.0},{"id":"c05197","function":"ss_sorensen_dice","pair":10,"parameters":[2],"expected":0.9523809523809523},{"id":"c05198","function":"ss_sorensen_dice","pair":10,"parameters":[3],"expected":0.8421052631578947},{"id":"c05199","function":"ss_overlap_coefficient","pair":10,"parameters":[1],"expected":1.0},{"id":"c05200","function":"ss_overlap_coefficient","pair":10,"parameters":[2],"expected":1.0},{"id":"c05201","function":"ss_overlap_coefficient","pair":10,"parameters":[3],"expected":0.8888888888888888},{"id":"c05202","function":"ss_braun_blanquet","pair":10,"parameters":[1],"expected":1.0},{"id":"c05203","function":"ss_braun_blanquet","pair":10,"parameters":[2],"expected":0.9090909090909091},{"id":"c05204","function":"ss_braun_blanquet","pair":10,"parameters":[3],"expected":0.8},{"id":"c05205","function":"ss_jaro_winkler","pair":10,"parameters":[0.2,6],"expected":1.0},{"id":"c05206","function":"ss_needleman_wunsch","pair":10,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05207","function":"ss_smith_waterman","pair":10,"parameters":[3,-1,-2],"expected":0.9393939393939394},{"id":"c05208","function":"ss_affine_gap","pair":10,"parameters":[-2,-3,-2],"expected":0.5833333333333333},{"id":"c05209","function":"ss_monge_elkan","pair":10,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c05210","function":"ss_monge_elkan","pair":10,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c05211","function":"ss_monge_elkan","pair":10,"parameters":["jaro_winkler",2],"expected":0.9863636363636363},{"id":"c05212","function":"ss_monge_elkan","pair":10,"parameters":["jaro_winkler",3],"expected":0.9701234567901236},{"id":"c05213","function":"ss_monge_elkan","pair":10,"parameters":["jaro",0],"expected":1.0},{"id":"c05214","function":"ss_monge_elkan","pair":10,"parameters":["jaro",1],"expected":1.0},{"id":"c05215","function":"ss_monge_elkan","pair":10,"parameters":["jaro",2],"expected":0.9848484848484849},{"id":"c05216","function":"ss_monge_elkan","pair":10,"parameters":["jaro",3],"expected":0.9654320987654322},{"id":"c05217","function":"ss_monge_elkan","pair":10,"parameters":["levenshtein",0],"expected":1.0},{"id":"c05218","function":"ss_monge_elkan","pair":10,"parameters":["levenshtein",1],"expected":1.0},{"id":"c05219","function":"ss_monge_elkan","pair":10,"parameters":["levenshtein",2],"expected":0.9772727272727273},{"id":"c05220","function":"ss_monge_elkan","pair":10,"parameters":["levenshtein",3],"expected":0.9481481481481482},{"id":"c05221","function":"ss_monge_elkan","pair":10,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c05222","function":"ss_monge_elkan","pair":10,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c05223","function":"ss_monge_elkan","pair":10,"parameters":["needleman_wunsch",2],"expected":0.9772727272727273},{"id":"c05224","function":"ss_monge_elkan","pair":10,"parameters":["needleman_wunsch",3],"expected":0.9481481481481481},{"id":"c05225","function":"ss_monge_elkan","pair":10,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05226","function":"ss_monge_elkan","pair":10,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c05227","function":"ss_monge_elkan","pair":10,"parameters":["smith_waterman",2],"expected":0.9772727272727273},{"id":"c05228","function":"ss_monge_elkan","pair":10,"parameters":["smith_waterman",3],"expected":0.9481481481481481},{"id":"c05229","function":"ss_jaccard","pair":11,"parameters":[1],"expected":0.7777777777777778},{"id":"c05230","function":"ss_jaccard","pair":11,"parameters":[2],"expected":0.6666666666666666},{"id":"c05231","function":"ss_jaccard","pair":11,"parameters":[3],"expected":0.5},{"id":"c05232","function":"ss_cosine","pair":11,"parameters":[1],"expected":0.875},{"id":"c05233","function":"ss_cosine","pair":11,"parameters":[2],"expected":0.8},{"id":"c05234","function":"ss_cosine","pair":11,"parameters":[3],"expected":0.6666666666666666},{"id":"c05235","function":"ss_sorensen_dice","pair":11,"parameters":[1],"expected":0.875},{"id":"c05236","function":"ss_sorensen_dice","pair":11,"parameters":[2],"expected":0.8},{"id":"c05237","function":"ss_sorensen_dice","pair":11,"parameters":[3],"expected":0.6666666666666666},{"id":"c05238","function":"ss_overlap_coefficient","pair":11,"parameters":[1],"expected":0.875},{"id":"c05239","function":"ss_overlap_coefficient","pair":11,"parameters":[2],"expected":0.8},{"id":"c05240","function":"ss_overlap_coefficient","pair":11,"parameters":[3],"expected":0.6666666666666666},{"id":"c05241","function":"ss_braun_blanquet","pair":11,"parameters":[1],"expected":0.875},{"id":"c05242","function":"ss_braun_blanquet","pair":11,"parameters":[2],"expected":0.8},{"id":"c05243","function":"ss_braun_blanquet","pair":11,"parameters":[3],"expected":0.6666666666666666},{"id":"c05244","function":"ss_jaro_winkler","pair":11,"parameters":[0.2,6],"expected":1.0},{"id":"c05245","function":"ss_needleman_wunsch","pair":11,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05246","function":"ss_smith_waterman","pair":11,"parameters":[3,-1,-2],"expected":0.8787878787878788},{"id":"c05247","function":"ss_affine_gap","pair":11,"parameters":[-2,-3,-2],"expected":0.8181818181818181},{"id":"c05248","function":"ss_monge_elkan","pair":11,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c05249","function":"ss_monge_elkan","pair":11,"parameters":["jaro_winkler",1],"expected":0.875},{"id":"c05250","function":"ss_monge_elkan","pair":11,"parameters":["jaro_winkler",2],"expected":0.9366666666666665},{"id":"c05251","function":"ss_monge_elkan","pair":11,"parameters":["jaro_winkler",3],"expected":0.9333333333333331},{"id":"c05252","function":"ss_monge_elkan","pair":11,"parameters":["jaro",0],"expected":1.0},{"id":"c05253","function":"ss_monge_elkan","pair":11,"parameters":["jaro",1],"expected":0.875},{"id":"c05254","function":"ss_monge_elkan","pair":11,"parameters":["jaro",2],"expected":0.9333333333333333},{"id":"c05255","function":"ss_monge_elkan","pair":11,"parameters":["jaro",3],"expected":0.9259259259259258},{"id":"c05256","function":"ss_monge_elkan","pair":11,"parameters":["levenshtein",0],"expected":1.0},{"id":"c05257","function":"ss_monge_elkan","pair":11,"parameters":["levenshtein",1],"expected":0.875},{"id":"c05258","function":"ss_monge_elkan","pair":11,"parameters":["levenshtein",2],"expected":0.9},{"id":"c05259","function":"ss_monge_elkan","pair":11,"parameters":["levenshtein",3],"expected":0.8888888888888888},{"id":"c05260","function":"ss_monge_elkan","pair":11,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c05261","function":"ss_monge_elkan","pair":11,"parameters":["needleman_wunsch",1],"expected":0.875},{"id":"c05262","function":"ss_monge_elkan","pair":11,"parameters":["needleman_wunsch",2],"expected":0.9},{"id":"c05263","function":"ss_monge_elkan","pair":11,"parameters":["needleman_wunsch",3],"expected":0.8888888888888888},{"id":"c05264","function":"ss_monge_elkan","pair":11,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05265","function":"ss_monge_elkan","pair":11,"parameters":["smith_waterman",1],"expected":0.875},{"id":"c05266","function":"ss_monge_elkan","pair":11,"parameters":["smith_waterman",2],"expected":0.9},{"id":"c05267","function":"ss_monge_elkan","pair":11,"parameters":["smith_waterman",3],"expected":0.8703703703703703},{"id":"c05268","function":"ss_jaccard","pair":12,"parameters":[1],"expected":0.7777777777777778},{"id":"c05269","function":"ss_jaccard","pair":12,"parameters":[2],"expected":0.6363636363636364},{"id":"c05270","function":"ss_jaccard","pair":12,"parameters":[3],"expected":0.45454545454545453},{"id":"c05271","function":"ss_cosine","pair":12,"parameters":[1],"expected":0.875},{"id":"c05272","function":"ss_cosine","pair":12,"parameters":[2],"expected":0.7777777777777778},{"id":"c05273","function":"ss_cosine","pair":12,"parameters":[3],"expected":0.625},{"id":"c05274","function":"ss_sorensen_dice","pair":12,"parameters":[1],"expected":0.875},{"id":"c05275","function":"ss_sorensen_dice","pair":12,"parameters":[2],"expected":0.7777777777777778},{"id":"c05276","function":"ss_sorensen_dice","pair":12,"parameters":[3],"expected":0.625},{"id":"c05277","function":"ss_overlap_coefficient","pair":12,"parameters":[1],"expected":0.875},{"id":"c05278","function":"ss_overlap_coefficient","pair":12,"parameters":[2],"expected":0.7777777777777778},{"id":"c05279","function":"ss_overlap_coefficient","pair":12,"parameters":[3],"expected":0.625},{"id":"c05280","function":"ss_braun_blanquet","pair":12,"parameters":[1],"expected":0.875},{"id":"c05281","function":"ss_braun_blanquet","pair":12,"parameters":[2],"expected":0.7777777777777778},{"id":"c05282","function":"ss_braun_blanquet","pair":12,"parameters":[3],"expected":0.625},{"id":"c05283","function":"ss_jaro_winkler","pair":12,"parameters":[0.2,6],"expected":1.0},{"id":"c05284","function":"ss_needleman_wunsch","pair":12,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05285","function":"ss_smith_waterman","pair":12,"parameters":[3,-1,-2],"expected":0.8666666666666667},{"id":"c05286","function":"ss_affine_gap","pair":12,"parameters":[-2,-3,-2],"expected":0.8},{"id":"c05287","function":"ss_monge_elkan","pair":12,"parameters":["jaro_winkler",0],"expected":0.7875000000000001},{"id":"c05288","function":"ss_monge_elkan","pair":12,"parameters":["jaro_winkler",1],"expected":0.875},{"id":"c05289","function":"ss_monge_elkan","pair":12,"parameters":["jaro_winkler",2],"expected":0.9296296296296297},{"id":"c05290","function":"ss_monge_elkan","pair":12,"parameters":["jaro_winkler",3],"expected":0.9249999999999999},{"id":"c05291","function":"ss_monge_elkan","pair":12,"parameters":["jaro",0],"expected":0.7375},{"id":"c05292","function":"ss_monge_elkan","pair":12,"parameters":["jaro",1],"expected":0.875},{"id":"c05293","function":"ss_monge_elkan","pair":12,"parameters":["jaro",2],"expected":0.9259259259259258},{"id":"c05294","function":"ss_monge_elkan","pair":12,"parameters":["jaro",3],"expected":0.9166666666666666},{"id":"c05295","function":"ss_monge_elkan","pair":12,"parameters":["levenshtein",0],"expected":0.475},{"id":"c05296","function":"ss_monge_elkan","pair":12,"parameters":["levenshtein",1],"expected":0.875},{"id":"c05297","function":"ss_monge_elkan","pair":12,"parameters":["levenshtein",2],"expected":0.8888888888888888},{"id":"c05298","function":"ss_monge_elkan","pair":12,"parameters":["levenshtein",3],"expected":0.8750000000000001},{"id":"c05299","function":"ss_monge_elkan","pair":12,"parameters":["needleman_wunsch",0],"expected":0.475},{"id":"c05300","function":"ss_monge_elkan","pair":12,"parameters":["needleman_wunsch",1],"expected":0.875},{"id":"c05301","function":"ss_monge_elkan","pair":12,"parameters":["needleman_wunsch",2],"expected":0.8888888888888888},{"id":"c05302","function":"ss_monge_elkan","pair":12,"parameters":["needleman_wunsch",3],"expected":0.875},{"id":"c05303","function":"ss_monge_elkan","pair":12,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05304","function":"ss_monge_elkan","pair":12,"parameters":["smith_waterman",1],"expected":0.875},{"id":"c05305","function":"ss_monge_elkan","pair":12,"parameters":["smith_waterman",2],"expected":0.8888888888888888},{"id":"c05306","function":"ss_monge_elkan","pair":12,"parameters":["smith_waterman",3],"expected":0.8541666666666666},{"id":"c05307","function":"ss_jaccard","pair":13,"parameters":[1],"expected":0.7},{"id":"c05308","function":"ss_jaccard","pair":13,"parameters":[2],"expected":0.5},{"id":"c05309","function":"ss_jaccard","pair":13,"parameters":[3],"expected":0.3333333333333333},{"id":"c05310","function":"ss_cosine","pair":13,"parameters":[1],"expected":0.8249579113843055},{"id":"c05311","function":"ss_cosine","pair":13,"parameters":[2],"expected":0.6666666666666666},{"id":"c05312","function":"ss_cosine","pair":13,"parameters":[3],"expected":0.5},{"id":"c05313","function":"ss_sorensen_dice","pair":13,"parameters":[1],"expected":0.8235294117647058},{"id":"c05314","function":"ss_sorensen_dice","pair":13,"parameters":[2],"expected":0.6666666666666666},{"id":"c05315","function":"ss_sorensen_dice","pair":13,"parameters":[3],"expected":0.5},{"id":"c05316","function":"ss_overlap_coefficient","pair":13,"parameters":[1],"expected":0.875},{"id":"c05317","function":"ss_overlap_coefficient","pair":13,"parameters":[2],"expected":0.6666666666666666},{"id":"c05318","function":"ss_overlap_coefficient","pair":13,"parameters":[3],"expected":0.5},{"id":"c05319","function":"ss_braun_blanquet","pair":13,"parameters":[1],"expected":0.7777777777777778},{"id":"c05320","function":"ss_braun_blanquet","pair":13,"parameters":[2],"expected":0.6666666666666666},{"id":"c05321","function":"ss_braun_blanquet","pair":13,"parameters":[3],"expected":0.5},{"id":"c05322","function":"ss_jaro_winkler","pair":13,"parameters":[0.2,6],"expected":0.7833333333333333},{"id":"c05323","function":"ss_needleman_wunsch","pair":13,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05324","function":"ss_smith_waterman","pair":13,"parameters":[3,-1,-2],"expected":0.7666666666666667},{"id":"c05325","function":"ss_affine_gap","pair":13,"parameters":[-2,-3,-2],"expected":0.6},{"id":"c05326","function":"ss_monge_elkan","pair":13,"parameters":["jaro_winkler",0],"expected":0.8500000000000001},{"id":"c05327","function":"ss_monge_elkan","pair":13,"parameters":["jaro_winkler",1],"expected":0.8263888888888888},{"id":"c05328","function":"ss_monge_elkan","pair":13,"parameters":["jaro_winkler",2],"expected":0.8944444444444446},{"id":"c05329","function":"ss_monge_elkan","pair":13,"parameters":["jaro_winkler",3],"expected":0.8972222222222221},{"id":"c05330","function":"ss_monge_elkan","pair":13,"parameters":["jaro",0],"expected":0.8500000000000001},{"id":"c05331","function":"ss_monge_elkan","pair":13,"parameters":["jaro",1],"expected":0.8263888888888888},{"id":"c05332","function":"ss_monge_elkan","pair":13,"parameters":["jaro",2],"expected":0.8888888888888888},{"id":"c05333","function":"ss_monge_elkan","pair":13,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c05334","function":"ss_monge_elkan","pair":13,"parameters":["levenshtein",0],"expected":0.775},{"id":"c05335","function":"ss_monge_elkan","pair":13,"parameters":["levenshtein",1],"expected":0.8263888888888888},{"id":"c05336","function":"ss_monge_elkan","pair":13,"parameters":["levenshtein",2],"expected":0.8333333333333334},{"id":"c05337","function":"ss_monge_elkan","pair":13,"parameters":["levenshtein",3],"expected":0.8333333333333334},{"id":"c05338","function":"ss_monge_elkan","pair":13,"parameters":["needleman_wunsch",0],"expected":0.775},{"id":"c05339","function":"ss_monge_elkan","pair":13,"parameters":["needleman_wunsch",1],"expected":0.8263888888888888},{"id":"c05340","function":"ss_monge_elkan","pair":13,"parameters":["needleman_wunsch",2],"expected":0.8333333333333334},{"id":"c05341","function":"ss_monge_elkan","pair":13,"parameters":["needleman_wunsch",3],"expected":0.8333333333333333},{"id":"c05342","function":"ss_monge_elkan","pair":13,"parameters":["smith_waterman",0],"expected":0.775},{"id":"c05343","function":"ss_monge_elkan","pair":13,"parameters":["smith_waterman",1],"expected":0.8263888888888888},{"id":"c05344","function":"ss_monge_elkan","pair":13,"parameters":["smith_waterman",2],"expected":0.8333333333333334},{"id":"c05345","function":"ss_monge_elkan","pair":13,"parameters":["smith_waterman",3],"expected":0.8125},{"id":"c05346","function":"ss_jaccard","pair":14,"parameters":[1],"expected":0.6},{"id":"c05347","function":"ss_jaccard","pair":14,"parameters":[2],"expected":0.5},{"id":"c05348","function":"ss_jaccard","pair":14,"parameters":[3],"expected":0.3333333333333333},{"id":"c05349","function":"ss_cosine","pair":14,"parameters":[1],"expected":0.75},{"id":"c05350","function":"ss_cosine","pair":14,"parameters":[2],"expected":0.6666666666666666},{"id":"c05351","function":"ss_cosine","pair":14,"parameters":[3],"expected":0.5},{"id":"c05352","function":"ss_sorensen_dice","pair":14,"parameters":[1],"expected":0.75},{"id":"c05353","function":"ss_sorensen_dice","pair":14,"parameters":[2],"expected":0.6666666666666666},{"id":"c05354","function":"ss_sorensen_dice","pair":14,"parameters":[3],"expected":0.5},{"id":"c05355","function":"ss_overlap_coefficient","pair":14,"parameters":[1],"expected":0.75},{"id":"c05356","function":"ss_overlap_coefficient","pair":14,"parameters":[2],"expected":0.6666666666666666},{"id":"c05357","function":"ss_overlap_coefficient","pair":14,"parameters":[3],"expected":0.5},{"id":"c05358","function":"ss_braun_blanquet","pair":14,"parameters":[1],"expected":0.75},{"id":"c05359","function":"ss_braun_blanquet","pair":14,"parameters":[2],"expected":0.6666666666666666},{"id":"c05360","function":"ss_braun_blanquet","pair":14,"parameters":[3],"expected":0.5},{"id":"c05361","function":"ss_jaro_winkler","pair":14,"parameters":[0.2,6],"expected":0.9333333333333333},{"id":"c05362","function":"ss_needleman_wunsch","pair":14,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05363","function":"ss_smith_waterman","pair":14,"parameters":[3,-1,-2],"expected":0.75},{"id":"c05364","function":"ss_affine_gap","pair":14,"parameters":[-2,-3,-2],"expected":0.5},{"id":"c05365","function":"ss_monge_elkan","pair":14,"parameters":["jaro_winkler",0],"expected":0.8833333333333334},{"id":"c05366","function":"ss_monge_elkan","pair":14,"parameters":["jaro_winkler",1],"expected":0.75},{"id":"c05367","function":"ss_monge_elkan","pair":14,"parameters":["jaro_winkler",2],"expected":0.9},{"id":"c05368","function":"ss_monge_elkan","pair":14,"parameters":["jaro_winkler",3],"expected":0.9111111111111111},{"id":"c05369","function":"ss_monge_elkan","pair":14,"parameters":["jaro",0],"expected":0.8333333333333334},{"id":"c05370","function":"ss_monge_elkan","pair":14,"parameters":["jaro",1],"expected":0.75},{"id":"c05371","function":"ss_monge_elkan","pair":14,"parameters":["jaro",2],"expected":0.8888888888888888},{"id":"c05372","function":"ss_monge_elkan","pair":14,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c05373","function":"ss_monge_elkan","pair":14,"parameters":["levenshtein",0],"expected":0.75},{"id":"c05374","function":"ss_monge_elkan","pair":14,"parameters":["levenshtein",1],"expected":0.75},{"id":"c05375","function":"ss_monge_elkan","pair":14,"parameters":["levenshtein",2],"expected":0.8333333333333334},{"id":"c05376","function":"ss_monge_elkan","pair":14,"parameters":["levenshtein",3],"expected":0.8333333333333334},{"id":"c05377","function":"ss_monge_elkan","pair":14,"parameters":["needleman_wunsch",0],"expected":0.75},{"id":"c05378","function":"ss_monge_elkan","pair":14,"parameters":["needleman_wunsch",1],"expected":0.75},{"id":"c05379","function":"ss_monge_elkan","pair":14,"parameters":["needleman_wunsch",2],"expected":0.8333333333333334},{"id":"c05380","function":"ss_monge_elkan","pair":14,"parameters":["needleman_wunsch",3],"expected":0.8333333333333333},{"id":"c05381","function":"ss_monge_elkan","pair":14,"parameters":["smith_waterman",0],"expected":0.75},{"id":"c05382","function":"ss_monge_elkan","pair":14,"parameters":["smith_waterman",1],"expected":0.75},{"id":"c05383","function":"ss_monge_elkan","pair":14,"parameters":["smith_waterman",2],"expected":0.8333333333333334},{"id":"c05384","function":"ss_monge_elkan","pair":14,"parameters":["smith_waterman",3],"expected":0.8333333333333333},{"id":"c05385","function":"ss_jaccard","pair":15,"parameters":[1],"expected":0.0},{"id":"c05386","function":"ss_jaccard","pair":15,"parameters":[2],"expected":0.0},{"id":"c05387","function":"ss_jaccard","pair":15,"parameters":[3],"expected":0.0},{"id":"c05388","function":"ss_cosine","pair":15,"parameters":[1],"expected":0.0},{"id":"c05389","function":"ss_cosine","pair":15,"parameters":[2],"expected":0.0},{"id":"c05390","function":"ss_cosine","pair":15,"parameters":[3],"expected":0.0},{"id":"c05391","function":"ss_sorensen_dice","pair":15,"parameters":[1],"expected":0.0},{"id":"c05392","function":"ss_sorensen_dice","pair":15,"parameters":[2],"expected":0.0},{"id":"c05393","function":"ss_sorensen_dice","pair":15,"parameters":[3],"expected":0.0},{"id":"c05394","function":"ss_overlap_coefficient","pair":15,"parameters":[1],"expected":0.0},{"id":"c05395","function":"ss_overlap_coefficient","pair":15,"parameters":[2],"expected":0.0},{"id":"c05396","function":"ss_overlap_coefficient","pair":15,"parameters":[3],"expected":0.0},{"id":"c05397","function":"ss_braun_blanquet","pair":15,"parameters":[1],"expected":0.0},{"id":"c05398","function":"ss_braun_blanquet","pair":15,"parameters":[2],"expected":0.0},{"id":"c05399","function":"ss_braun_blanquet","pair":15,"parameters":[3],"expected":0.0},{"id":"c05400","function":"ss_jaro_winkler","pair":15,"parameters":[0.2,6],"expected":0.0},{"id":"c05401","function":"ss_needleman_wunsch","pair":15,"parameters":[2,-2,-1],"expected":0.0},{"id":"c05402","function":"ss_smith_waterman","pair":15,"parameters":[3,-1,-2],"expected":0.0},{"id":"c05403","function":"ss_affine_gap","pair":15,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05404","function":"ss_monge_elkan","pair":15,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c05405","function":"ss_monge_elkan","pair":15,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c05406","function":"ss_monge_elkan","pair":15,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c05407","function":"ss_monge_elkan","pair":15,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c05408","function":"ss_monge_elkan","pair":15,"parameters":["jaro",0],"expected":0.0},{"id":"c05409","function":"ss_monge_elkan","pair":15,"parameters":["jaro",1],"expected":0.0},{"id":"c05410","function":"ss_monge_elkan","pair":15,"parameters":["jaro",2],"expected":0.0},{"id":"c05411","function":"ss_monge_elkan","pair":15,"parameters":["jaro",3],"expected":0.0},{"id":"c05412","function":"ss_monge_elkan","pair":15,"parameters":["levenshtein",0],"expected":0.0},{"id":"c05413","function":"ss_monge_elkan","pair":15,"parameters":["levenshtein",1],"expected":0.0},{"id":"c05414","function":"ss_monge_elkan","pair":15,"parameters":["levenshtein",2],"expected":0.0},{"id":"c05415","function":"ss_monge_elkan","pair":15,"parameters":["levenshtein",3],"expected":0.0},{"id":"c05416","function":"ss_monge_elkan","pair":15,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c05417","function":"ss_monge_elkan","pair":15,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c05418","function":"ss_monge_elkan","pair":15,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c05419","function":"ss_monge_elkan","pair":15,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c05420","function":"ss_monge_elkan","pair":15,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c05421","function":"ss_monge_elkan","pair":15,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c05422","function":"ss_monge_elkan","pair":15,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c05423","function":"ss_monge_elkan","pair":15,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c05424","function":"ss_jaccard","pair":16,"parameters":[1],"expected":0.6666666666666666},{"id":"c05425","function":"ss_jaccard","pair":16,"parameters":[2],"expected":0.5},{"id":"c05426","function":"ss_jaccard","pair":16,"parameters":[3],"expected":0.0},{"id":"c05427","function":"ss_cosine","pair":16,"parameters":[1],"expected":0.8164965809277261},{"id":"c05428","function":"ss_cosine","pair":16,"parameters":[2],"expected":0.7071067811865475},{"id":"c05429","function":"ss_cosine","pair":16,"parameters":[3],"expected":0.0},{"id":"c05430","function":"ss_sorensen_dice","pair":16,"parameters":[1],"expected":0.8},{"id":"c05431","function":"ss_sorensen_dice","pair":16,"parameters":[2],"expected":0.6666666666666666},{"id":"c05432","function":"ss_sorensen_dice","pair":16,"parameters":[3],"expected":0.0},{"id":"c05433","function":"ss_overlap_coefficient","pair":16,"parameters":[1],"expected":1.0},{"id":"c05434","function":"ss_overlap_coefficient","pair":16,"parameters":[2],"expected":1.0},{"id":"c05435","function":"ss_overlap_coefficient","pair":16,"parameters":[3],"expected":0.0},{"id":"c05436","function":"ss_braun_blanquet","pair":16,"parameters":[1],"expected":0.6666666666666666},{"id":"c05437","function":"ss_braun_blanquet","pair":16,"parameters":[2],"expected":0.5},{"id":"c05438","function":"ss_braun_blanquet","pair":16,"parameters":[3],"expected":0.0},{"id":"c05439","function":"ss_jaro_winkler","pair":16,"parameters":[0.2,6],"expected":0.9333333333333333},{"id":"c05440","function":"ss_needleman_wunsch","pair":16,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05441","function":"ss_smith_waterman","pair":16,"parameters":[3,-1,-2],"expected":1.0},{"id":"c05442","function":"ss_affine_gap","pair":16,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05443","function":"ss_monge_elkan","pair":16,"parameters":["jaro_winkler",0],"expected":0.9111111111111111},{"id":"c05444","function":"ss_monge_elkan","pair":16,"parameters":["jaro_winkler",1],"expected":0.8333333333333333},{"id":"c05445","function":"ss_monge_elkan","pair":16,"parameters":["jaro_winkler",2],"expected":0.75},{"id":"c05446","function":"ss_monge_elkan","pair":16,"parameters":["jaro_winkler",3],"expected":0.9111111111111111},{"id":"c05447","function":"ss_monge_elkan","pair":16,"parameters":["jaro",0],"expected":0.8888888888888888},{"id":"c05448","function":"ss_monge_elkan","pair":16,"parameters":["jaro",1],"expected":0.8333333333333333},{"id":"c05449","function":"ss_monge_elkan","pair":16,"parameters":["jaro",2],"expected":0.75},{"id":"c05450","function":"ss_monge_elkan","pair":16,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c05451","function":"ss_monge_elkan","pair":16,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c05452","function":"ss_monge_elkan","pair":16,"parameters":["levenshtein",1],"expected":0.8333333333333333},{"id":"c05453","function":"ss_monge_elkan","pair":16,"parameters":["levenshtein",2],"expected":0.75},{"id":"c05454","function":"ss_monge_elkan","pair":16,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c05455","function":"ss_monge_elkan","pair":16,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c05456","function":"ss_monge_elkan","pair":16,"parameters":["needleman_wunsch",1],"expected":0.8333333333333333},{"id":"c05457","function":"ss_monge_elkan","pair":16,"parameters":["needleman_wunsch",2],"expected":0.8125},{"id":"c05458","function":"ss_monge_elkan","pair":16,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05459","function":"ss_monge_elkan","pair":16,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05460","function":"ss_monge_elkan","pair":16,"parameters":["smith_waterman",1],"expected":0.8333333333333333},{"id":"c05461","function":"ss_monge_elkan","pair":16,"parameters":["smith_waterman",2],"expected":0.875},{"id":"c05462","function":"ss_monge_elkan","pair":16,"parameters":["smith_waterman",3],"expected":1.0},{"id":"c05463","function":"ss_jaccard","pair":17,"parameters":[1],"expected":0.5},{"id":"c05464","function":"ss_jaccard","pair":17,"parameters":[2],"expected":0.3333333333333333},{"id":"c05465","function":"ss_jaccard","pair":17,"parameters":[3],"expected":0.0},{"id":"c05466","function":"ss_cosine","pair":17,"parameters":[1],"expected":0.6666666666666666},{"id":"c05467","function":"ss_cosine","pair":17,"parameters":[2],"expected":0.5},{"id":"c05468","function":"ss_cosine","pair":17,"parameters":[3],"expected":0.0},{"id":"c05469","function":"ss_sorensen_dice","pair":17,"parameters":[1],"expected":0.6666666666666666},{"id":"c05470","function":"ss_sorensen_dice","pair":17,"parameters":[2],"expected":0.5},{"id":"c05471","function":"ss_sorensen_dice","pair":17,"parameters":[3],"expected":0.0},{"id":"c05472","function":"ss_overlap_coefficient","pair":17,"parameters":[1],"expected":0.6666666666666666},{"id":"c05473","function":"ss_overlap_coefficient","pair":17,"parameters":[2],"expected":0.5},{"id":"c05474","function":"ss_overlap_coefficient","pair":17,"parameters":[3],"expected":0.0},{"id":"c05475","function":"ss_braun_blanquet","pair":17,"parameters":[1],"expected":0.6666666666666666},{"id":"c05476","function":"ss_braun_blanquet","pair":17,"parameters":[2],"expected":0.5},{"id":"c05477","function":"ss_braun_blanquet","pair":17,"parameters":[3],"expected":0.0},{"id":"c05478","function":"ss_jaro_winkler","pair":17,"parameters":[0.2,6],"expected":0.8666666666666666},{"id":"c05479","function":"ss_needleman_wunsch","pair":17,"parameters":[2,-2,-1],"expected":0.8333333333333334},{"id":"c05480","function":"ss_smith_waterman","pair":17,"parameters":[3,-1,-2],"expected":0.6666666666666666},{"id":"c05481","function":"ss_affine_gap","pair":17,"parameters":[-2,-3,-2],"expected":0.33333333333333337},{"id":"c05482","function":"ss_monge_elkan","pair":17,"parameters":["jaro_winkler",0],"expected":0.5},{"id":"c05483","function":"ss_monge_elkan","pair":17,"parameters":["jaro_winkler",1],"expected":0.6666666666666666},{"id":"c05484","function":"ss_monge_elkan","pair":17,"parameters":["jaro_winkler",2],"expected":0.85},{"id":"c05485","function":"ss_monge_elkan","pair":17,"parameters":["jaro_winkler",3],"expected":0.8222222222222222},{"id":"c05486","function":"ss_monge_elkan","pair":17,"parameters":["jaro",0],"expected":0.5},{"id":"c05487","function":"ss_monge_elkan","pair":17,"parameters":["jaro",1],"expected":0.6666666666666666},{"id":"c05488","function":"ss_monge_elkan","pair":17,"parameters":["jaro",2],"expected":0.8333333333333333},{"id":"c05489","function":"ss_monge_elkan","pair":17,"parameters":["jaro",3],"expected":0.7777777777777777},{"id":"c05490","function":"ss_monge_elkan","pair":17,"parameters":["levenshtein",0],"expected":0.5},{"id":"c05491","function":"ss_monge_elkan","pair":17,"parameters":["levenshtein",1],"expected":0.6666666666666666},{"id":"c05492","function":"ss_monge_elkan","pair":17,"parameters":["levenshtein",2],"expected":0.75},{"id":"c05493","function":"ss_monge_elkan","pair":17,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c05494","function":"ss_monge_elkan","pair":17,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c05495","function":"ss_monge_elkan","pair":17,"parameters":["needleman_wunsch",1],"expected":0.6666666666666666},{"id":"c05496","function":"ss_monge_elkan","pair":17,"parameters":["needleman_wunsch",2],"expected":0.75},{"id":"c05497","function":"ss_monge_elkan","pair":17,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05498","function":"ss_monge_elkan","pair":17,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c05499","function":"ss_monge_elkan","pair":17,"parameters":["smith_waterman",1],"expected":0.6666666666666666},{"id":"c05500","function":"ss_monge_elkan","pair":17,"parameters":["smith_waterman",2],"expected":0.75},{"id":"c05501","function":"ss_monge_elkan","pair":17,"parameters":["smith_waterman",3],"expected":0.6666666666666666},{"id":"c05502","function":"ss_jaccard","pair":18,"parameters":[1],"expected":1.0},{"id":"c05503","function":"ss_jaccard","pair":18,"parameters":[2],"expected":1.0},{"id":"c05504","function":"ss_jaccard","pair":18,"parameters":[3],"expected":0.0},{"id":"c05505","function":"ss_cosine","pair":18,"parameters":[1],"expected":1.0},{"id":"c05506","function":"ss_cosine","pair":18,"parameters":[2],"expected":1.0},{"id":"c05507","function":"ss_cosine","pair":18,"parameters":[3],"expected":0.0},{"id":"c05508","function":"ss_sorensen_dice","pair":18,"parameters":[1],"expected":1.0},{"id":"c05509","function":"ss_sorensen_dice","pair":18,"parameters":[2],"expected":1.0},{"id":"c05510","function":"ss_sorensen_dice","pair":18,"parameters":[3],"expected":0.0},{"id":"c05511","function":"ss_overlap_coefficient","pair":18,"parameters":[1],"expected":1.0},{"id":"c05512","function":"ss_overlap_coefficient","pair":18,"parameters":[2],"expected":1.0},{"id":"c05513","function":"ss_overlap_coefficient","pair":18,"parameters":[3],"expected":0.0},{"id":"c05514","function":"ss_braun_blanquet","pair":18,"parameters":[1],"expected":1.0},{"id":"c05515","function":"ss_braun_blanquet","pair":18,"parameters":[2],"expected":1.0},{"id":"c05516","function":"ss_braun_blanquet","pair":18,"parameters":[3],"expected":0.0},{"id":"c05517","function":"ss_jaro_winkler","pair":18,"parameters":[0.2,6],"expected":0.9},{"id":"c05518","function":"ss_needleman_wunsch","pair":18,"parameters":[2,-2,-1],"expected":0.75},{"id":"c05519","function":"ss_smith_waterman","pair":18,"parameters":[3,-1,-2],"expected":1.0},{"id":"c05520","function":"ss_affine_gap","pair":18,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05521","function":"ss_monge_elkan","pair":18,"parameters":["jaro_winkler",0],"expected":0.8666666666666667},{"id":"c05522","function":"ss_monge_elkan","pair":18,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c05523","function":"ss_monge_elkan","pair":18,"parameters":["jaro_winkler",2],"expected":1.0},{"id":"c05524","function":"ss_monge_elkan","pair":18,"parameters":["jaro_winkler",3],"expected":0.9111111111111111},{"id":"c05525","function":"ss_monge_elkan","pair":18,"parameters":["jaro",0],"expected":0.8333333333333334},{"id":"c05526","function":"ss_monge_elkan","pair":18,"parameters":["jaro",1],"expected":1.0},{"id":"c05527","function":"ss_monge_elkan","pair":18,"parameters":["jaro",2],"expected":1.0},{"id":"c05528","function":"ss_monge_elkan","pair":18,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c05529","function":"ss_monge_elkan","pair":18,"parameters":["levenshtein",0],"expected":0.5},{"id":"c05530","function":"ss_monge_elkan","pair":18,"parameters":["levenshtein",1],"expected":1.0},{"id":"c05531","function":"ss_monge_elkan","pair":18,"parameters":["levenshtein",2],"expected":1.0},{"id":"c05532","function":"ss_monge_elkan","pair":18,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c05533","function":"ss_monge_elkan","pair":18,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c05534","function":"ss_monge_elkan","pair":18,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c05535","function":"ss_monge_elkan","pair":18,"parameters":["needleman_wunsch",2],"expected":1.0},{"id":"c05536","function":"ss_monge_elkan","pair":18,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05537","function":"ss_monge_elkan","pair":18,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05538","function":"ss_monge_elkan","pair":18,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c05539","function":"ss_monge_elkan","pair":18,"parameters":["smith_waterman",2],"expected":1.0},{"id":"c05540","function":"ss_monge_elkan","pair":18,"parameters":["smith_waterman",3],"expected":1.0},{"id":"c05541","function":"ss_jaccard","pair":19,"parameters":[1],"expected":0.0},{"id":"c05542","function":"ss_jaccard","pair":19,"parameters":[2],"expected":0.0},{"id":"c05543","function":"ss_jaccard","pair":19,"parameters":[3],"expected":0.0},{"id":"c05544","function":"ss_cosine","pair":19,"parameters":[1],"expected":0.0},{"id":"c05545","function":"ss_cosine","pair":19,"parameters":[2],"expected":0.0},{"id":"c05546","function":"ss_cosine","pair":19,"parameters":[3],"expected":0.0},{"id":"c05547","function":"ss_sorensen_dice","pair":19,"parameters":[1],"expected":0.0},{"id":"c05548","function":"ss_sorensen_dice","pair":19,"parameters":[2],"expected":0.0},{"id":"c05549","function":"ss_sorensen_dice","pair":19,"parameters":[3],"expected":0.0},{"id":"c05550","function":"ss_overlap_coefficient","pair":19,"parameters":[1],"expected":0.0},{"id":"c05551","function":"ss_overlap_coefficient","pair":19,"parameters":[2],"expected":0.0},{"id":"c05552","function":"ss_overlap_coefficient","pair":19,"parameters":[3],"expected":0.0},{"id":"c05553","function":"ss_braun_blanquet","pair":19,"parameters":[1],"expected":0.0},{"id":"c05554","function":"ss_braun_blanquet","pair":19,"parameters":[2],"expected":0.0},{"id":"c05555","function":"ss_braun_blanquet","pair":19,"parameters":[3],"expected":0.0},{"id":"c05556","function":"ss_jaro_winkler","pair":19,"parameters":[0.2,6],"expected":0.0},{"id":"c05557","function":"ss_needleman_wunsch","pair":19,"parameters":[2,-2,-1],"expected":0.0},{"id":"c05558","function":"ss_smith_waterman","pair":19,"parameters":[3,-1,-2],"expected":0.0},{"id":"c05559","function":"ss_affine_gap","pair":19,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05560","function":"ss_monge_elkan","pair":19,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c05561","function":"ss_monge_elkan","pair":19,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c05562","function":"ss_monge_elkan","pair":19,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c05563","function":"ss_monge_elkan","pair":19,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c05564","function":"ss_monge_elkan","pair":19,"parameters":["jaro",0],"expected":0.0},{"id":"c05565","function":"ss_monge_elkan","pair":19,"parameters":["jaro",1],"expected":0.0},{"id":"c05566","function":"ss_monge_elkan","pair":19,"parameters":["jaro",2],"expected":0.0},{"id":"c05567","function":"ss_monge_elkan","pair":19,"parameters":["jaro",3],"expected":0.0},{"id":"c05568","function":"ss_monge_elkan","pair":19,"parameters":["levenshtein",0],"expected":0.0},{"id":"c05569","function":"ss_monge_elkan","pair":19,"parameters":["levenshtein",1],"expected":0.0},{"id":"c05570","function":"ss_monge_elkan","pair":19,"parameters":["levenshtein",2],"expected":0.0},{"id":"c05571","function":"ss_monge_elkan","pair":19,"parameters":["levenshtein",3],"expected":0.0},{"id":"c05572","function":"ss_monge_elkan","pair":19,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c05573","function":"ss_monge_elkan","pair":19,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c05574","function":"ss_monge_elkan","pair":19,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c05575","function":"ss_monge_elkan","pair":19,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c05576","function":"ss_monge_elkan","pair":19,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c05577","function":"ss_monge_elkan","pair":19,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c05578","function":"ss_monge_elkan","pair":19,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c05579","function":"ss_monge_elkan","pair":19,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c05580","function":"ss_jaccard","pair":20,"parameters":[1],"expected":0.6363636363636364},{"id":"c05581","function":"ss_jaccard","pair":20,"parameters":[2],"expected":0.4375},{"id":"c05582","function":"ss_jaccard","pair":20,"parameters":[3],"expected":0.23529411764705882},{"id":"c05583","function":"ss_cosine","pair":20,"parameters":[1],"expected":0.7777777777777778},{"id":"c05584","function":"ss_cosine","pair":20,"parameters":[2],"expected":0.6092717958449424},{"id":"c05585","function":"ss_cosine","pair":20,"parameters":[3],"expected":0.38138503569823695},{"id":"c05586","function":"ss_sorensen_dice","pair":20,"parameters":[1],"expected":0.7777777777777778},{"id":"c05587","function":"ss_sorensen_dice","pair":20,"parameters":[2],"expected":0.6086956521739131},{"id":"c05588","function":"ss_sorensen_dice","pair":20,"parameters":[3],"expected":0.38095238095238093},{"id":"c05589","function":"ss_overlap_coefficient","pair":20,"parameters":[1],"expected":0.7777777777777778},{"id":"c05590","function":"ss_overlap_coefficient","pair":20,"parameters":[2],"expected":0.6363636363636364},{"id":"c05591","function":"ss_overlap_coefficient","pair":20,"parameters":[3],"expected":0.4},{"id":"c05592","function":"ss_braun_blanquet","pair":20,"parameters":[1],"expected":0.7777777777777778},{"id":"c05593","function":"ss_braun_blanquet","pair":20,"parameters":[2],"expected":0.5833333333333334},{"id":"c05594","function":"ss_braun_blanquet","pair":20,"parameters":[3],"expected":0.36363636363636365},{"id":"c05595","function":"ss_jaro_winkler","pair":20,"parameters":[0.2,6],"expected":0.947008547008547},{"id":"c05596","function":"ss_needleman_wunsch","pair":20,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05597","function":"ss_smith_waterman","pair":20,"parameters":[3,-1,-2],"expected":0.7222222222222222},{"id":"c05598","function":"ss_affine_gap","pair":20,"parameters":[-2,-3,-2],"expected":0.3076923076923077},{"id":"c05599","function":"ss_monge_elkan","pair":20,"parameters":["jaro_winkler",0],"expected":0.893888888888889},{"id":"c05600","function":"ss_monge_elkan","pair":20,"parameters":["jaro_winkler",1],"expected":0.7777777777777778},{"id":"c05601","function":"ss_monge_elkan","pair":20,"parameters":["jaro_winkler",2],"expected":0.8757575757575757},{"id":"c05602","function":"ss_monge_elkan","pair":20,"parameters":["jaro_winkler",3],"expected":0.8461616161616161},{"id":"c05603","function":"ss_monge_elkan","pair":20,"parameters":["jaro",0],"expected":0.857936507936508},{"id":"c05604","function":"ss_monge_elkan","pair":20,"parameters":["jaro",1],"expected":0.7777777777777778},{"id":"c05605","function":"ss_monge_elkan","pair":20,"parameters":["jaro",2],"expected":0.8699494949494948},{"id":"c05606","function":"ss_monge_elkan","pair":20,"parameters":["jaro",3],"expected":0.8313131313131312},{"id":"c05607","function":"ss_monge_elkan","pair":20,"parameters":["levenshtein",0],"expected":0.7571428571428571},{"id":"c05608","function":"ss_monge_elkan","pair":20,"parameters":["levenshtein",1],"expected":0.7777777777777778},{"id":"c05609","function":"ss_monge_elkan","pair":20,"parameters":["levenshtein",2],"expected":0.8049242424242424},{"id":"c05610","function":"ss_monge_elkan","pair":20,"parameters":["levenshtein",3],"expected":0.7469696969696971},{"id":"c05611","function":"ss_monge_elkan","pair":20,"parameters":["needleman_wunsch",0],"expected":0.7571428571428571},{"id":"c05612","function":"ss_monge_elkan","pair":20,"parameters":["needleman_wunsch",1],"expected":0.7777777777777778},{"id":"c05613","function":"ss_monge_elkan","pair":20,"parameters":["needleman_wunsch",2],"expected":0.8049242424242424},{"id":"c05614","function":"ss_monge_elkan","pair":20,"parameters":["needleman_wunsch",3],"expected":0.7469696969696971},{"id":"c05615","function":"ss_monge_elkan","pair":20,"parameters":["smith_waterman",0],"expected":0.6833333333333333},{"id":"c05616","function":"ss_monge_elkan","pair":20,"parameters":["smith_waterman",1],"expected":0.7777777777777778},{"id":"c05617","function":"ss_monge_elkan","pair":20,"parameters":["smith_waterman",2],"expected":0.8049242424242424},{"id":"c05618","function":"ss_monge_elkan","pair":20,"parameters":["smith_waterman",3],"expected":0.7310606060606061},{"id":"c05619","function":"ss_jaccard","pair":21,"parameters":[1],"expected":0.5},{"id":"c05620","function":"ss_jaccard","pair":21,"parameters":[2],"expected":0.35714285714285715},{"id":"c05621","function":"ss_jaccard","pair":21,"parameters":[3],"expected":0.3076923076923077},{"id":"c05622","function":"ss_cosine","pair":21,"parameters":[1],"expected":0.6681531047810609},{"id":"c05623","function":"ss_cosine","pair":21,"parameters":[2],"expected":0.5270462766947299},{"id":"c05624","function":"ss_cosine","pair":21,"parameters":[3],"expected":0.47140452079103173},{"id":"c05625","function":"ss_sorensen_dice","pair":21,"parameters":[1],"expected":0.6666666666666666},{"id":"c05626","function":"ss_sorensen_dice","pair":21,"parameters":[2],"expected":0.5263157894736842},{"id":"c05627","function":"ss_sorensen_dice","pair":21,"parameters":[3],"expected":0.47058823529411764},{"id":"c05628","function":"ss_overlap_coefficient","pair":21,"parameters":[1],"expected":0.7142857142857143},{"id":"c05629","function":"ss_overlap_coefficient","pair":21,"parameters":[2],"expected":0.5555555555555556},{"id":"c05630","function":"ss_overlap_coefficient","pair":21,"parameters":[3],"expected":0.5},{"id":"c05631","function":"ss_braun_blanquet","pair":21,"parameters":[1],"expected":0.625},{"id":"c05632","function":"ss_braun_blanquet","pair":21,"parameters":[2],"expected":0.5},{"id":"c05633","function":"ss_braun_blanquet","pair":21,"parameters":[3],"expected":0.4444444444444444},{"id":"c05634","function":"ss_jaro_winkler","pair":21,"parameters":[0.2,6],"expected":1.0},{"id":"c05635","function":"ss_needleman_wunsch","pair":21,"parameters":[2,-2,-1],"expected":0.8181818181818182},{"id":"c05636","function":"ss_smith_waterman","pair":21,"parameters":[3,-1,-2],"expected":0.6},{"id":"c05637","function":"ss_affine_gap","pair":21,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05638","function":"ss_monge_elkan","pair":21,"parameters":["jaro_winkler",0],"expected":0.7708333333333334},{"id":"c05639","function":"ss_monge_elkan","pair":21,"parameters":["jaro_winkler",1],"expected":0.6696428571428572},{"id":"c05640","function":"ss_monge_elkan","pair":21,"parameters":["jaro_winkler",2],"expected":0.7403703703703703},{"id":"c05641","function":"ss_monge_elkan","pair":21,"parameters":["jaro_winkler",3],"expected":0.7699074074074073},{"id":"c05642","function":"ss_monge_elkan","pair":21,"parameters":["jaro",0],"expected":0.7708333333333334},{"id":"c05643","function":"ss_monge_elkan","pair":21,"parameters":["jaro",1],"expected":0.6696428571428572},{"id":"c05644","function":"ss_monge_elkan","pair":21,"parameters":["jaro",2],"expected":0.7351851851851852},{"id":"c05645","function":"ss_monge_elkan","pair":21,"parameters":["jaro",3],"expected":0.7569444444444444},{"id":"c05646","function":"ss_monge_elkan","pair":21,"parameters":["levenshtein",0],"expected":0.6},{"id":"c05647","function":"ss_monge_elkan","pair":21,"parameters":["levenshtein",1],"expected":0.6696428571428572},{"id":"c05648","function":"ss_monge_elkan","pair":21,"parameters":["levenshtein",2],"expected":0.6833333333333333},{"id":"c05649","function":"ss_monge_elkan","pair":21,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c05650","function":"ss_monge_elkan","pair":21,"parameters":["needleman_wunsch",0],"expected":0.625},{"id":"c05651","function":"ss_monge_elkan","pair":21,"parameters":["needleman_wunsch",1],"expected":0.6696428571428572},{"id":"c05652","function":"ss_monge_elkan","pair":21,"parameters":["needleman_wunsch",2],"expected":0.6833333333333333},{"id":"c05653","function":"ss_monge_elkan","pair":21,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05654","function":"ss_monge_elkan","pair":21,"parameters":["smith_waterman",0],"expected":0.625},{"id":"c05655","function":"ss_monge_elkan","pair":21,"parameters":["smith_waterman",1],"expected":0.6696428571428572},{"id":"c05656","function":"ss_monge_elkan","pair":21,"parameters":["smith_waterman",2],"expected":0.6833333333333333},{"id":"c05657","function":"ss_monge_elkan","pair":21,"parameters":["smith_waterman",3],"expected":0.6666666666666666},{"id":"c05658","function":"ss_jaccard","pair":22,"parameters":[1],"expected":0.5},{"id":"c05659","function":"ss_jaccard","pair":22,"parameters":[2],"expected":0.3333333333333333},{"id":"c05660","function":"ss_jaccard","pair":22,"parameters":[3],"expected":0.26666666666666666},{"id":"c05661","function":"ss_cosine","pair":22,"parameters":[1],"expected":0.6681531047810609},{"id":"c05662","function":"ss_cosine","pair":22,"parameters":[2],"expected":0.5},{"id":"c05663","function":"ss_cosine","pair":22,"parameters":[3],"expected":0.4216370213557839},{"id":"c05664","function":"ss_sorensen_dice","pair":22,"parameters":[1],"expected":0.6666666666666666},{"id":"c05665","function":"ss_sorensen_dice","pair":22,"parameters":[2],"expected":0.5},{"id":"c05666","function":"ss_sorensen_dice","pair":22,"parameters":[3],"expected":0.42105263157894735},{"id":"c05667","function":"ss_overlap_coefficient","pair":22,"parameters":[1],"expected":0.7142857142857143},{"id":"c05668","function":"ss_overlap_coefficient","pair":22,"parameters":[2],"expected":0.5},{"id":"c05669","function":"ss_overlap_coefficient","pair":22,"parameters":[3],"expected":0.4444444444444444},{"id":"c05670","function":"ss_braun_blanquet","pair":22,"parameters":[1],"expected":0.625},{"id":"c05671","function":"ss_braun_blanquet","pair":22,"parameters":[2],"expected":0.5},{"id":"c05672","function":"ss_braun_blanquet","pair":22,"parameters":[3],"expected":0.4},{"id":"c05673","function":"ss_jaro_winkler","pair":22,"parameters":[0.2,6],"expected":1.0},{"id":"c05674","function":"ss_needleman_wunsch","pair":22,"parameters":[2,-2,-1],"expected":0.65625},{"id":"c05675","function":"ss_smith_waterman","pair":22,"parameters":[3,-1,-2],"expected":0.5757575757575758},{"id":"c05676","function":"ss_affine_gap","pair":22,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05677","function":"ss_monge_elkan","pair":22,"parameters":["jaro_winkler",0],"expected":0.8138888888888889},{"id":"c05678","function":"ss_monge_elkan","pair":22,"parameters":["jaro_winkler",1],"expected":0.6696428571428572},{"id":"c05679","function":"ss_monge_elkan","pair":22,"parameters":["jaro_winkler",2],"expected":0.74},{"id":"c05680","function":"ss_monge_elkan","pair":22,"parameters":["jaro_winkler",3],"expected":0.7662962962962963},{"id":"c05681","function":"ss_monge_elkan","pair":22,"parameters":["jaro",0],"expected":0.8138888888888889},{"id":"c05682","function":"ss_monge_elkan","pair":22,"parameters":["jaro",1],"expected":0.6696428571428572},{"id":"c05683","function":"ss_monge_elkan","pair":22,"parameters":["jaro",2],"expected":0.7333333333333334},{"id":"c05684","function":"ss_monge_elkan","pair":22,"parameters":["jaro",3],"expected":0.7499999999999999},{"id":"c05685","function":"ss_monge_elkan","pair":22,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c05686","function":"ss_monge_elkan","pair":22,"parameters":["levenshtein",1],"expected":0.6696428571428572},{"id":"c05687","function":"ss_monge_elkan","pair":22,"parameters":["levenshtein",2],"expected":0.675},{"id":"c05688","function":"ss_monge_elkan","pair":22,"parameters":["levenshtein",3],"expected":0.6499999999999999},{"id":"c05689","function":"ss_monge_elkan","pair":22,"parameters":["needleman_wunsch",0],"expected":0.6916666666666667},{"id":"c05690","function":"ss_monge_elkan","pair":22,"parameters":["needleman_wunsch",1],"expected":0.6696428571428572},{"id":"c05691","function":"ss_monge_elkan","pair":22,"parameters":["needleman_wunsch",2],"expected":0.675},{"id":"c05692","function":"ss_monge_elkan","pair":22,"parameters":["needleman_wunsch",3],"expected":0.6675925925925926},{"id":"c05693","function":"ss_monge_elkan","pair":22,"parameters":["smith_waterman",0],"expected":0.6875},{"id":"c05694","function":"ss_monge_elkan","pair":22,"parameters":["smith_waterman",1],"expected":0.6696428571428572},{"id":"c05695","function":"ss_monge_elkan","pair":22,"parameters":["smith_waterman",2],"expected":0.675},{"id":"c05696","function":"ss_monge_elkan","pair":22,"parameters":["smith_waterman",3],"expected":0.675925925925926},{"id":"c05697","function":"ss_jaccard","pair":23,"parameters":[1],"expected":1.0},{"id":"c05698","function":"ss_jaccard","pair":23,"parameters":[2],"expected":0.8},{"id":"c05699","function":"ss_jaccard","pair":23,"parameters":[3],"expected":0.45454545454545453},{"id":"c05700","function":"ss_cosine","pair":23,"parameters":[1],"expected":1.0},{"id":"c05701","function":"ss_cosine","pair":23,"parameters":[2],"expected":0.8888888888888888},{"id":"c05702","function":"ss_cosine","pair":23,"parameters":[3],"expected":0.625},{"id":"c05703","function":"ss_sorensen_dice","pair":23,"parameters":[1],"expected":1.0},{"id":"c05704","function":"ss_sorensen_dice","pair":23,"parameters":[2],"expected":0.8888888888888888},{"id":"c05705","function":"ss_sorensen_dice","pair":23,"parameters":[3],"expected":0.625},{"id":"c05706","function":"ss_overlap_coefficient","pair":23,"parameters":[1],"expected":1.0},{"id":"c05707","function":"ss_overlap_coefficient","pair":23,"parameters":[2],"expected":0.8888888888888888},{"id":"c05708","function":"ss_overlap_coefficient","pair":23,"parameters":[3],"expected":0.625},{"id":"c05709","function":"ss_braun_blanquet","pair":23,"parameters":[1],"expected":1.0},{"id":"c05710","function":"ss_braun_blanquet","pair":23,"parameters":[2],"expected":0.8888888888888888},{"id":"c05711","function":"ss_braun_blanquet","pair":23,"parameters":[3],"expected":0.625},{"id":"c05712","function":"ss_jaro_winkler","pair":23,"parameters":[0.2,6],"expected":0.5166666666666667},{"id":"c05713","function":"ss_needleman_wunsch","pair":23,"parameters":[2,-2,-1],"expected":0.5},{"id":"c05714","function":"ss_smith_waterman","pair":23,"parameters":[3,-1,-2],"expected":0.5},{"id":"c05715","function":"ss_affine_gap","pair":23,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05716","function":"ss_monge_elkan","pair":23,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c05717","function":"ss_monge_elkan","pair":23,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c05718","function":"ss_monge_elkan","pair":23,"parameters":["jaro_winkler",2],"expected":0.9666666666666666},{"id":"c05719","function":"ss_monge_elkan","pair":23,"parameters":["jaro_winkler",3],"expected":0.8999999999999999},{"id":"c05720","function":"ss_monge_elkan","pair":23,"parameters":["jaro",0],"expected":1.0},{"id":"c05721","function":"ss_monge_elkan","pair":23,"parameters":["jaro",1],"expected":1.0},{"id":"c05722","function":"ss_monge_elkan","pair":23,"parameters":["jaro",2],"expected":0.9629629629629629},{"id":"c05723","function":"ss_monge_elkan","pair":23,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c05724","function":"ss_monge_elkan","pair":23,"parameters":["levenshtein",0],"expected":1.0},{"id":"c05725","function":"ss_monge_elkan","pair":23,"parameters":["levenshtein",1],"expected":1.0},{"id":"c05726","function":"ss_monge_elkan","pair":23,"parameters":["levenshtein",2],"expected":0.9444444444444444},{"id":"c05727","function":"ss_monge_elkan","pair":23,"parameters":["levenshtein",3],"expected":0.8333333333333334},{"id":"c05728","function":"ss_monge_elkan","pair":23,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c05729","function":"ss_monge_elkan","pair":23,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c05730","function":"ss_monge_elkan","pair":23,"parameters":["needleman_wunsch",2],"expected":0.9444444444444444},{"id":"c05731","function":"ss_monge_elkan","pair":23,"parameters":["needleman_wunsch",3],"expected":0.8541666666666666},{"id":"c05732","function":"ss_monge_elkan","pair":23,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c05733","function":"ss_monge_elkan","pair":23,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c05734","function":"ss_monge_elkan","pair":23,"parameters":["smith_waterman",2],"expected":0.9444444444444444},{"id":"c05735","function":"ss_monge_elkan","pair":23,"parameters":["smith_waterman",3],"expected":0.875},{"id":"c05736","function":"ss_jaccard","pair":24,"parameters":[1],"expected":1.0},{"id":"c05737","function":"ss_jaccard","pair":24,"parameters":[2],"expected":0.25},{"id":"c05738","function":"ss_jaccard","pair":24,"parameters":[3],"expected":0.14285714285714285},{"id":"c05739","function":"ss_cosine","pair":24,"parameters":[1],"expected":1.0},{"id":"c05740","function":"ss_cosine","pair":24,"parameters":[2],"expected":0.4},{"id":"c05741","function":"ss_cosine","pair":24,"parameters":[3],"expected":0.25},{"id":"c05742","function":"ss_sorensen_dice","pair":24,"parameters":[1],"expected":1.0},{"id":"c05743","function":"ss_sorensen_dice","pair":24,"parameters":[2],"expected":0.4},{"id":"c05744","function":"ss_sorensen_dice","pair":24,"parameters":[3],"expected":0.25},{"id":"c05745","function":"ss_overlap_coefficient","pair":24,"parameters":[1],"expected":1.0},{"id":"c05746","function":"ss_overlap_coefficient","pair":24,"parameters":[2],"expected":0.4},{"id":"c05747","function":"ss_overlap_coefficient","pair":24,"parameters":[3],"expected":0.25},{"id":"c05748","function":"ss_braun_blanquet","pair":24,"parameters":[1],"expected":1.0},{"id":"c05749","function":"ss_braun_blanquet","pair":24,"parameters":[2],"expected":0.4},{"id":"c05750","function":"ss_braun_blanquet","pair":24,"parameters":[3],"expected":0.25},{"id":"c05751","function":"ss_jaro_winkler","pair":24,"parameters":[0.2,6],"expected":0.9777777777777779},{"id":"c05752","function":"ss_needleman_wunsch","pair":24,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05753","function":"ss_smith_waterman","pair":24,"parameters":[3,-1,-2],"expected":0.6111111111111112},{"id":"c05754","function":"ss_affine_gap","pair":24,"parameters":[-2,-3,-2],"expected":0.33333333333333337},{"id":"c05755","function":"ss_monge_elkan","pair":24,"parameters":["jaro_winkler",0],"expected":0.9611111111111111},{"id":"c05756","function":"ss_monge_elkan","pair":24,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c05757","function":"ss_monge_elkan","pair":24,"parameters":["jaro_winkler",2],"expected":0.8200000000000001},{"id":"c05758","function":"ss_monge_elkan","pair":24,"parameters":["jaro_winkler",3],"expected":0.7444444444444445},{"id":"c05759","function":"ss_monge_elkan","pair":24,"parameters":["jaro",0],"expected":0.9444444444444445},{"id":"c05760","function":"ss_monge_elkan","pair":24,"parameters":["jaro",1],"expected":1.0},{"id":"c05761","function":"ss_monge_elkan","pair":24,"parameters":["jaro",2],"expected":0.7999999999999999},{"id":"c05762","function":"ss_monge_elkan","pair":24,"parameters":["jaro",3],"expected":0.7222222222222221},{"id":"c05763","function":"ss_monge_elkan","pair":24,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c05764","function":"ss_monge_elkan","pair":24,"parameters":["levenshtein",1],"expected":1.0},{"id":"c05765","function":"ss_monge_elkan","pair":24,"parameters":["levenshtein",2],"expected":0.7},{"id":"c05766","function":"ss_monge_elkan","pair":24,"parameters":["levenshtein",3],"expected":0.5833333333333334},{"id":"c05767","function":"ss_monge_elkan","pair":24,"parameters":["needleman_wunsch",0],"expected":0.75},{"id":"c05768","function":"ss_monge_elkan","pair":24,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c05769","function":"ss_monge_elkan","pair":24,"parameters":["needleman_wunsch",2],"expected":0.7},{"id":"c05770","function":"ss_monge_elkan","pair":24,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05771","function":"ss_monge_elkan","pair":24,"parameters":["smith_waterman",0],"expected":0.6666666666666666},{"id":"c05772","function":"ss_monge_elkan","pair":24,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c05773","function":"ss_monge_elkan","pair":24,"parameters":["smith_waterman",2],"expected":0.7},{"id":"c05774","function":"ss_monge_elkan","pair":24,"parameters":["smith_waterman",3],"expected":0.6666666666666666},{"id":"c05775","function":"ss_jaccard","pair":25,"parameters":[1],"expected":0.5714285714285714},{"id":"c05776","function":"ss_jaccard","pair":25,"parameters":[2],"expected":0.125},{"id":"c05777","function":"ss_jaccard","pair":25,"parameters":[3],"expected":0.0},{"id":"c05778","function":"ss_cosine","pair":25,"parameters":[1],"expected":0.7302967433402214},{"id":"c05779","function":"ss_cosine","pair":25,"parameters":[2],"expected":0.22360679774997896},{"id":"c05780","function":"ss_cosine","pair":25,"parameters":[3],"expected":0.0},{"id":"c05781","function":"ss_sorensen_dice","pair":25,"parameters":[1],"expected":0.7272727272727273},{"id":"c05782","function":"ss_sorensen_dice","pair":25,"parameters":[2],"expected":0.2222222222222222},{"id":"c05783","function":"ss_sorensen_dice","pair":25,"parameters":[3],"expected":0.0},{"id":"c05784","function":"ss_overlap_coefficient","pair":25,"parameters":[1],"expected":0.8},{"id":"c05785","function":"ss_overlap_coefficient","pair":25,"parameters":[2],"expected":0.25},{"id":"c05786","function":"ss_overlap_coefficient","pair":25,"parameters":[3],"expected":0.0},{"id":"c05787","function":"ss_braun_blanquet","pair":25,"parameters":[1],"expected":0.6666666666666666},{"id":"c05788","function":"ss_braun_blanquet","pair":25,"parameters":[2],"expected":0.2},{"id":"c05789","function":"ss_braun_blanquet","pair":25,"parameters":[3],"expected":0.0},{"id":"c05790","function":"ss_jaro_winkler","pair":25,"parameters":[0.2,6],"expected":0.8577777777777779},{"id":"c05791","function":"ss_needleman_wunsch","pair":25,"parameters":[2,-2,-1],"expected":0.9166666666666666},{"id":"c05792","function":"ss_smith_waterman","pair":25,"parameters":[3,-1,-2],"expected":0.6},{"id":"c05793","function":"ss_affine_gap","pair":25,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05794","function":"ss_monge_elkan","pair":25,"parameters":["jaro_winkler",0],"expected":0.8400000000000001},{"id":"c05795","function":"ss_monge_elkan","pair":25,"parameters":["jaro_winkler",1],"expected":0.7333333333333334},{"id":"c05796","function":"ss_monge_elkan","pair":25,"parameters":["jaro_winkler",2],"expected":0.7566666666666666},{"id":"c05797","function":"ss_monge_elkan","pair":25,"parameters":["jaro_winkler",3],"expected":0.6972222222222221},{"id":"c05798","function":"ss_monge_elkan","pair":25,"parameters":["jaro",0],"expected":0.8222222222222223},{"id":"c05799","function":"ss_monge_elkan","pair":25,"parameters":["jaro",1],"expected":0.7333333333333334},{"id":"c05800","function":"ss_monge_elkan","pair":25,"parameters":["jaro",2],"expected":0.7416666666666665},{"id":"c05801","function":"ss_monge_elkan","pair":25,"parameters":["jaro",3],"expected":0.6851851851851851},{"id":"c05802","function":"ss_monge_elkan","pair":25,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c05803","function":"ss_monge_elkan","pair":25,"parameters":["levenshtein",1],"expected":0.7333333333333334},{"id":"c05804","function":"ss_monge_elkan","pair":25,"parameters":["levenshtein",2],"expected":0.6125},{"id":"c05805","function":"ss_monge_elkan","pair":25,"parameters":["levenshtein",3],"expected":0.5277777777777778},{"id":"c05806","function":"ss_monge_elkan","pair":25,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c05807","function":"ss_monge_elkan","pair":25,"parameters":["needleman_wunsch",1],"expected":0.7333333333333334},{"id":"c05808","function":"ss_monge_elkan","pair":25,"parameters":["needleman_wunsch",2],"expected":0.6125},{"id":"c05809","function":"ss_monge_elkan","pair":25,"parameters":["needleman_wunsch",3],"expected":0.5763888888888888},{"id":"c05810","function":"ss_monge_elkan","pair":25,"parameters":["smith_waterman",0],"expected":0.6},{"id":"c05811","function":"ss_monge_elkan","pair":25,"parameters":["smith_waterman",1],"expected":0.7333333333333334},{"id":"c05812","function":"ss_monge_elkan","pair":25,"parameters":["smith_waterman",2],"expected":0.6125},{"id":"c05813","function":"ss_monge_elkan","pair":25,"parameters":["smith_waterman",3],"expected":0.5277777777777777},{"id":"c05814","function":"ss_jaccard","pair":26,"parameters":[1],"expected":0.625},{"id":"c05815","function":"ss_jaccard","pair":26,"parameters":[2],"expected":0.2222222222222222},{"id":"c05816","function":"ss_jaccard","pair":26,"parameters":[3],"expected":0.0},{"id":"c05817","function":"ss_cosine","pair":26,"parameters":[1],"expected":0.7905694150420948},{"id":"c05818","function":"ss_cosine","pair":26,"parameters":[2],"expected":0.3779644730092272},{"id":"c05819","function":"ss_cosine","pair":26,"parameters":[3],"expected":0.0},{"id":"c05820","function":"ss_sorensen_dice","pair":26,"parameters":[1],"expected":0.7692307692307693},{"id":"c05821","function":"ss_sorensen_dice","pair":26,"parameters":[2],"expected":0.36363636363636365},{"id":"c05822","function":"ss_sorensen_dice","pair":26,"parameters":[3],"expected":0.0},{"id":"c05823","function":"ss_overlap_coefficient","pair":26,"parameters":[1],"expected":1.0},{"id":"c05824","function":"ss_overlap_coefficient","pair":26,"parameters":[2],"expected":0.5},{"id":"c05825","function":"ss_overlap_coefficient","pair":26,"parameters":[3],"expected":0.0},{"id":"c05826","function":"ss_braun_blanquet","pair":26,"parameters":[1],"expected":0.625},{"id":"c05827","function":"ss_braun_blanquet","pair":26,"parameters":[2],"expected":0.2857142857142857},{"id":"c05828","function":"ss_braun_blanquet","pair":26,"parameters":[3],"expected":0.0},{"id":"c05829","function":"ss_jaro_winkler","pair":26,"parameters":[0.2,6],"expected":0.86},{"id":"c05830","function":"ss_needleman_wunsch","pair":26,"parameters":[2,-2,-1],"expected":0.6875},{"id":"c05831","function":"ss_smith_waterman","pair":26,"parameters":[3,-1,-2],"expected":0.4666666666666667},{"id":"c05832","function":"ss_affine_gap","pair":26,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05833","function":"ss_monge_elkan","pair":26,"parameters":["jaro_winkler",0],"expected":0.8133333333333332},{"id":"c05834","function":"ss_monge_elkan","pair":26,"parameters":["jaro_winkler",1],"expected":0.8125},{"id":"c05835","function":"ss_monge_elkan","pair":26,"parameters":["jaro_winkler",2],"expected":0.7089285714285714},{"id":"c05836","function":"ss_monge_elkan","pair":26,"parameters":["jaro_winkler",3],"expected":0.6425925925925926},{"id":"c05837","function":"ss_monge_elkan","pair":26,"parameters":["jaro",0],"expected":0.7666666666666666},{"id":"c05838","function":"ss_monge_elkan","pair":26,"parameters":["jaro",1],"expected":0.8125},{"id":"c05839","function":"ss_monge_elkan","pair":26,"parameters":["jaro",2],"expected":0.7023809523809523},{"id":"c05840","function":"ss_monge_elkan","pair":26,"parameters":["jaro",3],"expected":0.6203703703703702},{"id":"c05841","function":"ss_monge_elkan","pair":26,"parameters":["levenshtein",0],"expected":0.5},{"id":"c05842","function":"ss_monge_elkan","pair":26,"parameters":["levenshtein",1],"expected":0.8125},{"id":"c05843","function":"ss_monge_elkan","pair":26,"parameters":["levenshtein",2],"expected":0.625},{"id":"c05844","function":"ss_monge_elkan","pair":26,"parameters":["levenshtein",3],"expected":0.4722222222222223},{"id":"c05845","function":"ss_monge_elkan","pair":26,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c05846","function":"ss_monge_elkan","pair":26,"parameters":["needleman_wunsch",1],"expected":0.8125},{"id":"c05847","function":"ss_monge_elkan","pair":26,"parameters":["needleman_wunsch",2],"expected":0.625},{"id":"c05848","function":"ss_monge_elkan","pair":26,"parameters":["needleman_wunsch",3],"expected":0.48611111111111105},{"id":"c05849","function":"ss_monge_elkan","pair":26,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c05850","function":"ss_monge_elkan","pair":26,"parameters":["smith_waterman",1],"expected":0.8125},{"id":"c05851","function":"ss_monge_elkan","pair":26,"parameters":["smith_waterman",2],"expected":0.625},{"id":"c05852","function":"ss_monge_elkan","pair":26,"parameters":["smith_waterman",3],"expected":0.49999999999999994},{"id":"c05853","function":"ss_jaccard","pair":27,"parameters":[1],"expected":0.42857142857142855},{"id":"c05854","function":"ss_jaccard","pair":27,"parameters":[2],"expected":0.2222222222222222},{"id":"c05855","function":"ss_jaccard","pair":27,"parameters":[3],"expected":0.125},{"id":"c05856","function":"ss_cosine","pair":27,"parameters":[1],"expected":0.6},{"id":"c05857","function":"ss_cosine","pair":27,"parameters":[2],"expected":0.3651483716701107},{"id":"c05858","function":"ss_cosine","pair":27,"parameters":[3],"expected":0.22360679774997896},{"id":"c05859","function":"ss_sorensen_dice","pair":27,"parameters":[1],"expected":0.6},{"id":"c05860","function":"ss_sorensen_dice","pair":27,"parameters":[2],"expected":0.36363636363636365},{"id":"c05861","function":"ss_sorensen_dice","pair":27,"parameters":[3],"expected":0.2222222222222222},{"id":"c05862","function":"ss_overlap_coefficient","pair":27,"parameters":[1],"expected":0.6},{"id":"c05863","function":"ss_overlap_coefficient","pair":27,"parameters":[2],"expected":0.4},{"id":"c05864","function":"ss_overlap_coefficient","pair":27,"parameters":[3],"expected":0.25},{"id":"c05865","function":"ss_braun_blanquet","pair":27,"parameters":[1],"expected":0.6},{"id":"c05866","function":"ss_braun_blanquet","pair":27,"parameters":[2],"expected":0.3333333333333333},{"id":"c05867","function":"ss_braun_blanquet","pair":27,"parameters":[3],"expected":0.2},{"id":"c05868","function":"ss_jaro_winkler","pair":27,"parameters":[0.2,6],"expected":0.746031746031746},{"id":"c05869","function":"ss_needleman_wunsch","pair":27,"parameters":[2,-2,-1],"expected":0.7142857142857143},{"id":"c05870","function":"ss_smith_waterman","pair":27,"parameters":[3,-1,-2],"expected":0.6111111111111112},{"id":"c05871","function":"ss_affine_gap","pair":27,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05872","function":"ss_monge_elkan","pair":27,"parameters":["jaro_winkler",0],"expected":0.746031746031746},{"id":"c05873","function":"ss_monge_elkan","pair":27,"parameters":["jaro_winkler",1],"expected":0.6},{"id":"c05874","function":"ss_monge_elkan","pair":27,"parameters":["jaro_winkler",2],"expected":0.7422222222222221},{"id":"c05875","function":"ss_monge_elkan","pair":27,"parameters":["jaro_winkler",3],"expected":0.825},{"id":"c05876","function":"ss_monge_elkan","pair":27,"parameters":["jaro",0],"expected":0.746031746031746},{"id":"c05877","function":"ss_monge_elkan","pair":27,"parameters":["jaro",1],"expected":0.6},{"id":"c05878","function":"ss_monge_elkan","pair":27,"parameters":["jaro",2],"expected":0.7333333333333333},{"id":"c05879","function":"ss_monge_elkan","pair":27,"parameters":["jaro",3],"expected":0.8055555555555555},{"id":"c05880","function":"ss_monge_elkan","pair":27,"parameters":["levenshtein",0],"expected":0.5714285714285714},{"id":"c05881","function":"ss_monge_elkan","pair":27,"parameters":["levenshtein",1],"expected":0.6},{"id":"c05882","function":"ss_monge_elkan","pair":27,"parameters":["levenshtein",2],"expected":0.6416666666666666},{"id":"c05883","function":"ss_monge_elkan","pair":27,"parameters":["levenshtein",3],"expected":0.7083333333333334},{"id":"c05884","function":"ss_monge_elkan","pair":27,"parameters":["needleman_wunsch",0],"expected":0.5714285714285714},{"id":"c05885","function":"ss_monge_elkan","pair":27,"parameters":["needleman_wunsch",1],"expected":0.6},{"id":"c05886","function":"ss_monge_elkan","pair":27,"parameters":["needleman_wunsch",2],"expected":0.6625},{"id":"c05887","function":"ss_monge_elkan","pair":27,"parameters":["needleman_wunsch",3],"expected":0.7083333333333333},{"id":"c05888","function":"ss_monge_elkan","pair":27,"parameters":["smith_waterman",0],"expected":0.5833333333333334},{"id":"c05889","function":"ss_monge_elkan","pair":27,"parameters":["smith_waterman",1],"expected":0.6},{"id":"c05890","function":"ss_monge_elkan","pair":27,"parameters":["smith_waterman",2],"expected":0.6833333333333333},{"id":"c05891","function":"ss_monge_elkan","pair":27,"parameters":["smith_waterman",3],"expected":0.6708333333333333},{"id":"c05892","function":"ss_jaccard","pair":28,"parameters":[1],"expected":0.6666666666666666},{"id":"c05893","function":"ss_jaccard","pair":28,"parameters":[2],"expected":0.3333333333333333},{"id":"c05894","function":"ss_jaccard","pair":28,"parameters":[3],"expected":0.0},{"id":"c05895","function":"ss_cosine","pair":28,"parameters":[1],"expected":0.8},{"id":"c05896","function":"ss_cosine","pair":28,"parameters":[2],"expected":0.5},{"id":"c05897","function":"ss_cosine","pair":28,"parameters":[3],"expected":0.0},{"id":"c05898","function":"ss_sorensen_dice","pair":28,"parameters":[1],"expected":0.8},{"id":"c05899","function":"ss_sorensen_dice","pair":28,"parameters":[2],"expected":0.5},{"id":"c05900","function":"ss_sorensen_dice","pair":28,"parameters":[3],"expected":0.0},{"id":"c05901","function":"ss_overlap_coefficient","pair":28,"parameters":[1],"expected":0.8},{"id":"c05902","function":"ss_overlap_coefficient","pair":28,"parameters":[2],"expected":0.5},{"id":"c05903","function":"ss_overlap_coefficient","pair":28,"parameters":[3],"expected":0.0},{"id":"c05904","function":"ss_braun_blanquet","pair":28,"parameters":[1],"expected":0.8},{"id":"c05905","function":"ss_braun_blanquet","pair":28,"parameters":[2],"expected":0.5},{"id":"c05906","function":"ss_braun_blanquet","pair":28,"parameters":[3],"expected":0.0},{"id":"c05907","function":"ss_jaro_winkler","pair":28,"parameters":[0.2,6],"expected":0.92},{"id":"c05908","function":"ss_needleman_wunsch","pair":28,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05909","function":"ss_smith_waterman","pair":28,"parameters":[3,-1,-2],"expected":0.7333333333333333},{"id":"c05910","function":"ss_affine_gap","pair":28,"parameters":[-2,-3,-2],"expected":0.6},{"id":"c05911","function":"ss_monge_elkan","pair":28,"parameters":["jaro_winkler",0],"expected":0.8933333333333333},{"id":"c05912","function":"ss_monge_elkan","pair":28,"parameters":["jaro_winkler",1],"expected":0.8},{"id":"c05913","function":"ss_monge_elkan","pair":28,"parameters":["jaro_winkler",2],"expected":0.8416666666666666},{"id":"c05914","function":"ss_monge_elkan","pair":28,"parameters":["jaro_winkler",3],"expected":0.7999999999999999},{"id":"c05915","function":"ss_monge_elkan","pair":28,"parameters":["jaro",0],"expected":0.8666666666666667},{"id":"c05916","function":"ss_monge_elkan","pair":28,"parameters":["jaro",1],"expected":0.8},{"id":"c05917","function":"ss_monge_elkan","pair":28,"parameters":["jaro",2],"expected":0.8333333333333333},{"id":"c05918","function":"ss_monge_elkan","pair":28,"parameters":["jaro",3],"expected":0.7777777777777777},{"id":"c05919","function":"ss_monge_elkan","pair":28,"parameters":["levenshtein",0],"expected":0.8},{"id":"c05920","function":"ss_monge_elkan","pair":28,"parameters":["levenshtein",1],"expected":0.8},{"id":"c05921","function":"ss_monge_elkan","pair":28,"parameters":["levenshtein",2],"expected":0.75},{"id":"c05922","function":"ss_monge_elkan","pair":28,"parameters":["levenshtein",3],"expected":0.6666666666666666},{"id":"c05923","function":"ss_monge_elkan","pair":28,"parameters":["needleman_wunsch",0],"expected":0.8},{"id":"c05924","function":"ss_monge_elkan","pair":28,"parameters":["needleman_wunsch",1],"expected":0.8},{"id":"c05925","function":"ss_monge_elkan","pair":28,"parameters":["needleman_wunsch",2],"expected":0.75},{"id":"c05926","function":"ss_monge_elkan","pair":28,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05927","function":"ss_monge_elkan","pair":28,"parameters":["smith_waterman",0],"expected":0.7},{"id":"c05928","function":"ss_monge_elkan","pair":28,"parameters":["smith_waterman",1],"expected":0.8},{"id":"c05929","function":"ss_monge_elkan","pair":28,"parameters":["smith_waterman",2],"expected":0.75},{"id":"c05930","function":"ss_monge_elkan","pair":28,"parameters":["smith_waterman",3],"expected":0.611111111111111},{"id":"c05931","function":"ss_jaccard","pair":29,"parameters":[1],"expected":0.6666666666666666},{"id":"c05932","function":"ss_jaccard","pair":29,"parameters":[2],"expected":0.0},{"id":"c05933","function":"ss_jaccard","pair":29,"parameters":[3],"expected":0.0},{"id":"c05934","function":"ss_cosine","pair":29,"parameters":[1],"expected":0.8164965809277261},{"id":"c05935","function":"ss_cosine","pair":29,"parameters":[2],"expected":0.0},{"id":"c05936","function":"ss_cosine","pair":29,"parameters":[3],"expected":0.0},{"id":"c05937","function":"ss_sorensen_dice","pair":29,"parameters":[1],"expected":0.8},{"id":"c05938","function":"ss_sorensen_dice","pair":29,"parameters":[2],"expected":0.0},{"id":"c05939","function":"ss_sorensen_dice","pair":29,"parameters":[3],"expected":0.0},{"id":"c05940","function":"ss_overlap_coefficient","pair":29,"parameters":[1],"expected":1.0},{"id":"c05941","function":"ss_overlap_coefficient","pair":29,"parameters":[2],"expected":0.0},{"id":"c05942","function":"ss_overlap_coefficient","pair":29,"parameters":[3],"expected":0.0},{"id":"c05943","function":"ss_braun_blanquet","pair":29,"parameters":[1],"expected":0.6666666666666666},{"id":"c05944","function":"ss_braun_blanquet","pair":29,"parameters":[2],"expected":0.0},{"id":"c05945","function":"ss_braun_blanquet","pair":29,"parameters":[3],"expected":0.0},{"id":"c05946","function":"ss_jaro_winkler","pair":29,"parameters":[0.2,6],"expected":0.6888888888888889},{"id":"c05947","function":"ss_needleman_wunsch","pair":29,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05948","function":"ss_smith_waterman","pair":29,"parameters":[3,-1,-2],"expected":0.6666666666666666},{"id":"c05949","function":"ss_affine_gap","pair":29,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c05950","function":"ss_monge_elkan","pair":29,"parameters":["jaro_winkler",0],"expected":0.6499999999999999},{"id":"c05951","function":"ss_monge_elkan","pair":29,"parameters":["jaro_winkler",1],"expected":0.8333333333333333},{"id":"c05952","function":"ss_monge_elkan","pair":29,"parameters":["jaro_winkler",2],"expected":0.6916666666666667},{"id":"c05953","function":"ss_monge_elkan","pair":29,"parameters":["jaro_winkler",3],"expected":0.6499999999999999},{"id":"c05954","function":"ss_monge_elkan","pair":29,"parameters":["jaro",0],"expected":0.611111111111111},{"id":"c05955","function":"ss_monge_elkan","pair":29,"parameters":["jaro",1],"expected":0.8333333333333333},{"id":"c05956","function":"ss_monge_elkan","pair":29,"parameters":["jaro",2],"expected":0.6666666666666666},{"id":"c05957","function":"ss_monge_elkan","pair":29,"parameters":["jaro",3],"expected":0.611111111111111},{"id":"c05958","function":"ss_monge_elkan","pair":29,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c05959","function":"ss_monge_elkan","pair":29,"parameters":["levenshtein",1],"expected":0.8333333333333333},{"id":"c05960","function":"ss_monge_elkan","pair":29,"parameters":["levenshtein",2],"expected":0.5},{"id":"c05961","function":"ss_monge_elkan","pair":29,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c05962","function":"ss_monge_elkan","pair":29,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c05963","function":"ss_monge_elkan","pair":29,"parameters":["needleman_wunsch",1],"expected":0.8333333333333333},{"id":"c05964","function":"ss_monge_elkan","pair":29,"parameters":["needleman_wunsch",2],"expected":0.5},{"id":"c05965","function":"ss_monge_elkan","pair":29,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c05966","function":"ss_monge_elkan","pair":29,"parameters":["smith_waterman",0],"expected":0.75},{"id":"c05967","function":"ss_monge_elkan","pair":29,"parameters":["smith_waterman",1],"expected":0.8333333333333333},{"id":"c05968","function":"ss_monge_elkan","pair":29,"parameters":["smith_waterman",2],"expected":0.5},{"id":"c05969","function":"ss_monge_elkan","pair":29,"parameters":["smith_waterman",3],"expected":0.75},{"id":"c05970","function":"ss_jaccard","pair":30,"parameters":[1],"expected":0.6},{"id":"c05971","function":"ss_jaccard","pair":30,"parameters":[2],"expected":0.5},{"id":"c05972","function":"ss_jaccard","pair":30,"parameters":[3],"expected":0.3333333333333333},{"id":"c05973","function":"ss_cosine","pair":30,"parameters":[1],"expected":0.75},{"id":"c05974","function":"ss_cosine","pair":30,"parameters":[2],"expected":0.6666666666666666},{"id":"c05975","function":"ss_cosine","pair":30,"parameters":[3],"expected":0.5},{"id":"c05976","function":"ss_sorensen_dice","pair":30,"parameters":[1],"expected":0.75},{"id":"c05977","function":"ss_sorensen_dice","pair":30,"parameters":[2],"expected":0.6666666666666666},{"id":"c05978","function":"ss_sorensen_dice","pair":30,"parameters":[3],"expected":0.5},{"id":"c05979","function":"ss_overlap_coefficient","pair":30,"parameters":[1],"expected":0.75},{"id":"c05980","function":"ss_overlap_coefficient","pair":30,"parameters":[2],"expected":0.6666666666666666},{"id":"c05981","function":"ss_overlap_coefficient","pair":30,"parameters":[3],"expected":0.5},{"id":"c05982","function":"ss_braun_blanquet","pair":30,"parameters":[1],"expected":0.75},{"id":"c05983","function":"ss_braun_blanquet","pair":30,"parameters":[2],"expected":0.6666666666666666},{"id":"c05984","function":"ss_braun_blanquet","pair":30,"parameters":[3],"expected":0.5},{"id":"c05985","function":"ss_jaro_winkler","pair":30,"parameters":[0.2,6],"expected":0.9333333333333333},{"id":"c05986","function":"ss_needleman_wunsch","pair":30,"parameters":[2,-2,-1],"expected":1.0},{"id":"c05987","function":"ss_smith_waterman","pair":30,"parameters":[3,-1,-2],"expected":0.75},{"id":"c05988","function":"ss_affine_gap","pair":30,"parameters":[-2,-3,-2],"expected":0.5},{"id":"c05989","function":"ss_monge_elkan","pair":30,"parameters":["jaro_winkler",0],"expected":0.8833333333333334},{"id":"c05990","function":"ss_monge_elkan","pair":30,"parameters":["jaro_winkler",1],"expected":0.75},{"id":"c05991","function":"ss_monge_elkan","pair":30,"parameters":["jaro_winkler",2],"expected":0.9},{"id":"c05992","function":"ss_monge_elkan","pair":30,"parameters":["jaro_winkler",3],"expected":0.9111111111111111},{"id":"c05993","function":"ss_monge_elkan","pair":30,"parameters":["jaro",0],"expected":0.8333333333333334},{"id":"c05994","function":"ss_monge_elkan","pair":30,"parameters":["jaro",1],"expected":0.75},{"id":"c05995","function":"ss_monge_elkan","pair":30,"parameters":["jaro",2],"expected":0.8888888888888888},{"id":"c05996","function":"ss_monge_elkan","pair":30,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c05997","function":"ss_monge_elkan","pair":30,"parameters":["levenshtein",0],"expected":0.75},{"id":"c05998","function":"ss_monge_elkan","pair":30,"parameters":["levenshtein",1],"expected":0.75},{"id":"c05999","function":"ss_monge_elkan","pair":30,"parameters":["levenshtein",2],"expected":0.8333333333333334},{"id":"c06000","function":"ss_monge_elkan","pair":30,"parameters":["levenshtein",3],"expected":0.8333333333333334},{"id":"c06001","function":"ss_monge_elkan","pair":30,"parameters":["needleman_wunsch",0],"expected":0.75},{"id":"c06002","function":"ss_monge_elkan","pair":30,"parameters":["needleman_wunsch",1],"expected":0.75},{"id":"c06003","function":"ss_monge_elkan","pair":30,"parameters":["needleman_wunsch",2],"expected":0.8333333333333334},{"id":"c06004","function":"ss_monge_elkan","pair":30,"parameters":["needleman_wunsch",3],"expected":0.8333333333333333},{"id":"c06005","function":"ss_monge_elkan","pair":30,"parameters":["smith_waterman",0],"expected":0.75},{"id":"c06006","function":"ss_monge_elkan","pair":30,"parameters":["smith_waterman",1],"expected":0.75},{"id":"c06007","function":"ss_monge_elkan","pair":30,"parameters":["smith_waterman",2],"expected":0.8333333333333334},{"id":"c06008","function":"ss_monge_elkan","pair":30,"parameters":["smith_waterman",3],"expected":0.8333333333333333},{"id":"c06009","function":"ss_jaccard","pair":31,"parameters":[1],"expected":0.5},{"id":"c06010","function":"ss_jaccard","pair":31,"parameters":[2],"expected":0.4},{"id":"c06011","function":"ss_jaccard","pair":31,"parameters":[3],"expected":0.25},{"id":"c06012","function":"ss_cosine","pair":31,"parameters":[1],"expected":0.6708203932499369},{"id":"c06013","function":"ss_cosine","pair":31,"parameters":[2],"expected":0.5773502691896258},{"id":"c06014","function":"ss_cosine","pair":31,"parameters":[3],"expected":0.4082482904638631},{"id":"c06015","function":"ss_sorensen_dice","pair":31,"parameters":[1],"expected":0.6666666666666666},{"id":"c06016","function":"ss_sorensen_dice","pair":31,"parameters":[2],"expected":0.5714285714285714},{"id":"c06017","function":"ss_sorensen_dice","pair":31,"parameters":[3],"expected":0.4},{"id":"c06018","function":"ss_overlap_coefficient","pair":31,"parameters":[1],"expected":0.75},{"id":"c06019","function":"ss_overlap_coefficient","pair":31,"parameters":[2],"expected":0.6666666666666666},{"id":"c06020","function":"ss_overlap_coefficient","pair":31,"parameters":[3],"expected":0.5},{"id":"c06021","function":"ss_braun_blanquet","pair":31,"parameters":[1],"expected":0.6},{"id":"c06022","function":"ss_braun_blanquet","pair":31,"parameters":[2],"expected":0.5},{"id":"c06023","function":"ss_braun_blanquet","pair":31,"parameters":[3],"expected":0.3333333333333333},{"id":"c06024","function":"ss_jaro_winkler","pair":31,"parameters":[0.2,6],"expected":0.9133333333333333},{"id":"c06025","function":"ss_needleman_wunsch","pair":31,"parameters":[2,-2,-1],"expected":0.8},{"id":"c06026","function":"ss_smith_waterman","pair":31,"parameters":[3,-1,-2],"expected":0.75},{"id":"c06027","function":"ss_affine_gap","pair":31,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06028","function":"ss_monge_elkan","pair":31,"parameters":["jaro_winkler",0],"expected":0.8483333333333334},{"id":"c06029","function":"ss_monge_elkan","pair":31,"parameters":["jaro_winkler",1],"expected":0.675},{"id":"c06030","function":"ss_monge_elkan","pair":31,"parameters":["jaro_winkler",2],"expected":0.7875000000000001},{"id":"c06031","function":"ss_monge_elkan","pair":31,"parameters":["jaro_winkler",3],"expected":0.7592592592592593},{"id":"c06032","function":"ss_monge_elkan","pair":31,"parameters":["jaro",0],"expected":0.7833333333333333},{"id":"c06033","function":"ss_monge_elkan","pair":31,"parameters":["jaro",1],"expected":0.675},{"id":"c06034","function":"ss_monge_elkan","pair":31,"parameters":["jaro",2],"expected":0.7777777777777777},{"id":"c06035","function":"ss_monge_elkan","pair":31,"parameters":["jaro",3],"expected":0.7407407407407407},{"id":"c06036","function":"ss_monge_elkan","pair":31,"parameters":["levenshtein",0],"expected":0.6},{"id":"c06037","function":"ss_monge_elkan","pair":31,"parameters":["levenshtein",1],"expected":0.675},{"id":"c06038","function":"ss_monge_elkan","pair":31,"parameters":["levenshtein",2],"expected":0.7291666666666667},{"id":"c06039","function":"ss_monge_elkan","pair":31,"parameters":["levenshtein",3],"expected":0.6944444444444444},{"id":"c06040","function":"ss_monge_elkan","pair":31,"parameters":["needleman_wunsch",0],"expected":0.6},{"id":"c06041","function":"ss_monge_elkan","pair":31,"parameters":["needleman_wunsch",1],"expected":0.675},{"id":"c06042","function":"ss_monge_elkan","pair":31,"parameters":["needleman_wunsch",2],"expected":0.7291666666666667},{"id":"c06043","function":"ss_monge_elkan","pair":31,"parameters":["needleman_wunsch",3],"expected":0.7222222222222221},{"id":"c06044","function":"ss_monge_elkan","pair":31,"parameters":["smith_waterman",0],"expected":0.75},{"id":"c06045","function":"ss_monge_elkan","pair":31,"parameters":["smith_waterman",1],"expected":0.675},{"id":"c06046","function":"ss_monge_elkan","pair":31,"parameters":["smith_waterman",2],"expected":0.7291666666666667},{"id":"c06047","function":"ss_monge_elkan","pair":31,"parameters":["smith_waterman",3],"expected":0.75},{"id":"c06048","function":"ss_jaccard","pair":32,"parameters":[1],"expected":0.6666666666666666},{"id":"c06049","function":"ss_jaccard","pair":32,"parameters":[2],"expected":0.25},{"id":"c06050","function":"ss_jaccard","pair":32,"parameters":[3],"expected":0.14285714285714285},{"id":"c06051","function":"ss_cosine","pair":32,"parameters":[1],"expected":0.8},{"id":"c06052","function":"ss_cosine","pair":32,"parameters":[2],"expected":0.4},{"id":"c06053","function":"ss_cosine","pair":32,"parameters":[3],"expected":0.25},{"id":"c06054","function":"ss_sorensen_dice","pair":32,"parameters":[1],"expected":0.8},{"id":"c06055","function":"ss_sorensen_dice","pair":32,"parameters":[2],"expected":0.4},{"id":"c06056","function":"ss_sorensen_dice","pair":32,"parameters":[3],"expected":0.25},{"id":"c06057","function":"ss_overlap_coefficient","pair":32,"parameters":[1],"expected":0.8},{"id":"c06058","function":"ss_overlap_coefficient","pair":32,"parameters":[2],"expected":0.4},{"id":"c06059","function":"ss_overlap_coefficient","pair":32,"parameters":[3],"expected":0.25},{"id":"c06060","function":"ss_braun_blanquet","pair":32,"parameters":[1],"expected":0.8},{"id":"c06061","function":"ss_braun_blanquet","pair":32,"parameters":[2],"expected":0.4},{"id":"c06062","function":"ss_braun_blanquet","pair":32,"parameters":[3],"expected":0.25},{"id":"c06063","function":"ss_jaro_winkler","pair":32,"parameters":[0.2,6],"expected":0.8222222222222222},{"id":"c06064","function":"ss_needleman_wunsch","pair":32,"parameters":[2,-2,-1],"expected":0.8333333333333334},{"id":"c06065","function":"ss_smith_waterman","pair":32,"parameters":[3,-1,-2],"expected":0.6111111111111112},{"id":"c06066","function":"ss_affine_gap","pair":32,"parameters":[-2,-3,-2],"expected":0.33333333333333337},{"id":"c06067","function":"ss_monge_elkan","pair":32,"parameters":["jaro_winkler",0],"expected":0.7999999999999999},{"id":"c06068","function":"ss_monge_elkan","pair":32,"parameters":["jaro_winkler",1],"expected":0.8},{"id":"c06069","function":"ss_monge_elkan","pair":32,"parameters":["jaro_winkler",2],"expected":0.8133333333333334},{"id":"c06070","function":"ss_monge_elkan","pair":32,"parameters":["jaro_winkler",3],"expected":0.8499999999999999},{"id":"c06071","function":"ss_monge_elkan","pair":32,"parameters":["jaro",0],"expected":0.7777777777777777},{"id":"c06072","function":"ss_monge_elkan","pair":32,"parameters":["jaro",1],"expected":0.8},{"id":"c06073","function":"ss_monge_elkan","pair":32,"parameters":["jaro",2],"expected":0.7999999999999999},{"id":"c06074","function":"ss_monge_elkan","pair":32,"parameters":["jaro",3],"expected":0.8333333333333333},{"id":"c06075","function":"ss_monge_elkan","pair":32,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c06076","function":"ss_monge_elkan","pair":32,"parameters":["levenshtein",1],"expected":0.8},{"id":"c06077","function":"ss_monge_elkan","pair":32,"parameters":["levenshtein",2],"expected":0.7},{"id":"c06078","function":"ss_monge_elkan","pair":32,"parameters":["levenshtein",3],"expected":0.75},{"id":"c06079","function":"ss_monge_elkan","pair":32,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c06080","function":"ss_monge_elkan","pair":32,"parameters":["needleman_wunsch",1],"expected":0.8},{"id":"c06081","function":"ss_monge_elkan","pair":32,"parameters":["needleman_wunsch",2],"expected":0.7},{"id":"c06082","function":"ss_monge_elkan","pair":32,"parameters":["needleman_wunsch",3],"expected":0.7499999999999999},{"id":"c06083","function":"ss_monge_elkan","pair":32,"parameters":["smith_waterman",0],"expected":0.5833333333333334},{"id":"c06084","function":"ss_monge_elkan","pair":32,"parameters":["smith_waterman",1],"expected":0.8},{"id":"c06085","function":"ss_monge_elkan","pair":32,"parameters":["smith_waterman",2],"expected":0.7},{"id":"c06086","function":"ss_monge_elkan","pair":32,"parameters":["smith_waterman",3],"expected":0.7083333333333333},{"id":"c06087","function":"ss_jaccard","pair":33,"parameters":[1],"expected":0.6666666666666666},{"id":"c06088","function":"ss_jaccard","pair":33,"parameters":[2],"expected":0.375},{"id":"c06089","function":"ss_jaccard","pair":33,"parameters":[3],"expected":0.2857142857142857},{"id":"c06090","function":"ss_cosine","pair":33,"parameters":[1],"expected":0.8},{"id":"c06091","function":"ss_cosine","pair":33,"parameters":[2],"expected":0.5477225575051661},{"id":"c06092","function":"ss_cosine","pair":33,"parameters":[3],"expected":0.4472135954999579},{"id":"c06093","function":"ss_sorensen_dice","pair":33,"parameters":[1],"expected":0.8},{"id":"c06094","function":"ss_sorensen_dice","pair":33,"parameters":[2],"expected":0.5454545454545454},{"id":"c06095","function":"ss_sorensen_dice","pair":33,"parameters":[3],"expected":0.4444444444444444},{"id":"c06096","function":"ss_overlap_coefficient","pair":33,"parameters":[1],"expected":0.8},{"id":"c06097","function":"ss_overlap_coefficient","pair":33,"parameters":[2],"expected":0.6},{"id":"c06098","function":"ss_overlap_coefficient","pair":33,"parameters":[3],"expected":0.5},{"id":"c06099","function":"ss_braun_blanquet","pair":33,"parameters":[1],"expected":0.8},{"id":"c06100","function":"ss_braun_blanquet","pair":33,"parameters":[2],"expected":0.5},{"id":"c06101","function":"ss_braun_blanquet","pair":33,"parameters":[3],"expected":0.4},{"id":"c06102","function":"ss_jaro_winkler","pair":33,"parameters":[0.2,6],"expected":0.826031746031746},{"id":"c06103","function":"ss_needleman_wunsch","pair":33,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06104","function":"ss_smith_waterman","pair":33,"parameters":[3,-1,-2],"expected":0.6666666666666666},{"id":"c06105","function":"ss_affine_gap","pair":33,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06106","function":"ss_monge_elkan","pair":33,"parameters":["jaro_winkler",0],"expected":0.8042857142857143},{"id":"c06107","function":"ss_monge_elkan","pair":33,"parameters":["jaro_winkler",1],"expected":0.8},{"id":"c06108","function":"ss_monge_elkan","pair":33,"parameters":["jaro_winkler",2],"expected":0.8588888888888888},{"id":"c06109","function":"ss_monge_elkan","pair":33,"parameters":["jaro_winkler",3],"expected":0.8155555555555554},{"id":"c06110","function":"ss_monge_elkan","pair":33,"parameters":["jaro",0],"expected":0.7825396825396825},{"id":"c06111","function":"ss_monge_elkan","pair":33,"parameters":["jaro",1],"expected":0.8},{"id":"c06112","function":"ss_monge_elkan","pair":33,"parameters":["jaro",2],"expected":0.85},{"id":"c06113","function":"ss_monge_elkan","pair":33,"parameters":["jaro",3],"expected":0.8055555555555555},{"id":"c06114","function":"ss_monge_elkan","pair":33,"parameters":["levenshtein",0],"expected":0.7142857142857143},{"id":"c06115","function":"ss_monge_elkan","pair":33,"parameters":["levenshtein",1],"expected":0.8},{"id":"c06116","function":"ss_monge_elkan","pair":33,"parameters":["levenshtein",2],"expected":0.775},{"id":"c06117","function":"ss_monge_elkan","pair":33,"parameters":["levenshtein",3],"expected":0.7083333333333334},{"id":"c06118","function":"ss_monge_elkan","pair":33,"parameters":["needleman_wunsch",0],"expected":0.7142857142857143},{"id":"c06119","function":"ss_monge_elkan","pair":33,"parameters":["needleman_wunsch",1],"expected":0.8},{"id":"c06120","function":"ss_monge_elkan","pair":33,"parameters":["needleman_wunsch",2],"expected":0.775},{"id":"c06121","function":"ss_monge_elkan","pair":33,"parameters":["needleman_wunsch",3],"expected":0.7083333333333334},{"id":"c06122","function":"ss_monge_elkan","pair":33,"parameters":["smith_waterman",0],"expected":0.6666666666666666},{"id":"c06123","function":"ss_monge_elkan","pair":33,"parameters":["smith_waterman",1],"expected":0.8},{"id":"c06124","function":"ss_monge_elkan","pair":33,"parameters":["smith_waterman",2],"expected":0.775},{"id":"c06125","function":"ss_monge_elkan","pair":33,"parameters":["smith_waterman",3],"expected":0.7083333333333334},{"id":"c06126","function":"ss_jaccard","pair":34,"parameters":[1],"expected":1.0},{"id":"c06127","function":"ss_jaccard","pair":34,"parameters":[2],"expected":1.0},{"id":"c06128","function":"ss_jaccard","pair":34,"parameters":[3],"expected":1.0},{"id":"c06129","function":"ss_cosine","pair":34,"parameters":[1],"expected":1.0},{"id":"c06130","function":"ss_cosine","pair":34,"parameters":[2],"expected":1.0},{"id":"c06131","function":"ss_cosine","pair":34,"parameters":[3],"expected":1.0},{"id":"c06132","function":"ss_sorensen_dice","pair":34,"parameters":[1],"expected":1.0},{"id":"c06133","function":"ss_sorensen_dice","pair":34,"parameters":[2],"expected":1.0},{"id":"c06134","function":"ss_sorensen_dice","pair":34,"parameters":[3],"expected":1.0},{"id":"c06135","function":"ss_overlap_coefficient","pair":34,"parameters":[1],"expected":1.0},{"id":"c06136","function":"ss_overlap_coefficient","pair":34,"parameters":[2],"expected":1.0},{"id":"c06137","function":"ss_overlap_coefficient","pair":34,"parameters":[3],"expected":1.0},{"id":"c06138","function":"ss_braun_blanquet","pair":34,"parameters":[1],"expected":1.0},{"id":"c06139","function":"ss_braun_blanquet","pair":34,"parameters":[2],"expected":1.0},{"id":"c06140","function":"ss_braun_blanquet","pair":34,"parameters":[3],"expected":1.0},{"id":"c06141","function":"ss_jaro_winkler","pair":34,"parameters":[0.2,6],"expected":1.0},{"id":"c06142","function":"ss_needleman_wunsch","pair":34,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06143","function":"ss_smith_waterman","pair":34,"parameters":[3,-1,-2],"expected":1.0},{"id":"c06144","function":"ss_affine_gap","pair":34,"parameters":[-2,-3,-2],"expected":1.0},{"id":"c06145","function":"ss_monge_elkan","pair":34,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c06146","function":"ss_monge_elkan","pair":34,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06147","function":"ss_monge_elkan","pair":34,"parameters":["jaro_winkler",2],"expected":1.0},{"id":"c06148","function":"ss_monge_elkan","pair":34,"parameters":["jaro_winkler",3],"expected":1.0},{"id":"c06149","function":"ss_monge_elkan","pair":34,"parameters":["jaro",0],"expected":1.0},{"id":"c06150","function":"ss_monge_elkan","pair":34,"parameters":["jaro",1],"expected":1.0},{"id":"c06151","function":"ss_monge_elkan","pair":34,"parameters":["jaro",2],"expected":1.0},{"id":"c06152","function":"ss_monge_elkan","pair":34,"parameters":["jaro",3],"expected":1.0},{"id":"c06153","function":"ss_monge_elkan","pair":34,"parameters":["levenshtein",0],"expected":1.0},{"id":"c06154","function":"ss_monge_elkan","pair":34,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06155","function":"ss_monge_elkan","pair":34,"parameters":["levenshtein",2],"expected":1.0},{"id":"c06156","function":"ss_monge_elkan","pair":34,"parameters":["levenshtein",3],"expected":1.0},{"id":"c06157","function":"ss_monge_elkan","pair":34,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c06158","function":"ss_monge_elkan","pair":34,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06159","function":"ss_monge_elkan","pair":34,"parameters":["needleman_wunsch",2],"expected":1.0},{"id":"c06160","function":"ss_monge_elkan","pair":34,"parameters":["needleman_wunsch",3],"expected":1.0},{"id":"c06161","function":"ss_monge_elkan","pair":34,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c06162","function":"ss_monge_elkan","pair":34,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06163","function":"ss_monge_elkan","pair":34,"parameters":["smith_waterman",2],"expected":1.0},{"id":"c06164","function":"ss_monge_elkan","pair":34,"parameters":["smith_waterman",3],"expected":1.0},{"id":"c06165","function":"ss_jaccard","pair":35,"parameters":[1],"expected":0.0},{"id":"c06166","function":"ss_jaccard","pair":35,"parameters":[2],"expected":0.0},{"id":"c06167","function":"ss_jaccard","pair":35,"parameters":[3],"expected":0.0},{"id":"c06168","function":"ss_cosine","pair":35,"parameters":[1],"expected":0.0},{"id":"c06169","function":"ss_cosine","pair":35,"parameters":[2],"expected":0.0},{"id":"c06170","function":"ss_cosine","pair":35,"parameters":[3],"expected":0.0},{"id":"c06171","function":"ss_sorensen_dice","pair":35,"parameters":[1],"expected":0.0},{"id":"c06172","function":"ss_sorensen_dice","pair":35,"parameters":[2],"expected":0.0},{"id":"c06173","function":"ss_sorensen_dice","pair":35,"parameters":[3],"expected":0.0},{"id":"c06174","function":"ss_overlap_coefficient","pair":35,"parameters":[1],"expected":0.0},{"id":"c06175","function":"ss_overlap_coefficient","pair":35,"parameters":[2],"expected":0.0},{"id":"c06176","function":"ss_overlap_coefficient","pair":35,"parameters":[3],"expected":0.0},{"id":"c06177","function":"ss_braun_blanquet","pair":35,"parameters":[1],"expected":0.0},{"id":"c06178","function":"ss_braun_blanquet","pair":35,"parameters":[2],"expected":0.0},{"id":"c06179","function":"ss_braun_blanquet","pair":35,"parameters":[3],"expected":0.0},{"id":"c06180","function":"ss_jaro_winkler","pair":35,"parameters":[0.2,6],"expected":0.0},{"id":"c06181","function":"ss_needleman_wunsch","pair":35,"parameters":[2,-2,-1],"expected":0.0},{"id":"c06182","function":"ss_smith_waterman","pair":35,"parameters":[3,-1,-2],"expected":0.0},{"id":"c06183","function":"ss_affine_gap","pair":35,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06184","function":"ss_monge_elkan","pair":35,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c06185","function":"ss_monge_elkan","pair":35,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c06186","function":"ss_monge_elkan","pair":35,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c06187","function":"ss_monge_elkan","pair":35,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c06188","function":"ss_monge_elkan","pair":35,"parameters":["jaro",0],"expected":0.0},{"id":"c06189","function":"ss_monge_elkan","pair":35,"parameters":["jaro",1],"expected":0.0},{"id":"c06190","function":"ss_monge_elkan","pair":35,"parameters":["jaro",2],"expected":0.0},{"id":"c06191","function":"ss_monge_elkan","pair":35,"parameters":["jaro",3],"expected":0.0},{"id":"c06192","function":"ss_monge_elkan","pair":35,"parameters":["levenshtein",0],"expected":0.0},{"id":"c06193","function":"ss_monge_elkan","pair":35,"parameters":["levenshtein",1],"expected":0.0},{"id":"c06194","function":"ss_monge_elkan","pair":35,"parameters":["levenshtein",2],"expected":0.0},{"id":"c06195","function":"ss_monge_elkan","pair":35,"parameters":["levenshtein",3],"expected":0.0},{"id":"c06196","function":"ss_monge_elkan","pair":35,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c06197","function":"ss_monge_elkan","pair":35,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c06198","function":"ss_monge_elkan","pair":35,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c06199","function":"ss_monge_elkan","pair":35,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c06200","function":"ss_monge_elkan","pair":35,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c06201","function":"ss_monge_elkan","pair":35,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c06202","function":"ss_monge_elkan","pair":35,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c06203","function":"ss_monge_elkan","pair":35,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c06204","function":"ss_jaccard","pair":36,"parameters":[1],"expected":0.5},{"id":"c06205","function":"ss_jaccard","pair":36,"parameters":[2],"expected":0.3333333333333333},{"id":"c06206","function":"ss_jaccard","pair":36,"parameters":[3],"expected":0.0},{"id":"c06207","function":"ss_cosine","pair":36,"parameters":[1],"expected":0.7071067811865475},{"id":"c06208","function":"ss_cosine","pair":36,"parameters":[2],"expected":0.5773502691896258},{"id":"c06209","function":"ss_cosine","pair":36,"parameters":[3],"expected":0.0},{"id":"c06210","function":"ss_sorensen_dice","pair":36,"parameters":[1],"expected":0.6666666666666666},{"id":"c06211","function":"ss_sorensen_dice","pair":36,"parameters":[2],"expected":0.5},{"id":"c06212","function":"ss_sorensen_dice","pair":36,"parameters":[3],"expected":0.0},{"id":"c06213","function":"ss_overlap_coefficient","pair":36,"parameters":[1],"expected":1.0},{"id":"c06214","function":"ss_overlap_coefficient","pair":36,"parameters":[2],"expected":1.0},{"id":"c06215","function":"ss_overlap_coefficient","pair":36,"parameters":[3],"expected":0.0},{"id":"c06216","function":"ss_braun_blanquet","pair":36,"parameters":[1],"expected":0.5},{"id":"c06217","function":"ss_braun_blanquet","pair":36,"parameters":[2],"expected":0.3333333333333333},{"id":"c06218","function":"ss_braun_blanquet","pair":36,"parameters":[3],"expected":0.0},{"id":"c06219","function":"ss_jaro_winkler","pair":36,"parameters":[0.2,6],"expected":0.9},{"id":"c06220","function":"ss_needleman_wunsch","pair":36,"parameters":[2,-2,-1],"expected":0.75},{"id":"c06221","function":"ss_smith_waterman","pair":36,"parameters":[3,-1,-2],"expected":1.0},{"id":"c06222","function":"ss_affine_gap","pair":36,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06223","function":"ss_monge_elkan","pair":36,"parameters":["jaro_winkler",0],"expected":0.75},{"id":"c06224","function":"ss_monge_elkan","pair":36,"parameters":["jaro_winkler",1],"expected":0.75},{"id":"c06225","function":"ss_monge_elkan","pair":36,"parameters":["jaro_winkler",2],"expected":0.6666666666666666},{"id":"c06226","function":"ss_monge_elkan","pair":36,"parameters":["jaro_winkler",3],"expected":0.6833333333333333},{"id":"c06227","function":"ss_monge_elkan","pair":36,"parameters":["jaro",0],"expected":0.75},{"id":"c06228","function":"ss_monge_elkan","pair":36,"parameters":["jaro",1],"expected":0.75},{"id":"c06229","function":"ss_monge_elkan","pair":36,"parameters":["jaro",2],"expected":0.6666666666666666},{"id":"c06230","function":"ss_monge_elkan","pair":36,"parameters":["jaro",3],"expected":0.6666666666666666},{"id":"c06231","function":"ss_monge_elkan","pair":36,"parameters":["levenshtein",0],"expected":0.75},{"id":"c06232","function":"ss_monge_elkan","pair":36,"parameters":["levenshtein",1],"expected":0.75},{"id":"c06233","function":"ss_monge_elkan","pair":36,"parameters":["levenshtein",2],"expected":0.6666666666666666},{"id":"c06234","function":"ss_monge_elkan","pair":36,"parameters":["levenshtein",3],"expected":0.5},{"id":"c06235","function":"ss_monge_elkan","pair":36,"parameters":["needleman_wunsch",0],"expected":0.75},{"id":"c06236","function":"ss_monge_elkan","pair":36,"parameters":["needleman_wunsch",1],"expected":0.75},{"id":"c06237","function":"ss_monge_elkan","pair":36,"parameters":["needleman_wunsch",2],"expected":0.7083333333333334},{"id":"c06238","function":"ss_monge_elkan","pair":36,"parameters":["needleman_wunsch",3],"expected":0.5416666666666666},{"id":"c06239","function":"ss_monge_elkan","pair":36,"parameters":["smith_waterman",0],"expected":0.75},{"id":"c06240","function":"ss_monge_elkan","pair":36,"parameters":["smith_waterman",1],"expected":0.75},{"id":"c06241","function":"ss_monge_elkan","pair":36,"parameters":["smith_waterman",2],"expected":0.75},{"id":"c06242","function":"ss_monge_elkan","pair":36,"parameters":["smith_waterman",3],"expected":0.875},{"id":"c06243","function":"ss_jaccard","pair":37,"parameters":[1],"expected":1.0},{"id":"c06244","function":"ss_jaccard","pair":37,"parameters":[2],"expected":1.0},{"id":"c06245","function":"ss_jaccard","pair":37,"parameters":[3],"expected":1.0},{"id":"c06246","function":"ss_cosine","pair":37,"parameters":[1],"expected":1.0},{"id":"c06247","function":"ss_cosine","pair":37,"parameters":[2],"expected":1.0},{"id":"c06248","function":"ss_cosine","pair":37,"parameters":[3],"expected":1.0},{"id":"c06249","function":"ss_sorensen_dice","pair":37,"parameters":[1],"expected":1.0},{"id":"c06250","function":"ss_sorensen_dice","pair":37,"parameters":[2],"expected":1.0},{"id":"c06251","function":"ss_sorensen_dice","pair":37,"parameters":[3],"expected":1.0},{"id":"c06252","function":"ss_overlap_coefficient","pair":37,"parameters":[1],"expected":1.0},{"id":"c06253","function":"ss_overlap_coefficient","pair":37,"parameters":[2],"expected":1.0},{"id":"c06254","function":"ss_overlap_coefficient","pair":37,"parameters":[3],"expected":1.0},{"id":"c06255","function":"ss_braun_blanquet","pair":37,"parameters":[1],"expected":1.0},{"id":"c06256","function":"ss_braun_blanquet","pair":37,"parameters":[2],"expected":1.0},{"id":"c06257","function":"ss_braun_blanquet","pair":37,"parameters":[3],"expected":1.0},{"id":"c06258","function":"ss_jaro_winkler","pair":37,"parameters":[0.2,6],"expected":1.0},{"id":"c06259","function":"ss_needleman_wunsch","pair":37,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06260","function":"ss_smith_waterman","pair":37,"parameters":[3,-1,-2],"expected":1.0},{"id":"c06261","function":"ss_affine_gap","pair":37,"parameters":[-2,-3,-2],"expected":1.0},{"id":"c06262","function":"ss_monge_elkan","pair":37,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c06263","function":"ss_monge_elkan","pair":37,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06264","function":"ss_monge_elkan","pair":37,"parameters":["jaro_winkler",2],"expected":1.0},{"id":"c06265","function":"ss_monge_elkan","pair":37,"parameters":["jaro_winkler",3],"expected":1.0},{"id":"c06266","function":"ss_monge_elkan","pair":37,"parameters":["jaro",0],"expected":1.0},{"id":"c06267","function":"ss_monge_elkan","pair":37,"parameters":["jaro",1],"expected":1.0},{"id":"c06268","function":"ss_monge_elkan","pair":37,"parameters":["jaro",2],"expected":1.0},{"id":"c06269","function":"ss_monge_elkan","pair":37,"parameters":["jaro",3],"expected":1.0},{"id":"c06270","function":"ss_monge_elkan","pair":37,"parameters":["levenshtein",0],"expected":1.0},{"id":"c06271","function":"ss_monge_elkan","pair":37,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06272","function":"ss_monge_elkan","pair":37,"parameters":["levenshtein",2],"expected":1.0},{"id":"c06273","function":"ss_monge_elkan","pair":37,"parameters":["levenshtein",3],"expected":1.0},{"id":"c06274","function":"ss_monge_elkan","pair":37,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c06275","function":"ss_monge_elkan","pair":37,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06276","function":"ss_monge_elkan","pair":37,"parameters":["needleman_wunsch",2],"expected":1.0},{"id":"c06277","function":"ss_monge_elkan","pair":37,"parameters":["needleman_wunsch",3],"expected":1.0},{"id":"c06278","function":"ss_monge_elkan","pair":37,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c06279","function":"ss_monge_elkan","pair":37,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06280","function":"ss_monge_elkan","pair":37,"parameters":["smith_waterman",2],"expected":1.0},{"id":"c06281","function":"ss_monge_elkan","pair":37,"parameters":["smith_waterman",3],"expected":1.0},{"id":"c06282","function":"ss_jaccard","pair":38,"parameters":[1],"expected":0.3333333333333333},{"id":"c06283","function":"ss_jaccard","pair":38,"parameters":[2],"expected":0.0},{"id":"c06284","function":"ss_jaccard","pair":38,"parameters":[3],"expected":0.0},{"id":"c06285","function":"ss_cosine","pair":38,"parameters":[1],"expected":0.5},{"id":"c06286","function":"ss_cosine","pair":38,"parameters":[2],"expected":0.0},{"id":"c06287","function":"ss_cosine","pair":38,"parameters":[3],"expected":0.0},{"id":"c06288","function":"ss_sorensen_dice","pair":38,"parameters":[1],"expected":0.5},{"id":"c06289","function":"ss_sorensen_dice","pair":38,"parameters":[2],"expected":0.0},{"id":"c06290","function":"ss_sorensen_dice","pair":38,"parameters":[3],"expected":0.0},{"id":"c06291","function":"ss_overlap_coefficient","pair":38,"parameters":[1],"expected":0.5},{"id":"c06292","function":"ss_overlap_coefficient","pair":38,"parameters":[2],"expected":0.0},{"id":"c06293","function":"ss_overlap_coefficient","pair":38,"parameters":[3],"expected":0.0},{"id":"c06294","function":"ss_braun_blanquet","pair":38,"parameters":[1],"expected":0.5},{"id":"c06295","function":"ss_braun_blanquet","pair":38,"parameters":[2],"expected":0.0},{"id":"c06296","function":"ss_braun_blanquet","pair":38,"parameters":[3],"expected":0.0},{"id":"c06297","function":"ss_jaro_winkler","pair":38,"parameters":[0.2,6],"expected":0.7333333333333333},{"id":"c06298","function":"ss_needleman_wunsch","pair":38,"parameters":[2,-2,-1],"expected":0.5},{"id":"c06299","function":"ss_smith_waterman","pair":38,"parameters":[3,-1,-2],"expected":0.5},{"id":"c06300","function":"ss_affine_gap","pair":38,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06301","function":"ss_monge_elkan","pair":38,"parameters":["jaro_winkler",0],"expected":0.7},{"id":"c06302","function":"ss_monge_elkan","pair":38,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06303","function":"ss_monge_elkan","pair":38,"parameters":["jaro_winkler",2],"expected":0.7},{"id":"c06304","function":"ss_monge_elkan","pair":38,"parameters":["jaro_winkler",3],"expected":0.7},{"id":"c06305","function":"ss_monge_elkan","pair":38,"parameters":["jaro",0],"expected":0.6666666666666666},{"id":"c06306","function":"ss_monge_elkan","pair":38,"parameters":["jaro",1],"expected":1.0},{"id":"c06307","function":"ss_monge_elkan","pair":38,"parameters":["jaro",2],"expected":0.6666666666666666},{"id":"c06308","function":"ss_monge_elkan","pair":38,"parameters":["jaro",3],"expected":0.6666666666666666},{"id":"c06309","function":"ss_monge_elkan","pair":38,"parameters":["levenshtein",0],"expected":0.5},{"id":"c06310","function":"ss_monge_elkan","pair":38,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06311","function":"ss_monge_elkan","pair":38,"parameters":["levenshtein",2],"expected":0.5},{"id":"c06312","function":"ss_monge_elkan","pair":38,"parameters":["levenshtein",3],"expected":0.5},{"id":"c06313","function":"ss_monge_elkan","pair":38,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c06314","function":"ss_monge_elkan","pair":38,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06315","function":"ss_monge_elkan","pair":38,"parameters":["needleman_wunsch",2],"expected":0.5},{"id":"c06316","function":"ss_monge_elkan","pair":38,"parameters":["needleman_wunsch",3],"expected":0.5},{"id":"c06317","function":"ss_monge_elkan","pair":38,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06318","function":"ss_monge_elkan","pair":38,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06319","function":"ss_monge_elkan","pair":38,"parameters":["smith_waterman",2],"expected":0.5},{"id":"c06320","function":"ss_monge_elkan","pair":38,"parameters":["smith_waterman",3],"expected":0.5},{"id":"c06321","function":"ss_jaccard","pair":39,"parameters":[1],"expected":0.5},{"id":"c06322","function":"ss_jaccard","pair":39,"parameters":[2],"expected":0.4166666666666667},{"id":"c06323","function":"ss_jaccard","pair":39,"parameters":[3],"expected":0.36363636363636365},{"id":"c06324","function":"ss_cosine","pair":39,"parameters":[1],"expected":0.6681531047810609},{"id":"c06325","function":"ss_cosine","pair":39,"parameters":[2],"expected":0.5976143046671968},{"id":"c06326","function":"ss_cosine","pair":39,"parameters":[3],"expected":0.5443310539518174},{"id":"c06327","function":"ss_sorensen_dice","pair":39,"parameters":[1],"expected":0.6666666666666666},{"id":"c06328","function":"ss_sorensen_dice","pair":39,"parameters":[2],"expected":0.5882352941176471},{"id":"c06329","function":"ss_sorensen_dice","pair":39,"parameters":[3],"expected":0.5333333333333333},{"id":"c06330","function":"ss_overlap_coefficient","pair":39,"parameters":[1],"expected":0.7142857142857143},{"id":"c06331","function":"ss_overlap_coefficient","pair":39,"parameters":[2],"expected":0.7142857142857143},{"id":"c06332","function":"ss_overlap_coefficient","pair":39,"parameters":[3],"expected":0.6666666666666666},{"id":"c06333","function":"ss_braun_blanquet","pair":39,"parameters":[1],"expected":0.625},{"id":"c06334","function":"ss_braun_blanquet","pair":39,"parameters":[2],"expected":0.5},{"id":"c06335","function":"ss_braun_blanquet","pair":39,"parameters":[3],"expected":0.4444444444444444},{"id":"c06336","function":"ss_jaro_winkler","pair":39,"parameters":[0.2,6],"expected":1.0},{"id":"c06337","function":"ss_needleman_wunsch","pair":39,"parameters":[2,-2,-1],"expected":0.7272727272727273},{"id":"c06338","function":"ss_smith_waterman","pair":39,"parameters":[3,-1,-2],"expected":0.75},{"id":"c06339","function":"ss_affine_gap","pair":39,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06340","function":"ss_monge_elkan","pair":39,"parameters":["jaro_winkler",0],"expected":0.6166666666666667},{"id":"c06341","function":"ss_monge_elkan","pair":39,"parameters":["jaro_winkler",1],"expected":0.6696428571428572},{"id":"c06342","function":"ss_monge_elkan","pair":39,"parameters":["jaro_winkler",2],"expected":0.8288095238095239},{"id":"c06343","function":"ss_monge_elkan","pair":39,"parameters":["jaro_winkler",3],"expected":0.8481481481481481},{"id":"c06344","function":"ss_monge_elkan","pair":39,"parameters":["jaro",0],"expected":0.6166666666666667},{"id":"c06345","function":"ss_monge_elkan","pair":39,"parameters":["jaro",1],"expected":0.6696428571428572},{"id":"c06346","function":"ss_monge_elkan","pair":39,"parameters":["jaro",2],"expected":0.8214285714285714},{"id":"c06347","function":"ss_monge_elkan","pair":39,"parameters":["jaro",3],"expected":0.8333333333333333},{"id":"c06348","function":"ss_monge_elkan","pair":39,"parameters":["levenshtein",0],"expected":0.55},{"id":"c06349","function":"ss_monge_elkan","pair":39,"parameters":["levenshtein",1],"expected":0.6696428571428572},{"id":"c06350","function":"ss_monge_elkan","pair":39,"parameters":["levenshtein",2],"expected":0.7678571428571428},{"id":"c06351","function":"ss_monge_elkan","pair":39,"parameters":["levenshtein",3],"expected":0.75},{"id":"c06352","function":"ss_monge_elkan","pair":39,"parameters":["needleman_wunsch",0],"expected":0.55},{"id":"c06353","function":"ss_monge_elkan","pair":39,"parameters":["needleman_wunsch",1],"expected":0.6696428571428572},{"id":"c06354","function":"ss_monge_elkan","pair":39,"parameters":["needleman_wunsch",2],"expected":0.7678571428571428},{"id":"c06355","function":"ss_monge_elkan","pair":39,"parameters":["needleman_wunsch",3],"expected":0.75},{"id":"c06356","function":"ss_monge_elkan","pair":39,"parameters":["smith_waterman",0],"expected":0.55},{"id":"c06357","function":"ss_monge_elkan","pair":39,"parameters":["smith_waterman",1],"expected":0.6696428571428572},{"id":"c06358","function":"ss_monge_elkan","pair":39,"parameters":["smith_waterman",2],"expected":0.7678571428571428},{"id":"c06359","function":"ss_monge_elkan","pair":39,"parameters":["smith_waterman",3],"expected":0.75},{"id":"c06360","function":"ss_jaccard","pair":40,"parameters":[1],"expected":0.38461538461538464},{"id":"c06361","function":"ss_jaccard","pair":40,"parameters":[2],"expected":0.3076923076923077},{"id":"c06362","function":"ss_jaccard","pair":40,"parameters":[3],"expected":0.25},{"id":"c06363","function":"ss_cosine","pair":40,"parameters":[1],"expected":0.5555555555555556},{"id":"c06364","function":"ss_cosine","pair":40,"parameters":[2],"expected":0.47140452079103173},{"id":"c06365","function":"ss_cosine","pair":40,"parameters":[3],"expected":0.4008918628686366},{"id":"c06366","function":"ss_sorensen_dice","pair":40,"parameters":[1],"expected":0.5555555555555556},{"id":"c06367","function":"ss_sorensen_dice","pair":40,"parameters":[2],"expected":0.47058823529411764},{"id":"c06368","function":"ss_sorensen_dice","pair":40,"parameters":[3],"expected":0.4},{"id":"c06369","function":"ss_overlap_coefficient","pair":40,"parameters":[1],"expected":0.5555555555555556},{"id":"c06370","function":"ss_overlap_coefficient","pair":40,"parameters":[2],"expected":0.5},{"id":"c06371","function":"ss_overlap_coefficient","pair":40,"parameters":[3],"expected":0.42857142857142855},{"id":"c06372","function":"ss_braun_blanquet","pair":40,"parameters":[1],"expected":0.5555555555555556},{"id":"c06373","function":"ss_braun_blanquet","pair":40,"parameters":[2],"expected":0.4444444444444444},{"id":"c06374","function":"ss_braun_blanquet","pair":40,"parameters":[3],"expected":0.375},{"id":"c06375","function":"ss_jaro_winkler","pair":40,"parameters":[0.2,6],"expected":1.0},{"id":"c06376","function":"ss_needleman_wunsch","pair":40,"parameters":[2,-2,-1],"expected":0.55},{"id":"c06377","function":"ss_smith_waterman","pair":40,"parameters":[3,-1,-2],"expected":0.5555555555555556},{"id":"c06378","function":"ss_affine_gap","pair":40,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06379","function":"ss_monge_elkan","pair":40,"parameters":["jaro_winkler",0],"expected":0.5},{"id":"c06380","function":"ss_monge_elkan","pair":40,"parameters":["jaro_winkler",1],"expected":0.5555555555555556},{"id":"c06381","function":"ss_monge_elkan","pair":40,"parameters":["jaro_winkler",2],"expected":0.5918981481481482},{"id":"c06382","function":"ss_monge_elkan","pair":40,"parameters":["jaro_winkler",3],"expected":0.6269841269841269},{"id":"c06383","function":"ss_monge_elkan","pair":40,"parameters":["jaro",0],"expected":0.5},{"id":"c06384","function":"ss_monge_elkan","pair":40,"parameters":["jaro",1],"expected":0.5555555555555556},{"id":"c06385","function":"ss_monge_elkan","pair":40,"parameters":["jaro",2],"expected":0.5879629629629629},{"id":"c06386","function":"ss_monge_elkan","pair":40,"parameters":["jaro",3],"expected":0.615079365079365},{"id":"c06387","function":"ss_monge_elkan","pair":40,"parameters":["levenshtein",0],"expected":0.5},{"id":"c06388","function":"ss_monge_elkan","pair":40,"parameters":["levenshtein",1],"expected":0.5555555555555556},{"id":"c06389","function":"ss_monge_elkan","pair":40,"parameters":["levenshtein",2],"expected":0.5590277777777778},{"id":"c06390","function":"ss_monge_elkan","pair":40,"parameters":["levenshtein",3],"expected":0.5565476190476191},{"id":"c06391","function":"ss_monge_elkan","pair":40,"parameters":["needleman_wunsch",0],"expected":0.525},{"id":"c06392","function":"ss_monge_elkan","pair":40,"parameters":["needleman_wunsch",1],"expected":0.5555555555555556},{"id":"c06393","function":"ss_monge_elkan","pair":40,"parameters":["needleman_wunsch",2],"expected":0.5590277777777778},{"id":"c06394","function":"ss_monge_elkan","pair":40,"parameters":["needleman_wunsch",3],"expected":0.5565476190476191},{"id":"c06395","function":"ss_monge_elkan","pair":40,"parameters":["smith_waterman",0],"expected":0.5625},{"id":"c06396","function":"ss_monge_elkan","pair":40,"parameters":["smith_waterman",1],"expected":0.5555555555555556},{"id":"c06397","function":"ss_monge_elkan","pair":40,"parameters":["smith_waterman",2],"expected":0.5590277777777778},{"id":"c06398","function":"ss_monge_elkan","pair":40,"parameters":["smith_waterman",3],"expected":0.5565476190476191},{"id":"c06399","function":"ss_jaccard","pair":41,"parameters":[1],"expected":0.7777777777777778},{"id":"c06400","function":"ss_jaccard","pair":41,"parameters":[2],"expected":0.6363636363636364},{"id":"c06401","function":"ss_jaccard","pair":41,"parameters":[3],"expected":0.45454545454545453},{"id":"c06402","function":"ss_cosine","pair":41,"parameters":[1],"expected":0.875},{"id":"c06403","function":"ss_cosine","pair":41,"parameters":[2],"expected":0.7777777777777778},{"id":"c06404","function":"ss_cosine","pair":41,"parameters":[3],"expected":0.625},{"id":"c06405","function":"ss_sorensen_dice","pair":41,"parameters":[1],"expected":0.875},{"id":"c06406","function":"ss_sorensen_dice","pair":41,"parameters":[2],"expected":0.7777777777777778},{"id":"c06407","function":"ss_sorensen_dice","pair":41,"parameters":[3],"expected":0.625},{"id":"c06408","function":"ss_overlap_coefficient","pair":41,"parameters":[1],"expected":0.875},{"id":"c06409","function":"ss_overlap_coefficient","pair":41,"parameters":[2],"expected":0.7777777777777778},{"id":"c06410","function":"ss_overlap_coefficient","pair":41,"parameters":[3],"expected":0.625},{"id":"c06411","function":"ss_braun_blanquet","pair":41,"parameters":[1],"expected":0.875},{"id":"c06412","function":"ss_braun_blanquet","pair":41,"parameters":[2],"expected":0.7777777777777778},{"id":"c06413","function":"ss_braun_blanquet","pair":41,"parameters":[3],"expected":0.625},{"id":"c06414","function":"ss_jaro_winkler","pair":41,"parameters":[0.2,6],"expected":1.0},{"id":"c06415","function":"ss_needleman_wunsch","pair":41,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06416","function":"ss_smith_waterman","pair":41,"parameters":[3,-1,-2],"expected":0.8666666666666667},{"id":"c06417","function":"ss_affine_gap","pair":41,"parameters":[-2,-3,-2],"expected":0.8},{"id":"c06418","function":"ss_monge_elkan","pair":41,"parameters":["jaro_winkler",0],"expected":0.7875000000000001},{"id":"c06419","function":"ss_monge_elkan","pair":41,"parameters":["jaro_winkler",1],"expected":0.875},{"id":"c06420","function":"ss_monge_elkan","pair":41,"parameters":["jaro_winkler",2],"expected":0.9296296296296297},{"id":"c06421","function":"ss_monge_elkan","pair":41,"parameters":["jaro_winkler",3],"expected":0.9249999999999999},{"id":"c06422","function":"ss_monge_elkan","pair":41,"parameters":["jaro",0],"expected":0.7375},{"id":"c06423","function":"ss_monge_elkan","pair":41,"parameters":["jaro",1],"expected":0.875},{"id":"c06424","function":"ss_monge_elkan","pair":41,"parameters":["jaro",2],"expected":0.9259259259259258},{"id":"c06425","function":"ss_monge_elkan","pair":41,"parameters":["jaro",3],"expected":0.9166666666666666},{"id":"c06426","function":"ss_monge_elkan","pair":41,"parameters":["levenshtein",0],"expected":0.475},{"id":"c06427","function":"ss_monge_elkan","pair":41,"parameters":["levenshtein",1],"expected":0.875},{"id":"c06428","function":"ss_monge_elkan","pair":41,"parameters":["levenshtein",2],"expected":0.8888888888888888},{"id":"c06429","function":"ss_monge_elkan","pair":41,"parameters":["levenshtein",3],"expected":0.8750000000000001},{"id":"c06430","function":"ss_monge_elkan","pair":41,"parameters":["needleman_wunsch",0],"expected":0.475},{"id":"c06431","function":"ss_monge_elkan","pair":41,"parameters":["needleman_wunsch",1],"expected":0.875},{"id":"c06432","function":"ss_monge_elkan","pair":41,"parameters":["needleman_wunsch",2],"expected":0.8888888888888888},{"id":"c06433","function":"ss_monge_elkan","pair":41,"parameters":["needleman_wunsch",3],"expected":0.875},{"id":"c06434","function":"ss_monge_elkan","pair":41,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c06435","function":"ss_monge_elkan","pair":41,"parameters":["smith_waterman",1],"expected":0.875},{"id":"c06436","function":"ss_monge_elkan","pair":41,"parameters":["smith_waterman",2],"expected":0.8888888888888888},{"id":"c06437","function":"ss_monge_elkan","pair":41,"parameters":["smith_waterman",3],"expected":0.8541666666666666},{"id":"c06438","function":"ss_jaccard","pair":42,"parameters":[1],"expected":0.7777777777777778},{"id":"c06439","function":"ss_jaccard","pair":42,"parameters":[2],"expected":0.6363636363636364},{"id":"c06440","function":"ss_jaccard","pair":42,"parameters":[3],"expected":0.45454545454545453},{"id":"c06441","function":"ss_cosine","pair":42,"parameters":[1],"expected":0.875},{"id":"c06442","function":"ss_cosine","pair":42,"parameters":[2],"expected":0.7777777777777778},{"id":"c06443","function":"ss_cosine","pair":42,"parameters":[3],"expected":0.625},{"id":"c06444","function":"ss_sorensen_dice","pair":42,"parameters":[1],"expected":0.875},{"id":"c06445","function":"ss_sorensen_dice","pair":42,"parameters":[2],"expected":0.7777777777777778},{"id":"c06446","function":"ss_sorensen_dice","pair":42,"parameters":[3],"expected":0.625},{"id":"c06447","function":"ss_overlap_coefficient","pair":42,"parameters":[1],"expected":0.875},{"id":"c06448","function":"ss_overlap_coefficient","pair":42,"parameters":[2],"expected":0.7777777777777778},{"id":"c06449","function":"ss_overlap_coefficient","pair":42,"parameters":[3],"expected":0.625},{"id":"c06450","function":"ss_braun_blanquet","pair":42,"parameters":[1],"expected":0.875},{"id":"c06451","function":"ss_braun_blanquet","pair":42,"parameters":[2],"expected":0.7777777777777778},{"id":"c06452","function":"ss_braun_blanquet","pair":42,"parameters":[3],"expected":0.625},{"id":"c06453","function":"ss_jaro_winkler","pair":42,"parameters":[0.2,6],"expected":1.0},{"id":"c06454","function":"ss_needleman_wunsch","pair":42,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06455","function":"ss_smith_waterman","pair":42,"parameters":[3,-1,-2],"expected":0.8666666666666667},{"id":"c06456","function":"ss_affine_gap","pair":42,"parameters":[-2,-3,-2],"expected":0.8},{"id":"c06457","function":"ss_monge_elkan","pair":42,"parameters":["jaro_winkler",0],"expected":0.7875000000000001},{"id":"c06458","function":"ss_monge_elkan","pair":42,"parameters":["jaro_winkler",1],"expected":0.875},{"id":"c06459","function":"ss_monge_elkan","pair":42,"parameters":["jaro_winkler",2],"expected":0.9296296296296297},{"id":"c06460","function":"ss_monge_elkan","pair":42,"parameters":["jaro_winkler",3],"expected":0.9249999999999999},{"id":"c06461","function":"ss_monge_elkan","pair":42,"parameters":["jaro",0],"expected":0.7375},{"id":"c06462","function":"ss_monge_elkan","pair":42,"parameters":["jaro",1],"expected":0.875},{"id":"c06463","function":"ss_monge_elkan","pair":42,"parameters":["jaro",2],"expected":0.9259259259259258},{"id":"c06464","function":"ss_monge_elkan","pair":42,"parameters":["jaro",3],"expected":0.9166666666666666},{"id":"c06465","function":"ss_monge_elkan","pair":42,"parameters":["levenshtein",0],"expected":0.475},{"id":"c06466","function":"ss_monge_elkan","pair":42,"parameters":["levenshtein",1],"expected":0.875},{"id":"c06467","function":"ss_monge_elkan","pair":42,"parameters":["levenshtein",2],"expected":0.8888888888888888},{"id":"c06468","function":"ss_monge_elkan","pair":42,"parameters":["levenshtein",3],"expected":0.8750000000000001},{"id":"c06469","function":"ss_monge_elkan","pair":42,"parameters":["needleman_wunsch",0],"expected":0.475},{"id":"c06470","function":"ss_monge_elkan","pair":42,"parameters":["needleman_wunsch",1],"expected":0.875},{"id":"c06471","function":"ss_monge_elkan","pair":42,"parameters":["needleman_wunsch",2],"expected":0.8888888888888888},{"id":"c06472","function":"ss_monge_elkan","pair":42,"parameters":["needleman_wunsch",3],"expected":0.875},{"id":"c06473","function":"ss_monge_elkan","pair":42,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c06474","function":"ss_monge_elkan","pair":42,"parameters":["smith_waterman",1],"expected":0.875},{"id":"c06475","function":"ss_monge_elkan","pair":42,"parameters":["smith_waterman",2],"expected":0.8888888888888888},{"id":"c06476","function":"ss_monge_elkan","pair":42,"parameters":["smith_waterman",3],"expected":0.8541666666666667},{"id":"c06477","function":"ss_jaccard","pair":43,"parameters":[1],"expected":0.8},{"id":"c06478","function":"ss_jaccard","pair":43,"parameters":[2],"expected":0.75},{"id":"c06479","function":"ss_jaccard","pair":43,"parameters":[3],"expected":0.6666666666666666},{"id":"c06480","function":"ss_cosine","pair":43,"parameters":[1],"expected":0.8944271909999159},{"id":"c06481","function":"ss_cosine","pair":43,"parameters":[2],"expected":0.8660254037844387},{"id":"c06482","function":"ss_cosine","pair":43,"parameters":[3],"expected":0.8164965809277261},{"id":"c06483","function":"ss_sorensen_dice","pair":43,"parameters":[1],"expected":0.8888888888888888},{"id":"c06484","function":"ss_sorensen_dice","pair":43,"parameters":[2],"expected":0.8571428571428571},{"id":"c06485","function":"ss_sorensen_dice","pair":43,"parameters":[3],"expected":0.8},{"id":"c06486","function":"ss_overlap_coefficient","pair":43,"parameters":[1],"expected":1.0},{"id":"c06487","function":"ss_overlap_coefficient","pair":43,"parameters":[2],"expected":1.0},{"id":"c06488","function":"ss_overlap_coefficient","pair":43,"parameters":[3],"expected":1.0},{"id":"c06489","function":"ss_braun_blanquet","pair":43,"parameters":[1],"expected":0.8},{"id":"c06490","function":"ss_braun_blanquet","pair":43,"parameters":[2],"expected":0.75},{"id":"c06491","function":"ss_braun_blanquet","pair":43,"parameters":[3],"expected":0.6666666666666666},{"id":"c06492","function":"ss_jaro_winkler","pair":43,"parameters":[0.2,6],"expected":0.9866666666666667},{"id":"c06493","function":"ss_needleman_wunsch","pair":43,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06494","function":"ss_smith_waterman","pair":43,"parameters":[3,-1,-2],"expected":1.0},{"id":"c06495","function":"ss_affine_gap","pair":43,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06496","function":"ss_monge_elkan","pair":43,"parameters":["jaro_winkler",0],"expected":0.96},{"id":"c06497","function":"ss_monge_elkan","pair":43,"parameters":["jaro_winkler",1],"expected":0.9},{"id":"c06498","function":"ss_monge_elkan","pair":43,"parameters":["jaro_winkler",2],"expected":0.875},{"id":"c06499","function":"ss_monge_elkan","pair":43,"parameters":["jaro_winkler",3],"expected":0.8333333333333333},{"id":"c06500","function":"ss_monge_elkan","pair":43,"parameters":["jaro",0],"expected":0.9333333333333332},{"id":"c06501","function":"ss_monge_elkan","pair":43,"parameters":["jaro",1],"expected":0.9},{"id":"c06502","function":"ss_monge_elkan","pair":43,"parameters":["jaro",2],"expected":0.875},{"id":"c06503","function":"ss_monge_elkan","pair":43,"parameters":["jaro",3],"expected":0.8333333333333333},{"id":"c06504","function":"ss_monge_elkan","pair":43,"parameters":["levenshtein",0],"expected":0.8},{"id":"c06505","function":"ss_monge_elkan","pair":43,"parameters":["levenshtein",1],"expected":0.9},{"id":"c06506","function":"ss_monge_elkan","pair":43,"parameters":["levenshtein",2],"expected":0.875},{"id":"c06507","function":"ss_monge_elkan","pair":43,"parameters":["levenshtein",3],"expected":0.8888888888888888},{"id":"c06508","function":"ss_monge_elkan","pair":43,"parameters":["needleman_wunsch",0],"expected":0.8},{"id":"c06509","function":"ss_monge_elkan","pair":43,"parameters":["needleman_wunsch",1],"expected":0.9},{"id":"c06510","function":"ss_monge_elkan","pair":43,"parameters":["needleman_wunsch",2],"expected":0.90625},{"id":"c06511","function":"ss_monge_elkan","pair":43,"parameters":["needleman_wunsch",3],"expected":0.9166666666666667},{"id":"c06512","function":"ss_monge_elkan","pair":43,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c06513","function":"ss_monge_elkan","pair":43,"parameters":["smith_waterman",1],"expected":0.9},{"id":"c06514","function":"ss_monge_elkan","pair":43,"parameters":["smith_waterman",2],"expected":0.9375},{"id":"c06515","function":"ss_monge_elkan","pair":43,"parameters":["smith_waterman",3],"expected":0.9444444444444444},{"id":"c06516","function":"ss_jaccard","pair":44,"parameters":[1],"expected":0.5},{"id":"c06517","function":"ss_jaccard","pair":44,"parameters":[2],"expected":0.0},{"id":"c06518","function":"ss_jaccard","pair":44,"parameters":[3],"expected":0.0},{"id":"c06519","function":"ss_cosine","pair":44,"parameters":[1],"expected":0.6666666666666666},{"id":"c06520","function":"ss_cosine","pair":44,"parameters":[2],"expected":0.0},{"id":"c06521","function":"ss_cosine","pair":44,"parameters":[3],"expected":0.0},{"id":"c06522","function":"ss_sorensen_dice","pair":44,"parameters":[1],"expected":0.6666666666666666},{"id":"c06523","function":"ss_sorensen_dice","pair":44,"parameters":[2],"expected":0.0},{"id":"c06524","function":"ss_sorensen_dice","pair":44,"parameters":[3],"expected":0.0},{"id":"c06525","function":"ss_overlap_coefficient","pair":44,"parameters":[1],"expected":0.6666666666666666},{"id":"c06526","function":"ss_overlap_coefficient","pair":44,"parameters":[2],"expected":0.0},{"id":"c06527","function":"ss_overlap_coefficient","pair":44,"parameters":[3],"expected":0.0},{"id":"c06528","function":"ss_braun_blanquet","pair":44,"parameters":[1],"expected":0.6666666666666666},{"id":"c06529","function":"ss_braun_blanquet","pair":44,"parameters":[2],"expected":0.0},{"id":"c06530","function":"ss_braun_blanquet","pair":44,"parameters":[3],"expected":0.0},{"id":"c06531","function":"ss_jaro_winkler","pair":44,"parameters":[0.2,6],"expected":0.8222222222222222},{"id":"c06532","function":"ss_needleman_wunsch","pair":44,"parameters":[2,-2,-1],"expected":0.8333333333333334},{"id":"c06533","function":"ss_smith_waterman","pair":44,"parameters":[3,-1,-2],"expected":0.5555555555555556},{"id":"c06534","function":"ss_affine_gap","pair":44,"parameters":[-2,-3,-2],"expected":0.33333333333333337},{"id":"c06535","function":"ss_monge_elkan","pair":44,"parameters":["jaro_winkler",0],"expected":0.7999999999999999},{"id":"c06536","function":"ss_monge_elkan","pair":44,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06537","function":"ss_monge_elkan","pair":44,"parameters":["jaro_winkler",2],"expected":0.85},{"id":"c06538","function":"ss_monge_elkan","pair":44,"parameters":["jaro_winkler",3],"expected":0.7999999999999999},{"id":"c06539","function":"ss_monge_elkan","pair":44,"parameters":["jaro",0],"expected":0.7777777777777777},{"id":"c06540","function":"ss_monge_elkan","pair":44,"parameters":["jaro",1],"expected":1.0},{"id":"c06541","function":"ss_monge_elkan","pair":44,"parameters":["jaro",2],"expected":0.8333333333333333},{"id":"c06542","function":"ss_monge_elkan","pair":44,"parameters":["jaro",3],"expected":0.7777777777777777},{"id":"c06543","function":"ss_monge_elkan","pair":44,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c06544","function":"ss_monge_elkan","pair":44,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06545","function":"ss_monge_elkan","pair":44,"parameters":["levenshtein",2],"expected":0.75},{"id":"c06546","function":"ss_monge_elkan","pair":44,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c06547","function":"ss_monge_elkan","pair":44,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c06548","function":"ss_monge_elkan","pair":44,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06549","function":"ss_monge_elkan","pair":44,"parameters":["needleman_wunsch",2],"expected":0.75},{"id":"c06550","function":"ss_monge_elkan","pair":44,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c06551","function":"ss_monge_elkan","pair":44,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06552","function":"ss_monge_elkan","pair":44,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06553","function":"ss_monge_elkan","pair":44,"parameters":["smith_waterman",2],"expected":0.75},{"id":"c06554","function":"ss_monge_elkan","pair":44,"parameters":["smith_waterman",3],"expected":0.5},{"id":"c06555","function":"ss_jaccard","pair":45,"parameters":[1],"expected":1.0},{"id":"c06556","function":"ss_jaccard","pair":45,"parameters":[2],"expected":0.5},{"id":"c06557","function":"ss_jaccard","pair":45,"parameters":[3],"expected":0.0},{"id":"c06558","function":"ss_cosine","pair":45,"parameters":[1],"expected":1.0},{"id":"c06559","function":"ss_cosine","pair":45,"parameters":[2],"expected":0.6666666666666666},{"id":"c06560","function":"ss_cosine","pair":45,"parameters":[3],"expected":0.0},{"id":"c06561","function":"ss_sorensen_dice","pair":45,"parameters":[1],"expected":1.0},{"id":"c06562","function":"ss_sorensen_dice","pair":45,"parameters":[2],"expected":0.6666666666666666},{"id":"c06563","function":"ss_sorensen_dice","pair":45,"parameters":[3],"expected":0.0},{"id":"c06564","function":"ss_overlap_coefficient","pair":45,"parameters":[1],"expected":1.0},{"id":"c06565","function":"ss_overlap_coefficient","pair":45,"parameters":[2],"expected":0.6666666666666666},{"id":"c06566","function":"ss_overlap_coefficient","pair":45,"parameters":[3],"expected":0.0},{"id":"c06567","function":"ss_braun_blanquet","pair":45,"parameters":[1],"expected":1.0},{"id":"c06568","function":"ss_braun_blanquet","pair":45,"parameters":[2],"expected":0.6666666666666666},{"id":"c06569","function":"ss_braun_blanquet","pair":45,"parameters":[3],"expected":0.0},{"id":"c06570","function":"ss_jaro_winkler","pair":45,"parameters":[0.2,6],"expected":0.7333333333333333},{"id":"c06571","function":"ss_needleman_wunsch","pair":45,"parameters":[2,-2,-1],"expected":0.5},{"id":"c06572","function":"ss_smith_waterman","pair":45,"parameters":[3,-1,-2],"expected":0.5},{"id":"c06573","function":"ss_affine_gap","pair":45,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06574","function":"ss_monge_elkan","pair":45,"parameters":["jaro_winkler",0],"expected":0.7},{"id":"c06575","function":"ss_monge_elkan","pair":45,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06576","function":"ss_monge_elkan","pair":45,"parameters":["jaro_winkler",2],"expected":1.0},{"id":"c06577","function":"ss_monge_elkan","pair":45,"parameters":["jaro_winkler",3],"expected":0.8111111111111111},{"id":"c06578","function":"ss_monge_elkan","pair":45,"parameters":["jaro",0],"expected":0.6666666666666666},{"id":"c06579","function":"ss_monge_elkan","pair":45,"parameters":["jaro",1],"expected":1.0},{"id":"c06580","function":"ss_monge_elkan","pair":45,"parameters":["jaro",2],"expected":1.0},{"id":"c06581","function":"ss_monge_elkan","pair":45,"parameters":["jaro",3],"expected":0.7777777777777777},{"id":"c06582","function":"ss_monge_elkan","pair":45,"parameters":["levenshtein",0],"expected":0.5},{"id":"c06583","function":"ss_monge_elkan","pair":45,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06584","function":"ss_monge_elkan","pair":45,"parameters":["levenshtein",2],"expected":1.0},{"id":"c06585","function":"ss_monge_elkan","pair":45,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c06586","function":"ss_monge_elkan","pair":45,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c06587","function":"ss_monge_elkan","pair":45,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06588","function":"ss_monge_elkan","pair":45,"parameters":["needleman_wunsch",2],"expected":1.0},{"id":"c06589","function":"ss_monge_elkan","pair":45,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c06590","function":"ss_monge_elkan","pair":45,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06591","function":"ss_monge_elkan","pair":45,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06592","function":"ss_monge_elkan","pair":45,"parameters":["smith_waterman",2],"expected":1.0},{"id":"c06593","function":"ss_monge_elkan","pair":45,"parameters":["smith_waterman",3],"expected":0.6666666666666666},{"id":"c06594","function":"ss_jaccard","pair":46,"parameters":[1],"expected":0.5},{"id":"c06595","function":"ss_jaccard","pair":46,"parameters":[2],"expected":0.2},{"id":"c06596","function":"ss_jaccard","pair":46,"parameters":[3],"expected":0.0},{"id":"c06597","function":"ss_cosine","pair":46,"parameters":[1],"expected":0.6666666666666666},{"id":"c06598","function":"ss_cosine","pair":46,"parameters":[2],"expected":0.3333333333333333},{"id":"c06599","function":"ss_cosine","pair":46,"parameters":[3],"expected":0.0},{"id":"c06600","function":"ss_sorensen_dice","pair":46,"parameters":[1],"expected":0.6666666666666666},{"id":"c06601","function":"ss_sorensen_dice","pair":46,"parameters":[2],"expected":0.3333333333333333},{"id":"c06602","function":"ss_sorensen_dice","pair":46,"parameters":[3],"expected":0.0},{"id":"c06603","function":"ss_overlap_coefficient","pair":46,"parameters":[1],"expected":0.6666666666666666},{"id":"c06604","function":"ss_overlap_coefficient","pair":46,"parameters":[2],"expected":0.3333333333333333},{"id":"c06605","function":"ss_overlap_coefficient","pair":46,"parameters":[3],"expected":0.0},{"id":"c06606","function":"ss_braun_blanquet","pair":46,"parameters":[1],"expected":0.6666666666666666},{"id":"c06607","function":"ss_braun_blanquet","pair":46,"parameters":[2],"expected":0.3333333333333333},{"id":"c06608","function":"ss_braun_blanquet","pair":46,"parameters":[3],"expected":0.0},{"id":"c06609","function":"ss_jaro_winkler","pair":46,"parameters":[0.2,6],"expected":0.9},{"id":"c06610","function":"ss_needleman_wunsch","pair":46,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06611","function":"ss_smith_waterman","pair":46,"parameters":[3,-1,-2],"expected":0.6666666666666666},{"id":"c06612","function":"ss_affine_gap","pair":46,"parameters":[-2,-3,-2],"expected":0.5},{"id":"c06613","function":"ss_monge_elkan","pair":46,"parameters":["jaro_winkler",0],"expected":0.8666666666666667},{"id":"c06614","function":"ss_monge_elkan","pair":46,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06615","function":"ss_monge_elkan","pair":46,"parameters":["jaro_winkler",2],"expected":0.9},{"id":"c06616","function":"ss_monge_elkan","pair":46,"parameters":["jaro_winkler",3],"expected":0.8111111111111111},{"id":"c06617","function":"ss_monge_elkan","pair":46,"parameters":["jaro",0],"expected":0.8333333333333334},{"id":"c06618","function":"ss_monge_elkan","pair":46,"parameters":["jaro",1],"expected":1.0},{"id":"c06619","function":"ss_monge_elkan","pair":46,"parameters":["jaro",2],"expected":0.8888888888888888},{"id":"c06620","function":"ss_monge_elkan","pair":46,"parameters":["jaro",3],"expected":0.7777777777777777},{"id":"c06621","function":"ss_monge_elkan","pair":46,"parameters":["levenshtein",0],"expected":0.75},{"id":"c06622","function":"ss_monge_elkan","pair":46,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06623","function":"ss_monge_elkan","pair":46,"parameters":["levenshtein",2],"expected":0.8333333333333334},{"id":"c06624","function":"ss_monge_elkan","pair":46,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c06625","function":"ss_monge_elkan","pair":46,"parameters":["needleman_wunsch",0],"expected":0.75},{"id":"c06626","function":"ss_monge_elkan","pair":46,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06627","function":"ss_monge_elkan","pair":46,"parameters":["needleman_wunsch",2],"expected":0.8333333333333334},{"id":"c06628","function":"ss_monge_elkan","pair":46,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c06629","function":"ss_monge_elkan","pair":46,"parameters":["smith_waterman",0],"expected":0.625},{"id":"c06630","function":"ss_monge_elkan","pair":46,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06631","function":"ss_monge_elkan","pair":46,"parameters":["smith_waterman",2],"expected":0.8333333333333334},{"id":"c06632","function":"ss_monge_elkan","pair":46,"parameters":["smith_waterman",3],"expected":0.5833333333333333},{"id":"c06633","function":"ss_jaccard","pair":47,"parameters":[1],"expected":0.3333333333333333},{"id":"c06634","function":"ss_jaccard","pair":47,"parameters":[2],"expected":0.0},{"id":"c06635","function":"ss_jaccard","pair":47,"parameters":[3],"expected":0.0},{"id":"c06636","function":"ss_cosine","pair":47,"parameters":[1],"expected":0.5},{"id":"c06637","function":"ss_cosine","pair":47,"parameters":[2],"expected":0.0},{"id":"c06638","function":"ss_cosine","pair":47,"parameters":[3],"expected":0.0},{"id":"c06639","function":"ss_sorensen_dice","pair":47,"parameters":[1],"expected":0.5},{"id":"c06640","function":"ss_sorensen_dice","pair":47,"parameters":[2],"expected":0.0},{"id":"c06641","function":"ss_sorensen_dice","pair":47,"parameters":[3],"expected":0.0},{"id":"c06642","function":"ss_overlap_coefficient","pair":47,"parameters":[1],"expected":0.5},{"id":"c06643","function":"ss_overlap_coefficient","pair":47,"parameters":[2],"expected":0.0},{"id":"c06644","function":"ss_overlap_coefficient","pair":47,"parameters":[3],"expected":0.0},{"id":"c06645","function":"ss_braun_blanquet","pair":47,"parameters":[1],"expected":0.5},{"id":"c06646","function":"ss_braun_blanquet","pair":47,"parameters":[2],"expected":0.0},{"id":"c06647","function":"ss_braun_blanquet","pair":47,"parameters":[3],"expected":0.0},{"id":"c06648","function":"ss_jaro_winkler","pair":47,"parameters":[0.2,6],"expected":0.7333333333333333},{"id":"c06649","function":"ss_needleman_wunsch","pair":47,"parameters":[2,-2,-1],"expected":0.5},{"id":"c06650","function":"ss_smith_waterman","pair":47,"parameters":[3,-1,-2],"expected":0.5},{"id":"c06651","function":"ss_affine_gap","pair":47,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06652","function":"ss_monge_elkan","pair":47,"parameters":["jaro_winkler",0],"expected":0.7},{"id":"c06653","function":"ss_monge_elkan","pair":47,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c06654","function":"ss_monge_elkan","pair":47,"parameters":["jaro_winkler",2],"expected":0.7},{"id":"c06655","function":"ss_monge_elkan","pair":47,"parameters":["jaro_winkler",3],"expected":0.7},{"id":"c06656","function":"ss_monge_elkan","pair":47,"parameters":["jaro",0],"expected":0.6666666666666666},{"id":"c06657","function":"ss_monge_elkan","pair":47,"parameters":["jaro",1],"expected":1.0},{"id":"c06658","function":"ss_monge_elkan","pair":47,"parameters":["jaro",2],"expected":0.6666666666666666},{"id":"c06659","function":"ss_monge_elkan","pair":47,"parameters":["jaro",3],"expected":0.6666666666666666},{"id":"c06660","function":"ss_monge_elkan","pair":47,"parameters":["levenshtein",0],"expected":0.5},{"id":"c06661","function":"ss_monge_elkan","pair":47,"parameters":["levenshtein",1],"expected":1.0},{"id":"c06662","function":"ss_monge_elkan","pair":47,"parameters":["levenshtein",2],"expected":0.5},{"id":"c06663","function":"ss_monge_elkan","pair":47,"parameters":["levenshtein",3],"expected":0.5},{"id":"c06664","function":"ss_monge_elkan","pair":47,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c06665","function":"ss_monge_elkan","pair":47,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c06666","function":"ss_monge_elkan","pair":47,"parameters":["needleman_wunsch",2],"expected":0.5},{"id":"c06667","function":"ss_monge_elkan","pair":47,"parameters":["needleman_wunsch",3],"expected":0.5},{"id":"c06668","function":"ss_monge_elkan","pair":47,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06669","function":"ss_monge_elkan","pair":47,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c06670","function":"ss_monge_elkan","pair":47,"parameters":["smith_waterman",2],"expected":0.5},{"id":"c06671","function":"ss_monge_elkan","pair":47,"parameters":["smith_waterman",3],"expected":0.5},{"id":"c06672","function":"ss_jaccard","pair":48,"parameters":[1],"expected":0.0},{"id":"c06673","function":"ss_jaccard","pair":48,"parameters":[2],"expected":0.0},{"id":"c06674","function":"ss_jaccard","pair":48,"parameters":[3],"expected":0.0},{"id":"c06675","function":"ss_cosine","pair":48,"parameters":[1],"expected":0.0},{"id":"c06676","function":"ss_cosine","pair":48,"parameters":[2],"expected":0.0},{"id":"c06677","function":"ss_cosine","pair":48,"parameters":[3],"expected":0.0},{"id":"c06678","function":"ss_sorensen_dice","pair":48,"parameters":[1],"expected":0.0},{"id":"c06679","function":"ss_sorensen_dice","pair":48,"parameters":[2],"expected":0.0},{"id":"c06680","function":"ss_sorensen_dice","pair":48,"parameters":[3],"expected":0.0},{"id":"c06681","function":"ss_overlap_coefficient","pair":48,"parameters":[1],"expected":0.0},{"id":"c06682","function":"ss_overlap_coefficient","pair":48,"parameters":[2],"expected":0.0},{"id":"c06683","function":"ss_overlap_coefficient","pair":48,"parameters":[3],"expected":0.0},{"id":"c06684","function":"ss_braun_blanquet","pair":48,"parameters":[1],"expected":0.0},{"id":"c06685","function":"ss_braun_blanquet","pair":48,"parameters":[2],"expected":0.0},{"id":"c06686","function":"ss_braun_blanquet","pair":48,"parameters":[3],"expected":0.0},{"id":"c06687","function":"ss_jaro_winkler","pair":48,"parameters":[0.2,6],"expected":0.0},{"id":"c06688","function":"ss_needleman_wunsch","pair":48,"parameters":[2,-2,-1],"expected":0.0},{"id":"c06689","function":"ss_smith_waterman","pair":48,"parameters":[3,-1,-2],"expected":0.0},{"id":"c06690","function":"ss_affine_gap","pair":48,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06691","function":"ss_monge_elkan","pair":48,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c06692","function":"ss_monge_elkan","pair":48,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c06693","function":"ss_monge_elkan","pair":48,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c06694","function":"ss_monge_elkan","pair":48,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c06695","function":"ss_monge_elkan","pair":48,"parameters":["jaro",0],"expected":0.0},{"id":"c06696","function":"ss_monge_elkan","pair":48,"parameters":["jaro",1],"expected":0.0},{"id":"c06697","function":"ss_monge_elkan","pair":48,"parameters":["jaro",2],"expected":0.0},{"id":"c06698","function":"ss_monge_elkan","pair":48,"parameters":["jaro",3],"expected":0.0},{"id":"c06699","function":"ss_monge_elkan","pair":48,"parameters":["levenshtein",0],"expected":0.0},{"id":"c06700","function":"ss_monge_elkan","pair":48,"parameters":["levenshtein",1],"expected":0.0},{"id":"c06701","function":"ss_monge_elkan","pair":48,"parameters":["levenshtein",2],"expected":0.0},{"id":"c06702","function":"ss_monge_elkan","pair":48,"parameters":["levenshtein",3],"expected":0.0},{"id":"c06703","function":"ss_monge_elkan","pair":48,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c06704","function":"ss_monge_elkan","pair":48,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c06705","function":"ss_monge_elkan","pair":48,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c06706","function":"ss_monge_elkan","pair":48,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c06707","function":"ss_monge_elkan","pair":48,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c06708","function":"ss_monge_elkan","pair":48,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c06709","function":"ss_monge_elkan","pair":48,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c06710","function":"ss_monge_elkan","pair":48,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c06711","function":"ss_jaccard","pair":49,"parameters":[1],"expected":0.5},{"id":"c06712","function":"ss_jaccard","pair":49,"parameters":[2],"expected":0.25},{"id":"c06713","function":"ss_jaccard","pair":49,"parameters":[3],"expected":0.14285714285714285},{"id":"c06714","function":"ss_cosine","pair":49,"parameters":[1],"expected":0.6666666666666666},{"id":"c06715","function":"ss_cosine","pair":49,"parameters":[2],"expected":0.4},{"id":"c06716","function":"ss_cosine","pair":49,"parameters":[3],"expected":0.25},{"id":"c06717","function":"ss_sorensen_dice","pair":49,"parameters":[1],"expected":0.6666666666666666},{"id":"c06718","function":"ss_sorensen_dice","pair":49,"parameters":[2],"expected":0.4},{"id":"c06719","function":"ss_sorensen_dice","pair":49,"parameters":[3],"expected":0.25},{"id":"c06720","function":"ss_overlap_coefficient","pair":49,"parameters":[1],"expected":0.6666666666666666},{"id":"c06721","function":"ss_overlap_coefficient","pair":49,"parameters":[2],"expected":0.4},{"id":"c06722","function":"ss_overlap_coefficient","pair":49,"parameters":[3],"expected":0.25},{"id":"c06723","function":"ss_braun_blanquet","pair":49,"parameters":[1],"expected":0.6666666666666666},{"id":"c06724","function":"ss_braun_blanquet","pair":49,"parameters":[2],"expected":0.4},{"id":"c06725","function":"ss_braun_blanquet","pair":49,"parameters":[3],"expected":0.25},{"id":"c06726","function":"ss_jaro_winkler","pair":49,"parameters":[0.2,6],"expected":0.8222222222222222},{"id":"c06727","function":"ss_needleman_wunsch","pair":49,"parameters":[2,-2,-1],"expected":0.8333333333333334},{"id":"c06728","function":"ss_smith_waterman","pair":49,"parameters":[3,-1,-2],"expected":0.5555555555555556},{"id":"c06729","function":"ss_affine_gap","pair":49,"parameters":[-2,-3,-2],"expected":0.33333333333333337},{"id":"c06730","function":"ss_monge_elkan","pair":49,"parameters":["jaro_winkler",0],"expected":0.7999999999999999},{"id":"c06731","function":"ss_monge_elkan","pair":49,"parameters":["jaro_winkler",1],"expected":0.6666666666666666},{"id":"c06732","function":"ss_monge_elkan","pair":49,"parameters":["jaro_winkler",2],"expected":0.6733333333333333},{"id":"c06733","function":"ss_monge_elkan","pair":49,"parameters":["jaro_winkler",3],"expected":0.7333333333333332},{"id":"c06734","function":"ss_monge_elkan","pair":49,"parameters":["jaro",0],"expected":0.7777777777777777},{"id":"c06735","function":"ss_monge_elkan","pair":49,"parameters":["jaro",1],"expected":0.6666666666666666},{"id":"c06736","function":"ss_monge_elkan","pair":49,"parameters":["jaro",2],"expected":0.6666666666666666},{"id":"c06737","function":"ss_monge_elkan","pair":49,"parameters":["jaro",3],"expected":0.7222222222222221},{"id":"c06738","function":"ss_monge_elkan","pair":49,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c06739","function":"ss_monge_elkan","pair":49,"parameters":["levenshtein",1],"expected":0.6666666666666666},{"id":"c06740","function":"ss_monge_elkan","pair":49,"parameters":["levenshtein",2],"expected":0.6},{"id":"c06741","function":"ss_monge_elkan","pair":49,"parameters":["levenshtein",3],"expected":0.5833333333333335},{"id":"c06742","function":"ss_monge_elkan","pair":49,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c06743","function":"ss_monge_elkan","pair":49,"parameters":["needleman_wunsch",1],"expected":0.6666666666666666},{"id":"c06744","function":"ss_monge_elkan","pair":49,"parameters":["needleman_wunsch",2],"expected":0.6},{"id":"c06745","function":"ss_monge_elkan","pair":49,"parameters":["needleman_wunsch",3],"expected":0.5833333333333333},{"id":"c06746","function":"ss_monge_elkan","pair":49,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06747","function":"ss_monge_elkan","pair":49,"parameters":["smith_waterman",1],"expected":0.6666666666666666},{"id":"c06748","function":"ss_monge_elkan","pair":49,"parameters":["smith_waterman",2],"expected":0.6},{"id":"c06749","function":"ss_monge_elkan","pair":49,"parameters":["smith_waterman",3],"expected":0.5833333333333333},{"id":"c06750","function":"ss_jaccard","pair":50,"parameters":[1],"expected":0.2222222222222222},{"id":"c06751","function":"ss_jaccard","pair":50,"parameters":[2],"expected":0.0},{"id":"c06752","function":"ss_jaccard","pair":50,"parameters":[3],"expected":0.0},{"id":"c06753","function":"ss_cosine","pair":50,"parameters":[1],"expected":0.3651483716701107},{"id":"c06754","function":"ss_cosine","pair":50,"parameters":[2],"expected":0.0},{"id":"c06755","function":"ss_cosine","pair":50,"parameters":[3],"expected":0.0},{"id":"c06756","function":"ss_sorensen_dice","pair":50,"parameters":[1],"expected":0.36363636363636365},{"id":"c06757","function":"ss_sorensen_dice","pair":50,"parameters":[2],"expected":0.0},{"id":"c06758","function":"ss_sorensen_dice","pair":50,"parameters":[3],"expected":0.0},{"id":"c06759","function":"ss_overlap_coefficient","pair":50,"parameters":[1],"expected":0.4},{"id":"c06760","function":"ss_overlap_coefficient","pair":50,"parameters":[2],"expected":0.0},{"id":"c06761","function":"ss_overlap_coefficient","pair":50,"parameters":[3],"expected":0.0},{"id":"c06762","function":"ss_braun_blanquet","pair":50,"parameters":[1],"expected":0.3333333333333333},{"id":"c06763","function":"ss_braun_blanquet","pair":50,"parameters":[2],"expected":0.0},{"id":"c06764","function":"ss_braun_blanquet","pair":50,"parameters":[3],"expected":0.0},{"id":"c06765","function":"ss_jaro_winkler","pair":50,"parameters":[0.2,6],"expected":0.6622222222222223},{"id":"c06766","function":"ss_needleman_wunsch","pair":50,"parameters":[2,-2,-1],"expected":0.25},{"id":"c06767","function":"ss_smith_waterman","pair":50,"parameters":[3,-1,-2],"expected":0.3333333333333333},{"id":"c06768","function":"ss_affine_gap","pair":50,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06769","function":"ss_monge_elkan","pair":50,"parameters":["jaro_winkler",0],"expected":0.6200000000000001},{"id":"c06770","function":"ss_monge_elkan","pair":50,"parameters":["jaro_winkler",1],"expected":0.3666666666666667},{"id":"c06771","function":"ss_monge_elkan","pair":50,"parameters":["jaro_winkler",2],"expected":0.46499999999999997},{"id":"c06772","function":"ss_monge_elkan","pair":50,"parameters":["jaro_winkler",3],"expected":0.5703703703703703},{"id":"c06773","function":"ss_monge_elkan","pair":50,"parameters":["jaro",0],"expected":0.5777777777777778},{"id":"c06774","function":"ss_monge_elkan","pair":50,"parameters":["jaro",1],"expected":0.3666666666666667},{"id":"c06775","function":"ss_monge_elkan","pair":50,"parameters":["jaro",2],"expected":0.45},{"id":"c06776","function":"ss_monge_elkan","pair":50,"parameters":["jaro",3],"expected":0.5509259259259258},{"id":"c06777","function":"ss_monge_elkan","pair":50,"parameters":["levenshtein",0],"expected":0.33333333333333337},{"id":"c06778","function":"ss_monge_elkan","pair":50,"parameters":["levenshtein",1],"expected":0.3666666666666667},{"id":"c06779","function":"ss_monge_elkan","pair":50,"parameters":["levenshtein",2],"expected":0.3375},{"id":"c06780","function":"ss_monge_elkan","pair":50,"parameters":["levenshtein",3],"expected":0.38888888888888895},{"id":"c06781","function":"ss_monge_elkan","pair":50,"parameters":["needleman_wunsch",0],"expected":0.3333333333333333},{"id":"c06782","function":"ss_monge_elkan","pair":50,"parameters":["needleman_wunsch",1],"expected":0.3666666666666667},{"id":"c06783","function":"ss_monge_elkan","pair":50,"parameters":["needleman_wunsch",2],"expected":0.3375},{"id":"c06784","function":"ss_monge_elkan","pair":50,"parameters":["needleman_wunsch",3],"expected":0.38888888888888884},{"id":"c06785","function":"ss_monge_elkan","pair":50,"parameters":["smith_waterman",0],"expected":0.3},{"id":"c06786","function":"ss_monge_elkan","pair":50,"parameters":["smith_waterman",1],"expected":0.3666666666666667},{"id":"c06787","function":"ss_monge_elkan","pair":50,"parameters":["smith_waterman",2],"expected":0.3375},{"id":"c06788","function":"ss_monge_elkan","pair":50,"parameters":["smith_waterman",3],"expected":0.34027777777777773},{"id":"c06789","function":"ss_jaccard","pair":51,"parameters":[1],"expected":0.7777777777777778},{"id":"c06790","function":"ss_jaccard","pair":51,"parameters":[2],"expected":0.5555555555555556},{"id":"c06791","function":"ss_jaccard","pair":51,"parameters":[3],"expected":0.3333333333333333},{"id":"c06792","function":"ss_cosine","pair":51,"parameters":[1],"expected":0.875},{"id":"c06793","function":"ss_cosine","pair":51,"parameters":[2],"expected":0.7142857142857143},{"id":"c06794","function":"ss_cosine","pair":51,"parameters":[3],"expected":0.5},{"id":"c06795","function":"ss_sorensen_dice","pair":51,"parameters":[1],"expected":0.875},{"id":"c06796","function":"ss_sorensen_dice","pair":51,"parameters":[2],"expected":0.7142857142857143},{"id":"c06797","function":"ss_sorensen_dice","pair":51,"parameters":[3],"expected":0.5},{"id":"c06798","function":"ss_overlap_coefficient","pair":51,"parameters":[1],"expected":0.875},{"id":"c06799","function":"ss_overlap_coefficient","pair":51,"parameters":[2],"expected":0.7142857142857143},{"id":"c06800","function":"ss_overlap_coefficient","pair":51,"parameters":[3],"expected":0.5},{"id":"c06801","function":"ss_braun_blanquet","pair":51,"parameters":[1],"expected":0.875},{"id":"c06802","function":"ss_braun_blanquet","pair":51,"parameters":[2],"expected":0.7142857142857143},{"id":"c06803","function":"ss_braun_blanquet","pair":51,"parameters":[3],"expected":0.5},{"id":"c06804","function":"ss_jaro_winkler","pair":51,"parameters":[0.2,6],"expected":1.0},{"id":"c06805","function":"ss_needleman_wunsch","pair":51,"parameters":[2,-2,-1],"expected":1.0},{"id":"c06806","function":"ss_smith_waterman","pair":51,"parameters":[3,-1,-2],"expected":0.8333333333333334},{"id":"c06807","function":"ss_affine_gap","pair":51,"parameters":[-2,-3,-2],"expected":0.75},{"id":"c06808","function":"ss_monge_elkan","pair":51,"parameters":["jaro_winkler",0],"expected":0.95},{"id":"c06809","function":"ss_monge_elkan","pair":51,"parameters":["jaro_winkler",1],"expected":0.875},{"id":"c06810","function":"ss_monge_elkan","pair":51,"parameters":["jaro_winkler",2],"expected":0.9095238095238095},{"id":"c06811","function":"ss_monge_elkan","pair":51,"parameters":["jaro_winkler",3],"expected":0.8999999999999999},{"id":"c06812","function":"ss_monge_elkan","pair":51,"parameters":["jaro",0],"expected":0.9166666666666666},{"id":"c06813","function":"ss_monge_elkan","pair":51,"parameters":["jaro",1],"expected":0.875},{"id":"c06814","function":"ss_monge_elkan","pair":51,"parameters":["jaro",2],"expected":0.9047619047619048},{"id":"c06815","function":"ss_monge_elkan","pair":51,"parameters":["jaro",3],"expected":0.8888888888888888},{"id":"c06816","function":"ss_monge_elkan","pair":51,"parameters":["levenshtein",0],"expected":0.875},{"id":"c06817","function":"ss_monge_elkan","pair":51,"parameters":["levenshtein",1],"expected":0.875},{"id":"c06818","function":"ss_monge_elkan","pair":51,"parameters":["levenshtein",2],"expected":0.8571428571428571},{"id":"c06819","function":"ss_monge_elkan","pair":51,"parameters":["levenshtein",3],"expected":0.8333333333333335},{"id":"c06820","function":"ss_monge_elkan","pair":51,"parameters":["needleman_wunsch",0],"expected":0.875},{"id":"c06821","function":"ss_monge_elkan","pair":51,"parameters":["needleman_wunsch",1],"expected":0.875},{"id":"c06822","function":"ss_monge_elkan","pair":51,"parameters":["needleman_wunsch",2],"expected":0.8571428571428571},{"id":"c06823","function":"ss_monge_elkan","pair":51,"parameters":["needleman_wunsch",3],"expected":0.8333333333333334},{"id":"c06824","function":"ss_monge_elkan","pair":51,"parameters":["smith_waterman",0],"expected":0.8125},{"id":"c06825","function":"ss_monge_elkan","pair":51,"parameters":["smith_waterman",1],"expected":0.875},{"id":"c06826","function":"ss_monge_elkan","pair":51,"parameters":["smith_waterman",2],"expected":0.8571428571428571},{"id":"c06827","function":"ss_monge_elkan","pair":51,"parameters":["smith_waterman",3],"expected":0.8055555555555555},{"id":"c06828","function":"ss_jaccard","pair":52,"parameters":[1],"expected":0.0},{"id":"c06829","function":"ss_jaccard","pair":52,"parameters":[2],"expected":0.0},{"id":"c06830","function":"ss_jaccard","pair":52,"parameters":[3],"expected":0.0},{"id":"c06831","function":"ss_cosine","pair":52,"parameters":[1],"expected":0.0},{"id":"c06832","function":"ss_cosine","pair":52,"parameters":[2],"expected":0.0},{"id":"c06833","function":"ss_cosine","pair":52,"parameters":[3],"expected":0.0},{"id":"c06834","function":"ss_sorensen_dice","pair":52,"parameters":[1],"expected":0.0},{"id":"c06835","function":"ss_sorensen_dice","pair":52,"parameters":[2],"expected":0.0},{"id":"c06836","function":"ss_sorensen_dice","pair":52,"parameters":[3],"expected":0.0},{"id":"c06837","function":"ss_overlap_coefficient","pair":52,"parameters":[1],"expected":0.0},{"id":"c06838","function":"ss_overlap_coefficient","pair":52,"parameters":[2],"expected":0.0},{"id":"c06839","function":"ss_overlap_coefficient","pair":52,"parameters":[3],"expected":0.0},{"id":"c06840","function":"ss_braun_blanquet","pair":52,"parameters":[1],"expected":0.0},{"id":"c06841","function":"ss_braun_blanquet","pair":52,"parameters":[2],"expected":0.0},{"id":"c06842","function":"ss_braun_blanquet","pair":52,"parameters":[3],"expected":0.0},{"id":"c06843","function":"ss_jaro_winkler","pair":52,"parameters":[0.2,6],"expected":0.0},{"id":"c06844","function":"ss_needleman_wunsch","pair":52,"parameters":[2,-2,-1],"expected":0.0},{"id":"c06845","function":"ss_smith_waterman","pair":52,"parameters":[3,-1,-2],"expected":0.0},{"id":"c06846","function":"ss_affine_gap","pair":52,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06847","function":"ss_monge_elkan","pair":52,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c06848","function":"ss_monge_elkan","pair":52,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c06849","function":"ss_monge_elkan","pair":52,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c06850","function":"ss_monge_elkan","pair":52,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c06851","function":"ss_monge_elkan","pair":52,"parameters":["jaro",0],"expected":0.0},{"id":"c06852","function":"ss_monge_elkan","pair":52,"parameters":["jaro",1],"expected":0.0},{"id":"c06853","function":"ss_monge_elkan","pair":52,"parameters":["jaro",2],"expected":0.0},{"id":"c06854","function":"ss_monge_elkan","pair":52,"parameters":["jaro",3],"expected":0.0},{"id":"c06855","function":"ss_monge_elkan","pair":52,"parameters":["levenshtein",0],"expected":0.0},{"id":"c06856","function":"ss_monge_elkan","pair":52,"parameters":["levenshtein",1],"expected":0.0},{"id":"c06857","function":"ss_monge_elkan","pair":52,"parameters":["levenshtein",2],"expected":0.0},{"id":"c06858","function":"ss_monge_elkan","pair":52,"parameters":["levenshtein",3],"expected":0.0},{"id":"c06859","function":"ss_monge_elkan","pair":52,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c06860","function":"ss_monge_elkan","pair":52,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c06861","function":"ss_monge_elkan","pair":52,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c06862","function":"ss_monge_elkan","pair":52,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c06863","function":"ss_monge_elkan","pair":52,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c06864","function":"ss_monge_elkan","pair":52,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c06865","function":"ss_monge_elkan","pair":52,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c06866","function":"ss_monge_elkan","pair":52,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c06867","function":"ss_jaccard","pair":53,"parameters":[1],"expected":0.7142857142857143},{"id":"c06868","function":"ss_jaccard","pair":53,"parameters":[2],"expected":0.1111111111111111},{"id":"c06869","function":"ss_jaccard","pair":53,"parameters":[3],"expected":0.0},{"id":"c06870","function":"ss_cosine","pair":53,"parameters":[1],"expected":0.8451542547285166},{"id":"c06871","function":"ss_cosine","pair":53,"parameters":[2],"expected":0.20412414523193154},{"id":"c06872","function":"ss_cosine","pair":53,"parameters":[3],"expected":0.0},{"id":"c06873","function":"ss_sorensen_dice","pair":53,"parameters":[1],"expected":0.8333333333333334},{"id":"c06874","function":"ss_sorensen_dice","pair":53,"parameters":[2],"expected":0.2},{"id":"c06875","function":"ss_sorensen_dice","pair":53,"parameters":[3],"expected":0.0},{"id":"c06876","function":"ss_overlap_coefficient","pair":53,"parameters":[1],"expected":1.0},{"id":"c06877","function":"ss_overlap_coefficient","pair":53,"parameters":[2],"expected":0.25},{"id":"c06878","function":"ss_overlap_coefficient","pair":53,"parameters":[3],"expected":0.0},{"id":"c06879","function":"ss_braun_blanquet","pair":53,"parameters":[1],"expected":0.7142857142857143},{"id":"c06880","function":"ss_braun_blanquet","pair":53,"parameters":[2],"expected":0.16666666666666666},{"id":"c06881","function":"ss_braun_blanquet","pair":53,"parameters":[3],"expected":0.0},{"id":"c06882","function":"ss_jaro_winkler","pair":53,"parameters":[0.2,6],"expected":0.7323809523809524},{"id":"c06883","function":"ss_needleman_wunsch","pair":53,"parameters":[2,-2,-1],"expected":0.7857142857142857},{"id":"c06884","function":"ss_smith_waterman","pair":53,"parameters":[3,-1,-2],"expected":0.4666666666666667},{"id":"c06885","function":"ss_affine_gap","pair":53,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06886","function":"ss_monge_elkan","pair":53,"parameters":["jaro_winkler",0],"expected":0.6989285714285713},{"id":"c06887","function":"ss_monge_elkan","pair":53,"parameters":["jaro_winkler",1],"expected":0.8571428571428572},{"id":"c06888","function":"ss_monge_elkan","pair":53,"parameters":["jaro_winkler",2],"expected":0.75},{"id":"c06889","function":"ss_monge_elkan","pair":53,"parameters":["jaro_winkler",3],"expected":0.6466666666666666},{"id":"c06890","function":"ss_monge_elkan","pair":53,"parameters":["jaro",0],"expected":0.6654761904761904},{"id":"c06891","function":"ss_monge_elkan","pair":53,"parameters":["jaro",1],"expected":0.8571428571428572},{"id":"c06892","function":"ss_monge_elkan","pair":53,"parameters":["jaro",2],"expected":0.7361111111111112},{"id":"c06893","function":"ss_monge_elkan","pair":53,"parameters":["jaro",3],"expected":0.6185185185185185},{"id":"c06894","function":"ss_monge_elkan","pair":53,"parameters":["levenshtein",0],"expected":0.4285714285714286},{"id":"c06895","function":"ss_monge_elkan","pair":53,"parameters":["levenshtein",1],"expected":0.8571428571428572},{"id":"c06896","function":"ss_monge_elkan","pair":53,"parameters":["levenshtein",2],"expected":0.6041666666666667},{"id":"c06897","function":"ss_monge_elkan","pair":53,"parameters":["levenshtein",3],"expected":0.4777777777777778},{"id":"c06898","function":"ss_monge_elkan","pair":53,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c06899","function":"ss_monge_elkan","pair":53,"parameters":["needleman_wunsch",1],"expected":0.8571428571428572},{"id":"c06900","function":"ss_monge_elkan","pair":53,"parameters":["needleman_wunsch",2],"expected":0.6041666666666667},{"id":"c06901","function":"ss_monge_elkan","pair":53,"parameters":["needleman_wunsch",3],"expected":0.5388888888888889},{"id":"c06902","function":"ss_monge_elkan","pair":53,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06903","function":"ss_monge_elkan","pair":53,"parameters":["smith_waterman",1],"expected":0.8571428571428572},{"id":"c06904","function":"ss_monge_elkan","pair":53,"parameters":["smith_waterman",2],"expected":0.6041666666666667},{"id":"c06905","function":"ss_monge_elkan","pair":53,"parameters":["smith_waterman",3],"expected":0.5555555555555555},{"id":"c06906","function":"ss_jaccard","pair":54,"parameters":[1],"expected":0.5555555555555556},{"id":"c06907","function":"ss_jaccard","pair":54,"parameters":[2],"expected":0.18181818181818182},{"id":"c06908","function":"ss_jaccard","pair":54,"parameters":[3],"expected":0.1},{"id":"c06909","function":"ss_cosine","pair":54,"parameters":[1],"expected":0.7216878364870323},{"id":"c06910","function":"ss_cosine","pair":54,"parameters":[2],"expected":0.31622776601683794},{"id":"c06911","function":"ss_cosine","pair":54,"parameters":[3],"expected":0.1889822365046136},{"id":"c06912","function":"ss_sorensen_dice","pair":54,"parameters":[1],"expected":0.7142857142857143},{"id":"c06913","function":"ss_sorensen_dice","pair":54,"parameters":[2],"expected":0.3076923076923077},{"id":"c06914","function":"ss_sorensen_dice","pair":54,"parameters":[3],"expected":0.18181818181818182},{"id":"c06915","function":"ss_overlap_coefficient","pair":54,"parameters":[1],"expected":0.8333333333333334},{"id":"c06916","function":"ss_overlap_coefficient","pair":54,"parameters":[2],"expected":0.4},{"id":"c06917","function":"ss_overlap_coefficient","pair":54,"parameters":[3],"expected":0.25},{"id":"c06918","function":"ss_braun_blanquet","pair":54,"parameters":[1],"expected":0.625},{"id":"c06919","function":"ss_braun_blanquet","pair":54,"parameters":[2],"expected":0.25},{"id":"c06920","function":"ss_braun_blanquet","pair":54,"parameters":[3],"expected":0.14285714285714285},{"id":"c06921","function":"ss_jaro_winkler","pair":54,"parameters":[0.2,6],"expected":0.7837037037037038},{"id":"c06922","function":"ss_needleman_wunsch","pair":54,"parameters":[2,-2,-1],"expected":0.7777777777777778},{"id":"c06923","function":"ss_smith_waterman","pair":54,"parameters":[3,-1,-2],"expected":0.5},{"id":"c06924","function":"ss_affine_gap","pair":54,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06925","function":"ss_monge_elkan","pair":54,"parameters":["jaro_winkler",0],"expected":0.7566666666666668},{"id":"c06926","function":"ss_monge_elkan","pair":54,"parameters":["jaro_winkler",1],"expected":0.7291666666666667},{"id":"c06927","function":"ss_monge_elkan","pair":54,"parameters":["jaro_winkler",2],"expected":0.74625},{"id":"c06928","function":"ss_monge_elkan","pair":54,"parameters":["jaro_winkler",3],"expected":0.6642857142857141},{"id":"c06929","function":"ss_monge_elkan","pair":54,"parameters":["jaro",0],"expected":0.7296296296296297},{"id":"c06930","function":"ss_monge_elkan","pair":54,"parameters":["jaro",1],"expected":0.7291666666666667},{"id":"c06931","function":"ss_monge_elkan","pair":54,"parameters":["jaro",2],"expected":0.7333333333333333},{"id":"c06932","function":"ss_monge_elkan","pair":54,"parameters":["jaro",3],"expected":0.6468253968253967},{"id":"c06933","function":"ss_monge_elkan","pair":54,"parameters":["levenshtein",0],"expected":0.5555555555555556},{"id":"c06934","function":"ss_monge_elkan","pair":54,"parameters":["levenshtein",1],"expected":0.7291666666666667},{"id":"c06935","function":"ss_monge_elkan","pair":54,"parameters":["levenshtein",2],"expected":0.63125},{"id":"c06936","function":"ss_monge_elkan","pair":54,"parameters":["levenshtein",3],"expected":0.505952380952381},{"id":"c06937","function":"ss_monge_elkan","pair":54,"parameters":["needleman_wunsch",0],"expected":0.5555555555555556},{"id":"c06938","function":"ss_monge_elkan","pair":54,"parameters":["needleman_wunsch",1],"expected":0.7291666666666667},{"id":"c06939","function":"ss_monge_elkan","pair":54,"parameters":["needleman_wunsch",2],"expected":0.63125},{"id":"c06940","function":"ss_monge_elkan","pair":54,"parameters":["needleman_wunsch",3],"expected":0.5178571428571429},{"id":"c06941","function":"ss_monge_elkan","pair":54,"parameters":["smith_waterman",0],"expected":0.5},{"id":"c06942","function":"ss_monge_elkan","pair":54,"parameters":["smith_waterman",1],"expected":0.7291666666666667},{"id":"c06943","function":"ss_monge_elkan","pair":54,"parameters":["smith_waterman",2],"expected":0.63125},{"id":"c06944","function":"ss_monge_elkan","pair":54,"parameters":["smith_waterman",3],"expected":0.5297619047619048},{"id":"c06945","function":"ss_jaccard","pair":55,"parameters":[1],"expected":0.3333333333333333},{"id":"c06946","function":"ss_jaccard","pair":55,"parameters":[2],"expected":0.07142857142857142},{"id":"c06947","function":"ss_jaccard","pair":55,"parameters":[3],"expected":0.0},{"id":"c06948","function":"ss_cosine","pair":55,"parameters":[1],"expected":0.5039526306789696},{"id":"c06949","function":"ss_cosine","pair":55,"parameters":[2],"expected":0.13608276348795434},{"id":"c06950","function":"ss_cosine","pair":55,"parameters":[3],"expected":0.0},{"id":"c06951","function":"ss_sorensen_dice","pair":55,"parameters":[1],"expected":0.5},{"id":"c06952","function":"ss_sorensen_dice","pair":55,"parameters":[2],"expected":0.13333333333333333},{"id":"c06953","function":"ss_sorensen_dice","pair":55,"parameters":[3],"expected":0.0},{"id":"c06954","function":"ss_overlap_coefficient","pair":55,"parameters":[1],"expected":0.5714285714285714},{"id":"c06955","function":"ss_overlap_coefficient","pair":55,"parameters":[2],"expected":0.16666666666666666},{"id":"c06956","function":"ss_overlap_coefficient","pair":55,"parameters":[3],"expected":0.0},{"id":"c06957","function":"ss_braun_blanquet","pair":55,"parameters":[1],"expected":0.4444444444444444},{"id":"c06958","function":"ss_braun_blanquet","pair":55,"parameters":[2],"expected":0.1111111111111111},{"id":"c06959","function":"ss_braun_blanquet","pair":55,"parameters":[3],"expected":0.0},{"id":"c06960","function":"ss_jaro_winkler","pair":55,"parameters":[0.2,6],"expected":0.5738095238095239},{"id":"c06961","function":"ss_needleman_wunsch","pair":55,"parameters":[2,-2,-1],"expected":0.45},{"id":"c06962","function":"ss_smith_waterman","pair":55,"parameters":[3,-1,-2],"expected":0.2857142857142857},{"id":"c06963","function":"ss_affine_gap","pair":55,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c06964","function":"ss_monge_elkan","pair":55,"parameters":["jaro_winkler",0],"expected":0.5738095238095239},{"id":"c06965","function":"ss_monge_elkan","pair":55,"parameters":["jaro_winkler",1],"expected":0.5079365079365079},{"id":"c06966","function":"ss_monge_elkan","pair":55,"parameters":["jaro_winkler",2],"expected":0.5555555555555556},{"id":"c06967","function":"ss_monge_elkan","pair":55,"parameters":["jaro_winkler",3],"expected":0.5322222222222222},{"id":"c06968","function":"ss_monge_elkan","pair":55,"parameters":["jaro",0],"expected":0.5738095238095239},{"id":"c06969","function":"ss_monge_elkan","pair":55,"parameters":["jaro",1],"expected":0.5079365079365079},{"id":"c06970","function":"ss_monge_elkan","pair":55,"parameters":["jaro",2],"expected":0.5462962962962963},{"id":"c06971","function":"ss_monge_elkan","pair":55,"parameters":["jaro",3],"expected":0.5222222222222221},{"id":"c06972","function":"ss_monge_elkan","pair":55,"parameters":["levenshtein",0],"expected":0.30000000000000004},{"id":"c06973","function":"ss_monge_elkan","pair":55,"parameters":["levenshtein",1],"expected":0.5079365079365079},{"id":"c06974","function":"ss_monge_elkan","pair":55,"parameters":["levenshtein",2],"expected":0.4444444444444444},{"id":"c06975","function":"ss_monge_elkan","pair":55,"parameters":["levenshtein",3],"expected":0.34583333333333344},{"id":"c06976","function":"ss_monge_elkan","pair":55,"parameters":["needleman_wunsch",0],"expected":0.3},{"id":"c06977","function":"ss_monge_elkan","pair":55,"parameters":["needleman_wunsch",1],"expected":0.5079365079365079},{"id":"c06978","function":"ss_monge_elkan","pair":55,"parameters":["needleman_wunsch",2],"expected":0.45833333333333337},{"id":"c06979","function":"ss_monge_elkan","pair":55,"parameters":["needleman_wunsch",3],"expected":0.35624999999999996},{"id":"c06980","function":"ss_monge_elkan","pair":55,"parameters":["smith_waterman",0],"expected":0.2857142857142857},{"id":"c06981","function":"ss_monge_elkan","pair":55,"parameters":["smith_waterman",1],"expected":0.5079365079365079},{"id":"c06982","function":"ss_monge_elkan","pair":55,"parameters":["smith_waterman",2],"expected":0.4722222222222222},{"id":"c06983","function":"ss_monge_elkan","pair":55,"parameters":["smith_waterman",3],"expected":0.38749999999999996},{"id":"c06984","function":"ss_jaccard","pair":56,"parameters":[1],"expected":0.625},{"id":"c06985","function":"ss_jaccard","pair":56,"parameters":[2],"expected":0.375},{"id":"c06986","function":"ss_jaccard","pair":56,"parameters":[3],"expected":0.2857142857142857},{"id":"c06987","function":"ss_cosine","pair":56,"parameters":[1],"expected":0.7715167498104595},{"id":"c06988","function":"ss_cosine","pair":56,"parameters":[2],"expected":0.5477225575051661},{"id":"c06989","function":"ss_cosine","pair":56,"parameters":[3],"expected":0.4472135954999579},{"id":"c06990","function":"ss_sorensen_dice","pair":56,"parameters":[1],"expected":0.7692307692307693},{"id":"c06991","function":"ss_sorensen_dice","pair":56,"parameters":[2],"expected":0.5454545454545454},{"id":"c06992","function":"ss_sorensen_dice","pair":56,"parameters":[3],"expected":0.4444444444444444},{"id":"c06993","function":"ss_overlap_coefficient","pair":56,"parameters":[1],"expected":0.8333333333333334},{"id":"c06994","function":"ss_overlap_coefficient","pair":56,"parameters":[2],"expected":0.6},{"id":"c06995","function":"ss_overlap_coefficient","pair":56,"parameters":[3],"expected":0.5},{"id":"c06996","function":"ss_braun_blanquet","pair":56,"parameters":[1],"expected":0.7142857142857143},{"id":"c06997","function":"ss_braun_blanquet","pair":56,"parameters":[2],"expected":0.5},{"id":"c06998","function":"ss_braun_blanquet","pair":56,"parameters":[3],"expected":0.4},{"id":"c06999","function":"ss_jaro_winkler","pair":56,"parameters":[0.2,6],"expected":0.8793650793650793},{"id":"c07000","function":"ss_needleman_wunsch","pair":56,"parameters":[2,-2,-1],"expected":1.0},{"id":"c07001","function":"ss_smith_waterman","pair":56,"parameters":[3,-1,-2],"expected":0.6666666666666666},{"id":"c07002","function":"ss_affine_gap","pair":56,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07003","function":"ss_monge_elkan","pair":56,"parameters":["jaro_winkler",0],"expected":0.8642857142857143},{"id":"c07004","function":"ss_monge_elkan","pair":56,"parameters":["jaro_winkler",1],"expected":0.7738095238095238},{"id":"c07005","function":"ss_monge_elkan","pair":56,"parameters":["jaro_winkler",2],"expected":0.8005555555555556},{"id":"c07006","function":"ss_monge_elkan","pair":56,"parameters":["jaro_winkler",3],"expected":0.8155555555555554},{"id":"c07007","function":"ss_monge_elkan","pair":56,"parameters":["jaro",0],"expected":0.8492063492063492},{"id":"c07008","function":"ss_monge_elkan","pair":56,"parameters":["jaro",1],"expected":0.7738095238095238},{"id":"c07009","function":"ss_monge_elkan","pair":56,"parameters":["jaro",2],"expected":0.7944444444444444},{"id":"c07010","function":"ss_monge_elkan","pair":56,"parameters":["jaro",3],"expected":0.8055555555555555},{"id":"c07011","function":"ss_monge_elkan","pair":56,"parameters":["levenshtein",0],"expected":0.7142857142857143},{"id":"c07012","function":"ss_monge_elkan","pair":56,"parameters":["levenshtein",1],"expected":0.7738095238095238},{"id":"c07013","function":"ss_monge_elkan","pair":56,"parameters":["levenshtein",2],"expected":0.7333333333333334},{"id":"c07014","function":"ss_monge_elkan","pair":56,"parameters":["levenshtein",3],"expected":0.7083333333333334},{"id":"c07015","function":"ss_monge_elkan","pair":56,"parameters":["needleman_wunsch",0],"expected":0.7142857142857143},{"id":"c07016","function":"ss_monge_elkan","pair":56,"parameters":["needleman_wunsch",1],"expected":0.7738095238095238},{"id":"c07017","function":"ss_monge_elkan","pair":56,"parameters":["needleman_wunsch",2],"expected":0.7333333333333334},{"id":"c07018","function":"ss_monge_elkan","pair":56,"parameters":["needleman_wunsch",3],"expected":0.7083333333333334},{"id":"c07019","function":"ss_monge_elkan","pair":56,"parameters":["smith_waterman",0],"expected":0.6666666666666666},{"id":"c07020","function":"ss_monge_elkan","pair":56,"parameters":["smith_waterman",1],"expected":0.7738095238095238},{"id":"c07021","function":"ss_monge_elkan","pair":56,"parameters":["smith_waterman",2],"expected":0.7333333333333334},{"id":"c07022","function":"ss_monge_elkan","pair":56,"parameters":["smith_waterman",3],"expected":0.7083333333333334},{"id":"c07023","function":"ss_jaccard","pair":57,"parameters":[1],"expected":0.25},{"id":"c07024","function":"ss_jaccard","pair":57,"parameters":[2],"expected":0.0},{"id":"c07025","function":"ss_jaccard","pair":57,"parameters":[3],"expected":0.0},{"id":"c07026","function":"ss_cosine","pair":57,"parameters":[1],"expected":0.4082482904638631},{"id":"c07027","function":"ss_cosine","pair":57,"parameters":[2],"expected":0.0},{"id":"c07028","function":"ss_cosine","pair":57,"parameters":[3],"expected":0.0},{"id":"c07029","function":"ss_sorensen_dice","pair":57,"parameters":[1],"expected":0.4},{"id":"c07030","function":"ss_sorensen_dice","pair":57,"parameters":[2],"expected":0.0},{"id":"c07031","function":"ss_sorensen_dice","pair":57,"parameters":[3],"expected":0.0},{"id":"c07032","function":"ss_overlap_coefficient","pair":57,"parameters":[1],"expected":0.5},{"id":"c07033","function":"ss_overlap_coefficient","pair":57,"parameters":[2],"expected":0.0},{"id":"c07034","function":"ss_overlap_coefficient","pair":57,"parameters":[3],"expected":0.0},{"id":"c07035","function":"ss_braun_blanquet","pair":57,"parameters":[1],"expected":0.3333333333333333},{"id":"c07036","function":"ss_braun_blanquet","pair":57,"parameters":[2],"expected":0.0},{"id":"c07037","function":"ss_braun_blanquet","pair":57,"parameters":[3],"expected":0.0},{"id":"c07038","function":"ss_jaro_winkler","pair":57,"parameters":[0.2,6],"expected":0.5496296296296297},{"id":"c07039","function":"ss_needleman_wunsch","pair":57,"parameters":[2,-2,-1],"expected":0.16666666666666666},{"id":"c07040","function":"ss_smith_waterman","pair":57,"parameters":[3,-1,-2],"expected":0.2},{"id":"c07041","function":"ss_affine_gap","pair":57,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07042","function":"ss_monge_elkan","pair":57,"parameters":["jaro_winkler",0],"expected":0.49333333333333335},{"id":"c07043","function":"ss_monge_elkan","pair":57,"parameters":["jaro_winkler",1],"expected":0.41666666666666663},{"id":"c07044","function":"ss_monge_elkan","pair":57,"parameters":["jaro_winkler",2],"expected":0.25625},{"id":"c07045","function":"ss_monge_elkan","pair":57,"parameters":["jaro_winkler",3],"expected":0.2751322751322751},{"id":"c07046","function":"ss_monge_elkan","pair":57,"parameters":["jaro",0],"expected":0.43703703703703706},{"id":"c07047","function":"ss_monge_elkan","pair":57,"parameters":["jaro",1],"expected":0.41666666666666663},{"id":"c07048","function":"ss_monge_elkan","pair":57,"parameters":["jaro",2],"expected":0.25},{"id":"c07049","function":"ss_monge_elkan","pair":57,"parameters":["jaro",3],"expected":0.2645502645502645},{"id":"c07050","function":"ss_monge_elkan","pair":57,"parameters":["levenshtein",0],"expected":0.2222222222222222},{"id":"c07051","function":"ss_monge_elkan","pair":57,"parameters":["levenshtein",1],"expected":0.41666666666666663},{"id":"c07052","function":"ss_monge_elkan","pair":57,"parameters":["levenshtein",2],"expected":0.1875},{"id":"c07053","function":"ss_monge_elkan","pair":57,"parameters":["levenshtein",3],"expected":0.15873015873015875},{"id":"c07054","function":"ss_monge_elkan","pair":57,"parameters":["needleman_wunsch",0],"expected":0.2222222222222222},{"id":"c07055","function":"ss_monge_elkan","pair":57,"parameters":["needleman_wunsch",1],"expected":0.41666666666666663},{"id":"c07056","function":"ss_monge_elkan","pair":57,"parameters":["needleman_wunsch",2],"expected":0.1875},{"id":"c07057","function":"ss_monge_elkan","pair":57,"parameters":["needleman_wunsch",3],"expected":0.15873015873015872},{"id":"c07058","function":"ss_monge_elkan","pair":57,"parameters":["smith_waterman",0],"expected":0.2},{"id":"c07059","function":"ss_monge_elkan","pair":57,"parameters":["smith_waterman",1],"expected":0.41666666666666663},{"id":"c07060","function":"ss_monge_elkan","pair":57,"parameters":["smith_waterman",2],"expected":0.1875},{"id":"c07061","function":"ss_monge_elkan","pair":57,"parameters":["smith_waterman",3],"expected":0.15873015873015872},{"id":"c07062","function":"ss_jaccard","pair":58,"parameters":[1],"expected":0.0},{"id":"c07063","function":"ss_jaccard","pair":58,"parameters":[2],"expected":0.0},{"id":"c07064","function":"ss_jaccard","pair":58,"parameters":[3],"expected":0.0},{"id":"c07065","function":"ss_cosine","pair":58,"parameters":[1],"expected":0.0},{"id":"c07066","function":"ss_cosine","pair":58,"parameters":[2],"expected":0.0},{"id":"c07067","function":"ss_cosine","pair":58,"parameters":[3],"expected":0.0},{"id":"c07068","function":"ss_sorensen_dice","pair":58,"parameters":[1],"expected":0.0},{"id":"c07069","function":"ss_sorensen_dice","pair":58,"parameters":[2],"expected":0.0},{"id":"c07070","function":"ss_sorensen_dice","pair":58,"parameters":[3],"expected":0.0},{"id":"c07071","function":"ss_overlap_coefficient","pair":58,"parameters":[1],"expected":0.0},{"id":"c07072","function":"ss_overlap_coefficient","pair":58,"parameters":[2],"expected":0.0},{"id":"c07073","function":"ss_overlap_coefficient","pair":58,"parameters":[3],"expected":0.0},{"id":"c07074","function":"ss_braun_blanquet","pair":58,"parameters":[1],"expected":0.0},{"id":"c07075","function":"ss_braun_blanquet","pair":58,"parameters":[2],"expected":0.0},{"id":"c07076","function":"ss_braun_blanquet","pair":58,"parameters":[3],"expected":0.0},{"id":"c07077","function":"ss_jaro_winkler","pair":58,"parameters":[0.2,6],"expected":0.0},{"id":"c07078","function":"ss_needleman_wunsch","pair":58,"parameters":[2,-2,-1],"expected":0.0},{"id":"c07079","function":"ss_smith_waterman","pair":58,"parameters":[3,-1,-2],"expected":0.0},{"id":"c07080","function":"ss_affine_gap","pair":58,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07081","function":"ss_monge_elkan","pair":58,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c07082","function":"ss_monge_elkan","pair":58,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c07083","function":"ss_monge_elkan","pair":58,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c07084","function":"ss_monge_elkan","pair":58,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c07085","function":"ss_monge_elkan","pair":58,"parameters":["jaro",0],"expected":0.0},{"id":"c07086","function":"ss_monge_elkan","pair":58,"parameters":["jaro",1],"expected":0.0},{"id":"c07087","function":"ss_monge_elkan","pair":58,"parameters":["jaro",2],"expected":0.0},{"id":"c07088","function":"ss_monge_elkan","pair":58,"parameters":["jaro",3],"expected":0.0},{"id":"c07089","function":"ss_monge_elkan","pair":58,"parameters":["levenshtein",0],"expected":0.0},{"id":"c07090","function":"ss_monge_elkan","pair":58,"parameters":["levenshtein",1],"expected":0.0},{"id":"c07091","function":"ss_monge_elkan","pair":58,"parameters":["levenshtein",2],"expected":0.0},{"id":"c07092","function":"ss_monge_elkan","pair":58,"parameters":["levenshtein",3],"expected":0.0},{"id":"c07093","function":"ss_monge_elkan","pair":58,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c07094","function":"ss_monge_elkan","pair":58,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c07095","function":"ss_monge_elkan","pair":58,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c07096","function":"ss_monge_elkan","pair":58,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c07097","function":"ss_monge_elkan","pair":58,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c07098","function":"ss_monge_elkan","pair":58,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c07099","function":"ss_monge_elkan","pair":58,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c07100","function":"ss_monge_elkan","pair":58,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c07101","function":"ss_jaccard","pair":59,"parameters":[1],"expected":0.0},{"id":"c07102","function":"ss_jaccard","pair":59,"parameters":[2],"expected":0.0},{"id":"c07103","function":"ss_jaccard","pair":59,"parameters":[3],"expected":0.0},{"id":"c07104","function":"ss_cosine","pair":59,"parameters":[1],"expected":0.0},{"id":"c07105","function":"ss_cosine","pair":59,"parameters":[2],"expected":0.0},{"id":"c07106","function":"ss_cosine","pair":59,"parameters":[3],"expected":0.0},{"id":"c07107","function":"ss_sorensen_dice","pair":59,"parameters":[1],"expected":0.0},{"id":"c07108","function":"ss_sorensen_dice","pair":59,"parameters":[2],"expected":0.0},{"id":"c07109","function":"ss_sorensen_dice","pair":59,"parameters":[3],"expected":0.0},{"id":"c07110","function":"ss_overlap_coefficient","pair":59,"parameters":[1],"expected":0.0},{"id":"c07111","function":"ss_overlap_coefficient","pair":59,"parameters":[2],"expected":0.0},{"id":"c07112","function":"ss_overlap_coefficient","pair":59,"parameters":[3],"expected":0.0},{"id":"c07113","function":"ss_braun_blanquet","pair":59,"parameters":[1],"expected":0.0},{"id":"c07114","function":"ss_braun_blanquet","pair":59,"parameters":[2],"expected":0.0},{"id":"c07115","function":"ss_braun_blanquet","pair":59,"parameters":[3],"expected":0.0},{"id":"c07116","function":"ss_jaro_winkler","pair":59,"parameters":[0.2,6],"expected":0.0},{"id":"c07117","function":"ss_needleman_wunsch","pair":59,"parameters":[2,-2,-1],"expected":0.0},{"id":"c07118","function":"ss_smith_waterman","pair":59,"parameters":[3,-1,-2],"expected":0.0},{"id":"c07119","function":"ss_affine_gap","pair":59,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07120","function":"ss_monge_elkan","pair":59,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c07121","function":"ss_monge_elkan","pair":59,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c07122","function":"ss_monge_elkan","pair":59,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c07123","function":"ss_monge_elkan","pair":59,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c07124","function":"ss_monge_elkan","pair":59,"parameters":["jaro",0],"expected":0.0},{"id":"c07125","function":"ss_monge_elkan","pair":59,"parameters":["jaro",1],"expected":0.0},{"id":"c07126","function":"ss_monge_elkan","pair":59,"parameters":["jaro",2],"expected":0.0},{"id":"c07127","function":"ss_monge_elkan","pair":59,"parameters":["jaro",3],"expected":0.0},{"id":"c07128","function":"ss_monge_elkan","pair":59,"parameters":["levenshtein",0],"expected":0.0},{"id":"c07129","function":"ss_monge_elkan","pair":59,"parameters":["levenshtein",1],"expected":0.0},{"id":"c07130","function":"ss_monge_elkan","pair":59,"parameters":["levenshtein",2],"expected":0.0},{"id":"c07131","function":"ss_monge_elkan","pair":59,"parameters":["levenshtein",3],"expected":0.0},{"id":"c07132","function":"ss_monge_elkan","pair":59,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c07133","function":"ss_monge_elkan","pair":59,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c07134","function":"ss_monge_elkan","pair":59,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c07135","function":"ss_monge_elkan","pair":59,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c07136","function":"ss_monge_elkan","pair":59,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c07137","function":"ss_monge_elkan","pair":59,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c07138","function":"ss_monge_elkan","pair":59,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c07139","function":"ss_monge_elkan","pair":59,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c07140","function":"ss_jaccard","pair":60,"parameters":[1],"expected":0.0},{"id":"c07141","function":"ss_jaccard","pair":60,"parameters":[2],"expected":0.0},{"id":"c07142","function":"ss_jaccard","pair":60,"parameters":[3],"expected":0.0},{"id":"c07143","function":"ss_cosine","pair":60,"parameters":[1],"expected":0.0},{"id":"c07144","function":"ss_cosine","pair":60,"parameters":[2],"expected":0.0},{"id":"c07145","function":"ss_cosine","pair":60,"parameters":[3],"expected":0.0},{"id":"c07146","function":"ss_sorensen_dice","pair":60,"parameters":[1],"expected":0.0},{"id":"c07147","function":"ss_sorensen_dice","pair":60,"parameters":[2],"expected":0.0},{"id":"c07148","function":"ss_sorensen_dice","pair":60,"parameters":[3],"expected":0.0},{"id":"c07149","function":"ss_overlap_coefficient","pair":60,"parameters":[1],"expected":0.0},{"id":"c07150","function":"ss_overlap_coefficient","pair":60,"parameters":[2],"expected":0.0},{"id":"c07151","function":"ss_overlap_coefficient","pair":60,"parameters":[3],"expected":0.0},{"id":"c07152","function":"ss_braun_blanquet","pair":60,"parameters":[1],"expected":0.0},{"id":"c07153","function":"ss_braun_blanquet","pair":60,"parameters":[2],"expected":0.0},{"id":"c07154","function":"ss_braun_blanquet","pair":60,"parameters":[3],"expected":0.0},{"id":"c07155","function":"ss_jaro_winkler","pair":60,"parameters":[0.2,6],"expected":0.0},{"id":"c07156","function":"ss_needleman_wunsch","pair":60,"parameters":[2,-2,-1],"expected":0.0},{"id":"c07157","function":"ss_smith_waterman","pair":60,"parameters":[3,-1,-2],"expected":0.0},{"id":"c07158","function":"ss_affine_gap","pair":60,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07159","function":"ss_monge_elkan","pair":60,"parameters":["jaro_winkler",0],"expected":0.0},{"id":"c07160","function":"ss_monge_elkan","pair":60,"parameters":["jaro_winkler",1],"expected":0.0},{"id":"c07161","function":"ss_monge_elkan","pair":60,"parameters":["jaro_winkler",2],"expected":0.0},{"id":"c07162","function":"ss_monge_elkan","pair":60,"parameters":["jaro_winkler",3],"expected":0.0},{"id":"c07163","function":"ss_monge_elkan","pair":60,"parameters":["jaro",0],"expected":0.0},{"id":"c07164","function":"ss_monge_elkan","pair":60,"parameters":["jaro",1],"expected":0.0},{"id":"c07165","function":"ss_monge_elkan","pair":60,"parameters":["jaro",2],"expected":0.0},{"id":"c07166","function":"ss_monge_elkan","pair":60,"parameters":["jaro",3],"expected":0.0},{"id":"c07167","function":"ss_monge_elkan","pair":60,"parameters":["levenshtein",0],"expected":0.0},{"id":"c07168","function":"ss_monge_elkan","pair":60,"parameters":["levenshtein",1],"expected":0.0},{"id":"c07169","function":"ss_monge_elkan","pair":60,"parameters":["levenshtein",2],"expected":0.0},{"id":"c07170","function":"ss_monge_elkan","pair":60,"parameters":["levenshtein",3],"expected":0.0},{"id":"c07171","function":"ss_monge_elkan","pair":60,"parameters":["needleman_wunsch",0],"expected":0.0},{"id":"c07172","function":"ss_monge_elkan","pair":60,"parameters":["needleman_wunsch",1],"expected":0.0},{"id":"c07173","function":"ss_monge_elkan","pair":60,"parameters":["needleman_wunsch",2],"expected":0.0},{"id":"c07174","function":"ss_monge_elkan","pair":60,"parameters":["needleman_wunsch",3],"expected":0.0},{"id":"c07175","function":"ss_monge_elkan","pair":60,"parameters":["smith_waterman",0],"expected":0.0},{"id":"c07176","function":"ss_monge_elkan","pair":60,"parameters":["smith_waterman",1],"expected":0.0},{"id":"c07177","function":"ss_monge_elkan","pair":60,"parameters":["smith_waterman",2],"expected":0.0},{"id":"c07178","function":"ss_monge_elkan","pair":60,"parameters":["smith_waterman",3],"expected":0.0},{"id":"c07179","function":"ss_jaccard","pair":61,"parameters":[1],"expected":0.6666666666666666},{"id":"c07180","function":"ss_jaccard","pair":61,"parameters":[2],"expected":0.0},{"id":"c07181","function":"ss_jaccard","pair":61,"parameters":[3],"expected":0.0},{"id":"c07182","function":"ss_cosine","pair":61,"parameters":[1],"expected":0.8164965809277261},{"id":"c07183","function":"ss_cosine","pair":61,"parameters":[2],"expected":0.0},{"id":"c07184","function":"ss_cosine","pair":61,"parameters":[3],"expected":0.0},{"id":"c07185","function":"ss_sorensen_dice","pair":61,"parameters":[1],"expected":0.8},{"id":"c07186","function":"ss_sorensen_dice","pair":61,"parameters":[2],"expected":0.0},{"id":"c07187","function":"ss_sorensen_dice","pair":61,"parameters":[3],"expected":0.0},{"id":"c07188","function":"ss_overlap_coefficient","pair":61,"parameters":[1],"expected":1.0},{"id":"c07189","function":"ss_overlap_coefficient","pair":61,"parameters":[2],"expected":0.0},{"id":"c07190","function":"ss_overlap_coefficient","pair":61,"parameters":[3],"expected":0.0},{"id":"c07191","function":"ss_braun_blanquet","pair":61,"parameters":[1],"expected":0.6666666666666666},{"id":"c07192","function":"ss_braun_blanquet","pair":61,"parameters":[2],"expected":0.0},{"id":"c07193","function":"ss_braun_blanquet","pair":61,"parameters":[3],"expected":0.0},{"id":"c07194","function":"ss_jaro_winkler","pair":61,"parameters":[0.2,6],"expected":0.6888888888888889},{"id":"c07195","function":"ss_needleman_wunsch","pair":61,"parameters":[2,-2,-1],"expected":1.0},{"id":"c07196","function":"ss_smith_waterman","pair":61,"parameters":[3,-1,-2],"expected":0.6666666666666666},{"id":"c07197","function":"ss_affine_gap","pair":61,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07198","function":"ss_monge_elkan","pair":61,"parameters":["jaro_winkler",0],"expected":0.6499999999999999},{"id":"c07199","function":"ss_monge_elkan","pair":61,"parameters":["jaro_winkler",1],"expected":0.8333333333333333},{"id":"c07200","function":"ss_monge_elkan","pair":61,"parameters":["jaro_winkler",2],"expected":0.6916666666666667},{"id":"c07201","function":"ss_monge_elkan","pair":61,"parameters":["jaro_winkler",3],"expected":0.6499999999999999},{"id":"c07202","function":"ss_monge_elkan","pair":61,"parameters":["jaro",0],"expected":0.611111111111111},{"id":"c07203","function":"ss_monge_elkan","pair":61,"parameters":["jaro",1],"expected":0.8333333333333333},{"id":"c07204","function":"ss_monge_elkan","pair":61,"parameters":["jaro",2],"expected":0.6666666666666666},{"id":"c07205","function":"ss_monge_elkan","pair":61,"parameters":["jaro",3],"expected":0.611111111111111},{"id":"c07206","function":"ss_monge_elkan","pair":61,"parameters":["levenshtein",0],"expected":0.6666666666666667},{"id":"c07207","function":"ss_monge_elkan","pair":61,"parameters":["levenshtein",1],"expected":0.8333333333333333},{"id":"c07208","function":"ss_monge_elkan","pair":61,"parameters":["levenshtein",2],"expected":0.5},{"id":"c07209","function":"ss_monge_elkan","pair":61,"parameters":["levenshtein",3],"expected":0.6666666666666667},{"id":"c07210","function":"ss_monge_elkan","pair":61,"parameters":["needleman_wunsch",0],"expected":0.6666666666666666},{"id":"c07211","function":"ss_monge_elkan","pair":61,"parameters":["needleman_wunsch",1],"expected":0.8333333333333333},{"id":"c07212","function":"ss_monge_elkan","pair":61,"parameters":["needleman_wunsch",2],"expected":0.5},{"id":"c07213","function":"ss_monge_elkan","pair":61,"parameters":["needleman_wunsch",3],"expected":0.6666666666666666},{"id":"c07214","function":"ss_monge_elkan","pair":61,"parameters":["smith_waterman",0],"expected":0.75},{"id":"c07215","function":"ss_monge_elkan","pair":61,"parameters":["smith_waterman",1],"expected":0.8333333333333333},{"id":"c07216","function":"ss_monge_elkan","pair":61,"parameters":["smith_waterman",2],"expected":0.5},{"id":"c07217","function":"ss_monge_elkan","pair":61,"parameters":["smith_waterman",3],"expected":0.75},{"id":"c07218","function":"ss_jaccard","pair":62,"parameters":[1],"expected":0.4},{"id":"c07219","function":"ss_jaccard","pair":62,"parameters":[2],"expected":0.0},{"id":"c07220","function":"ss_jaccard","pair":62,"parameters":[3],"expected":0.0},{"id":"c07221","function":"ss_cosine","pair":62,"parameters":[1],"expected":0.5773502691896258},{"id":"c07222","function":"ss_cosine","pair":62,"parameters":[2],"expected":0.0},{"id":"c07223","function":"ss_cosine","pair":62,"parameters":[3],"expected":0.0},{"id":"c07224","function":"ss_sorensen_dice","pair":62,"parameters":[1],"expected":0.5714285714285714},{"id":"c07225","function":"ss_sorensen_dice","pair":62,"parameters":[2],"expected":0.0},{"id":"c07226","function":"ss_sorensen_dice","pair":62,"parameters":[3],"expected":0.0},{"id":"c07227","function":"ss_overlap_coefficient","pair":62,"parameters":[1],"expected":0.6666666666666666},{"id":"c07228","function":"ss_overlap_coefficient","pair":62,"parameters":[2],"expected":0.0},{"id":"c07229","function":"ss_overlap_coefficient","pair":62,"parameters":[3],"expected":0.0},{"id":"c07230","function":"ss_braun_blanquet","pair":62,"parameters":[1],"expected":0.5},{"id":"c07231","function":"ss_braun_blanquet","pair":62,"parameters":[2],"expected":0.0},{"id":"c07232","function":"ss_braun_blanquet","pair":62,"parameters":[3],"expected":0.0},{"id":"c07233","function":"ss_jaro_winkler","pair":62,"parameters":[0.2,6],"expected":0.7777777777777778},{"id":"c07234","function":"ss_needleman_wunsch","pair":62,"parameters":[2,-2,-1],"expected":0.625},{"id":"c07235","function":"ss_smith_waterman","pair":62,"parameters":[3,-1,-2],"expected":0.3333333333333333},{"id":"c07236","function":"ss_affine_gap","pair":62,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07237","function":"ss_monge_elkan","pair":62,"parameters":["jaro_winkler",0],"expected":1.0},{"id":"c07238","function":"ss_monge_elkan","pair":62,"parameters":["jaro_winkler",1],"expected":0.5833333333333333},{"id":"c07239","function":"ss_monge_elkan","pair":62,"parameters":["jaro_winkler",2],"expected":0.5694444444444444},{"id":"c07240","function":"ss_monge_elkan","pair":62,"parameters":["jaro_winkler",3],"expected":0.5888888888888888},{"id":"c07241","function":"ss_monge_elkan","pair":62,"parameters":["jaro",0],"expected":1.0},{"id":"c07242","function":"ss_monge_elkan","pair":62,"parameters":["jaro",1],"expected":0.5833333333333333},{"id":"c07243","function":"ss_monge_elkan","pair":62,"parameters":["jaro",2],"expected":0.5555555555555556},{"id":"c07244","function":"ss_monge_elkan","pair":62,"parameters":["jaro",3],"expected":0.5555555555555555},{"id":"c07245","function":"ss_monge_elkan","pair":62,"parameters":["levenshtein",0],"expected":1.0},{"id":"c07246","function":"ss_monge_elkan","pair":62,"parameters":["levenshtein",1],"expected":0.5833333333333333},{"id":"c07247","function":"ss_monge_elkan","pair":62,"parameters":["levenshtein",2],"expected":0.41666666666666663},{"id":"c07248","function":"ss_monge_elkan","pair":62,"parameters":["levenshtein",3],"expected":0.33333333333333337},{"id":"c07249","function":"ss_monge_elkan","pair":62,"parameters":["needleman_wunsch",0],"expected":1.0},{"id":"c07250","function":"ss_monge_elkan","pair":62,"parameters":["needleman_wunsch",1],"expected":0.5833333333333333},{"id":"c07251","function":"ss_monge_elkan","pair":62,"parameters":["needleman_wunsch",2],"expected":0.41666666666666663},{"id":"c07252","function":"ss_monge_elkan","pair":62,"parameters":["needleman_wunsch",3],"expected":0.3333333333333333},{"id":"c07253","function":"ss_monge_elkan","pair":62,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c07254","function":"ss_monge_elkan","pair":62,"parameters":["smith_waterman",1],"expected":0.5833333333333333},{"id":"c07255","function":"ss_monge_elkan","pair":62,"parameters":["smith_waterman",2],"expected":0.41666666666666663},{"id":"c07256","function":"ss_monge_elkan","pair":62,"parameters":["smith_waterman",3],"expected":0.3333333333333333},{"id":"c07257","function":"ss_jaccard","pair":63,"parameters":[1],"expected":1.0},{"id":"c07258","function":"ss_jaccard","pair":63,"parameters":[2],"expected":0.6666666666666666},{"id":"c07259","function":"ss_jaccard","pair":63,"parameters":[3],"expected":0.3333333333333333},{"id":"c07260","function":"ss_cosine","pair":63,"parameters":[1],"expected":1.0},{"id":"c07261","function":"ss_cosine","pair":63,"parameters":[2],"expected":0.8164965809277261},{"id":"c07262","function":"ss_cosine","pair":63,"parameters":[3],"expected":0.5773502691896258},{"id":"c07263","function":"ss_sorensen_dice","pair":63,"parameters":[1],"expected":1.0},{"id":"c07264","function":"ss_sorensen_dice","pair":63,"parameters":[2],"expected":0.8},{"id":"c07265","function":"ss_sorensen_dice","pair":63,"parameters":[3],"expected":0.5},{"id":"c07266","function":"ss_overlap_coefficient","pair":63,"parameters":[1],"expected":1.0},{"id":"c07267","function":"ss_overlap_coefficient","pair":63,"parameters":[2],"expected":1.0},{"id":"c07268","function":"ss_overlap_coefficient","pair":63,"parameters":[3],"expected":1.0},{"id":"c07269","function":"ss_braun_blanquet","pair":63,"parameters":[1],"expected":1.0},{"id":"c07270","function":"ss_braun_blanquet","pair":63,"parameters":[2],"expected":0.6666666666666666},{"id":"c07271","function":"ss_braun_blanquet","pair":63,"parameters":[3],"expected":0.3333333333333333},{"id":"c07272","function":"ss_jaro_winkler","pair":63,"parameters":[0.2,6],"expected":0.9333333333333333},{"id":"c07273","function":"ss_needleman_wunsch","pair":63,"parameters":[2,-2,-1],"expected":0.75},{"id":"c07274","function":"ss_smith_waterman","pair":63,"parameters":[3,-1,-2],"expected":1.0},{"id":"c07275","function":"ss_affine_gap","pair":63,"parameters":[-2,-3,-2],"expected":0.0},{"id":"c07276","function":"ss_monge_elkan","pair":63,"parameters":["jaro_winkler",0],"expected":0.8833333333333334},{"id":"c07277","function":"ss_monge_elkan","pair":63,"parameters":["jaro_winkler",1],"expected":1.0},{"id":"c07278","function":"ss_monge_elkan","pair":63,"parameters":["jaro_winkler",2],"expected":0.8333333333333333},{"id":"c07279","function":"ss_monge_elkan","pair":63,"parameters":["jaro_winkler",3],"expected":0.6666666666666666},{"id":"c07280","function":"ss_monge_elkan","pair":63,"parameters":["jaro",0],"expected":0.8333333333333334},{"id":"c07281","function":"ss_monge_elkan","pair":63,"parameters":["jaro",1],"expected":1.0},{"id":"c07282","function":"ss_monge_elkan","pair":63,"parameters":["jaro",2],"expected":0.8333333333333333},{"id":"c07283","function":"ss_monge_elkan","pair":63,"parameters":["jaro",3],"expected":0.6666666666666666},{"id":"c07284","function":"ss_monge_elkan","pair":63,"parameters":["levenshtein",0],"expected":0.5},{"id":"c07285","function":"ss_monge_elkan","pair":63,"parameters":["levenshtein",1],"expected":1.0},{"id":"c07286","function":"ss_monge_elkan","pair":63,"parameters":["levenshtein",2],"expected":0.8333333333333333},{"id":"c07287","function":"ss_monge_elkan","pair":63,"parameters":["levenshtein",3],"expected":0.7777777777777779},{"id":"c07288","function":"ss_monge_elkan","pair":63,"parameters":["needleman_wunsch",0],"expected":0.5},{"id":"c07289","function":"ss_monge_elkan","pair":63,"parameters":["needleman_wunsch",1],"expected":1.0},{"id":"c07290","function":"ss_monge_elkan","pair":63,"parameters":["needleman_wunsch",2],"expected":0.875},{"id":"c07291","function":"ss_monge_elkan","pair":63,"parameters":["needleman_wunsch",3],"expected":0.8333333333333333},{"id":"c07292","function":"ss_monge_elkan","pair":63,"parameters":["smith_waterman",0],"expected":1.0},{"id":"c07293","function":"ss_monge_elkan","pair":63,"parameters":["smith_waterman",1],"expected":1.0},{"id":"c07294","function":"ss_monge_elkan","pair":63,"parameters":["smith_waterman",2],"expected":0.9166666666666667},{"id":"c07295","function":"ss_monge_elkan","pair":63,"parameters":["smith_waterman",3],"expected":0.8888888888888888}]} diff --git a/examples/extensions/second-string/tests/test_client.py b/examples/extensions/second-string/tests/test_client.py new file mode 100644 index 000000000..e468b09b5 --- /dev/null +++ b/examples/extensions/second-string/tests/test_client.py @@ -0,0 +1,216 @@ +"""Expression serialization and free option validation; no server is required.""" + +import importlib +import math +import sys +from collections.abc import Callable +from dataclasses import dataclass +from types import ModuleType +from typing import TYPE_CHECKING, cast + +import pytest +from pyspark.sql import Column +from pyspark.sql.connect import functions as F +from pyspark.sql.connect.column import Column as ConnectColumn +from pyspark.sql.connect.expressions import CallFunction +from sail_second_string import ExtensionManifest, extension +from sail_second_string import functions as ss + +if TYPE_CHECKING: + from pyspark.sql.connect.client import SparkConnectClient + + +@dataclass(frozen=True, slots=True) +class ExpressionCase: + column: Column + name: str + arity: int + + +DEFAULT_CASES = [ + ExpressionCase(ss.jaccard("left", "right"), "ss_jaccard", 2), + ExpressionCase(ss.sorensen_dice("left", "right"), "ss_sorensen_dice", 2), + ExpressionCase(ss.overlap_coefficient("left", "right"), "ss_overlap_coefficient", 2), + ExpressionCase(ss.cosine("left", "right"), "ss_cosine", 2), + ExpressionCase(ss.braun_blanquet("left", "right"), "ss_braun_blanquet", 2), + ExpressionCase(ss.monge_elkan("left", "right"), "ss_monge_elkan", 2), + ExpressionCase(ss.levenshtein("left", "right"), "ss_levenshtein", 2), + ExpressionCase(ss.lcs_similarity("left", "right"), "ss_lcs_similarity", 2), + ExpressionCase(ss.jaro("left", "right"), "ss_jaro", 2), + ExpressionCase(ss.jaro_winkler("left", "right"), "ss_jaro_winkler", 2), + ExpressionCase(ss.needleman_wunsch("left", "right"), "ss_needleman_wunsch", 2), + ExpressionCase(ss.smith_waterman("left", "right"), "ss_smith_waterman", 2), + ExpressionCase(ss.affine_gap("left", "right"), "ss_affine_gap", 2), + ExpressionCase(ss.soundex("left"), "ss_soundex", 1), + ExpressionCase(ss.refined_soundex("left"), "ss_refined_soundex", 1), + ExpressionCase(ss.double_metaphone("left"), "ss_double_metaphone", 1), +] + +CONFIGURED_CASES = [ + ExpressionCase(ss.jaccard("left", "right", ngram_size=2), "ss_jaccard_with_options", 3), + ExpressionCase( + ss.sorensen_dice("left", "right", ngram_size=2), "ss_sorensen_dice_with_options", 3 + ), + ExpressionCase( + ss.overlap_coefficient("left", "right", ngram_size=2), + "ss_overlap_coefficient_with_options", + 3, + ), + ExpressionCase(ss.cosine("left", "right", ngram_size=2), "ss_cosine_with_options", 3), + ExpressionCase( + ss.braun_blanquet("left", "right", ngram_size=2), "ss_braun_blanquet_with_options", 3 + ), + ExpressionCase( + ss.monge_elkan("left", "right", inner_metric="levenshtein", ngram_size=2), + "ss_monge_elkan_with_options", + 4, + ), + ExpressionCase( + ss.jaro_winkler("left", "right", prefix_scale=0.2, prefix_cap=6), + "ss_jaro_winkler_with_options", + 4, + ), + ExpressionCase( + ss.needleman_wunsch("left", "right", match_score=2), "ss_needleman_wunsch_with_options", 5 + ), + ExpressionCase( + ss.smith_waterman("left", "right", match_score=3), "ss_smith_waterman_with_options", 5 + ), + ExpressionCase( + ss.affine_gap("left", "right", gap_open_penalty=-3), "ss_affine_gap_with_options", 5 + ), +] + + +@pytest.mark.parametrize("case", DEFAULT_CASES + CONFIGURED_CASES, ids=lambda case: case.name) +def test_helpers_serialize_as_named_native_function_calls(case: ExpressionCase) -> None: + assert isinstance(case.column, ConnectColumn) + assert isinstance(case.column._expr, CallFunction) + plan = case.column._expr.to_plan(cast("SparkConnectClient", None)) + assert plan.WhichOneof("expr_type") == "call_function" + function = plan.call_function + assert function.function_name == case.name + assert len(function.arguments) == case.arity + for argument, name in zip(function.arguments[:2], ("left", "right"), strict=False): + assert argument.unresolved_attribute.unparsed_identifier == name + + +def test_column_inputs_and_literal_values_stay_column_expressions() -> None: + result = ss.levenshtein(F.col("left"), F.lit("spark")) + assert isinstance(result, ConnectColumn) + plan = result._expr.to_plan(cast("SparkConnectClient", None)) + arguments = plan.call_function.arguments + assert arguments[0].unresolved_attribute.unparsed_identifier == "left" + assert arguments[1].literal.string == "spark" + + +def test_custom_integer_options_are_scala_int_literals() -> None: + result = ss.monge_elkan("left", "right", inner_metric="jaro", ngram_size=2) + assert isinstance(result, ConnectColumn) + plan = result._expr.to_plan(cast("SparkConnectClient", None)) + options = plan.call_function.arguments[2:] + assert options[0].literal.string == "jaro" + assert options[1].WhichOneof("expr_type") == "literal" + assert options[1].literal.integer == 2 + + +def test_manifest_is_available_without_loading_native(monkeypatch: pytest.MonkeyPatch) -> None: + def forbidden_import(name: str, package: str | None = None) -> ModuleType: + raise AssertionError(f"unexpected native import: {name}, {package}") + + monkeypatch.setattr(importlib, "import_module", forbidden_import) + assert extension.manifest() == { + "name": "second_string", + "version": "0.1.0", + "api_version": 1, + "datafusion_version": "55.1.0", + "arrow_version": "59.3.0", + "placement": "any", + "relation_types": [], + } + first = ExtensionManifest().to_wire() + first["relation_types"] = ["mutated"] + assert extension.manifest()["relation_types"] == [] + + +def test_binding_imports_native_only_when_requested(monkeypatch: pytest.MonkeyPatch) -> None: + class FakeBinding: + def __init__(self, session_id: str) -> None: + self.session_id = session_id + + def scalar_udfs(self) -> list[object]: + return [] + + class FakeNativeModule(ModuleType): + BoundSecondString = FakeBinding + + native = FakeNativeModule("sail_second_string._native") + monkeypatch.setitem(sys.modules, "sail_second_string._native", native) + binding = extension.bind("session-42") + assert binding.session_id == "session-42" + assert binding.scalar_udfs() == [] + + +@dataclass(frozen=True, slots=True) +class InvalidCase: + helper: Callable[..., Column] + options: dict[str, object] + error: type[Exception] = ValueError + + +INVALID_CASES = [ + InvalidCase(ss.jaccard, {"ngram_size": -1}), + InvalidCase(ss.cosine, {"ngram_size": 2**31}), + InvalidCase(ss.sorensen_dice, {"ngram_size": True}, TypeError), + InvalidCase(ss.overlap_coefficient, {"ngram_size": 1.0}, TypeError), + InvalidCase(ss.monge_elkan, {"inner_metric": "lcs_similarity"}), + InvalidCase(ss.monge_elkan, {"inner_metric": "JARO"}), + InvalidCase(ss.jaro_winkler, {"prefix_scale": 0.0}), + InvalidCase(ss.jaro_winkler, {"prefix_scale": 0.251}), + InvalidCase(ss.jaro_winkler, {"prefix_scale": math.inf}), + InvalidCase(ss.jaro_winkler, {"prefix_scale": True}, TypeError), + InvalidCase(ss.jaro_winkler, {"prefix_cap": 0}), + InvalidCase(ss.jaro_winkler, {"prefix_cap": 11}), + InvalidCase(ss.jaro_winkler, {"prefix_cap": True}, TypeError), + InvalidCase(ss.needleman_wunsch, {"match_score": 0}), + InvalidCase(ss.needleman_wunsch, {"mismatch_penalty": 0}), + InvalidCase(ss.needleman_wunsch, {"gap_penalty": 0}), + InvalidCase(ss.needleman_wunsch, {"match_score": 2**31}), + InvalidCase(ss.smith_waterman, {"match_score": -1}), + InvalidCase(ss.smith_waterman, {"mismatch_penalty": 1}), + InvalidCase(ss.smith_waterman, {"gap_penalty": 1}), + InvalidCase(ss.affine_gap, {"mismatch_penalty": 0}), + InvalidCase(ss.affine_gap, {"gap_open_penalty": 0}), + InvalidCase(ss.affine_gap, {"gap_extend_penalty": 0}), + InvalidCase(ss.affine_gap, {"gap_extend_penalty": -(2**31) - 1}), +] + + +@pytest.mark.parametrize("case", INVALID_CASES) +def test_invalid_options_fail_before_a_server_call(case: InvalidCase) -> None: + with pytest.raises(case.error): + case.helper("left", "right", **case.options) + + +def test_upstream_zero_local_penalties_and_nan_prefix_remain_admitted() -> None: + assert isinstance(ss.smith_waterman("left", "right", mismatch_penalty=0, gap_penalty=0), Column) + assert isinstance(ss.jaro_winkler("left", "right", prefix_scale=math.nan), Column) + assert isinstance(ss.affine_gap("left", "right", mismatch_penalty=-(2**31)), Column) + + +def test_scala_style_aliases_use_the_same_helpers() -> None: + aliases = [ + (ss.sorensenDice, ss.sorensen_dice), + (ss.overlapCoefficient, ss.overlap_coefficient), + (ss.braunBlanquet, ss.braun_blanquet), + (ss.mongeElkan, ss.monge_elkan), + (ss.lcsSimilarity, ss.lcs_similarity), + (ss.jaroWinkler, ss.jaro_winkler), + (ss.needlemanWunsch, ss.needleman_wunsch), + (ss.smithWaterman, ss.smith_waterman), + (ss.affineGap, ss.affine_gap), + (ss.refinedSoundex, ss.refined_soundex), + (ss.doubleMetaphone, ss.double_metaphone), + ] + for alias, helper in aliases: + assert alias is helper diff --git a/examples/extensions/second-string/tests/test_oracle.py b/examples/extensions/second-string/tests/test_oracle.py new file mode 100644 index 000000000..d7962db6c --- /dev/null +++ b/examples/extensions/second-string/tests/test_oracle.py @@ -0,0 +1,207 @@ +"""Compare shuffled Spark Connect batches against the pinned compiled Scala oracle.""" + +import json +import math +from dataclasses import dataclass +from pathlib import Path + +from pyspark.sql import Column +from pyspark.sql.connect import functions as F +from pyspark.sql.connect.session import SparkSession + +REFERENCE_COMMIT = "a35db39fa8e9b65db2d201a45b86d11a6ca34b98" +ABSOLUTE_TOLERANCE = 1e-12 +DEFAULT_FUNCTIONS = frozenset( + ( + "ss_jaccard", + "ss_cosine", + "ss_sorensen_dice", + "ss_overlap_coefficient", + "ss_braun_blanquet", + "ss_monge_elkan", + "ss_levenshtein", + "ss_lcs_similarity", + "ss_jaro", + "ss_jaro_winkler", + "ss_needleman_wunsch", + "ss_smith_waterman", + "ss_affine_gap", + "ss_soundex", + "ss_refined_soundex", + "ss_double_metaphone", + ) +) +UNARY_FUNCTIONS = frozenset(("ss_soundex", "ss_refined_soundex", "ss_double_metaphone")) +type Parameter = int | float | str +type Expected = float | str + + +@dataclass(frozen=True, slots=True) +class Pair: + left: str + right: str | None + + +@dataclass(frozen=True, slots=True) +class Definition: + function: str + parameters: tuple[Parameter, ...] + + @property + def sql_name(self) -> str: + return f"{self.function}_with_options" if self.parameters else self.function + + +@dataclass(frozen=True, slots=True) +class Case: + id: str + definition: Definition + pair: Pair + expected: Expected + + +@dataclass(frozen=True, slots=True) +class Oracle: + cases: tuple[Case, ...] + + +def record(value: object) -> dict[str, object]: + if not isinstance(value, dict) or any(not isinstance(key, str) for key in value): + raise ValueError("Expected a JSON object with string keys") + return dict(value) + + +def sequence(value: object) -> list[object]: + if not isinstance(value, list): + raise TypeError("Expected a JSON array") + return list(value) + + +def text(value: object) -> str: + if not isinstance(value, str): + raise TypeError("Expected a string") + return value + + +def integer(value: object) -> int: + if type(value) is not int: + raise ValueError("Expected an integer") + return value + + +def parameter(value: object) -> Parameter: + if isinstance(value, str): + return value + if type(value) is int: + return value + if isinstance(value, float) and math.isfinite(value): + return value + raise ValueError("Expected a finite numeric or string option") + + +def expected(value: object, unary: bool) -> Expected: + if unary: + return text(value) + if not isinstance(value, (float, int)) or isinstance(value, bool): + raise TypeError("Expected a numeric reference answer") + result = float(value) + if not math.isfinite(result): + raise ValueError("Reference answer is not finite") + return result + + +def load_oracle(path: Path) -> Oracle: + root = record(json.loads(path.read_text(encoding="utf-8"))) + reference = record(root["reference"]) + if reference["commit"] != REFERENCE_COMMIT: + raise ValueError("Fixture is not from the pinned Scala source") + if reference["numeric_absolute_tolerance"] != ABSOLUTE_TOLERANCE: + raise ValueError("Fixture declares a different numerical comparison") + pairs: list[Pair] = [] + for item in sequence(root["pairs"]): + pair_record = record(item) + pairs.append( + Pair( + text(pair_record["left"]), + None if pair_record["right"] is None else text(pair_record["right"]), + ) + ) + if integer(reference["pair_count"]) != len(pairs): + raise ValueError("Fixture pair count differs") + cases: list[Case] = [] + for item in sequence(root["cases"]): + case = record(item) + function = text(case["function"]) + if function not in DEFAULT_FUNCTIONS: + raise ValueError(f"Unknown oracle function: {function}") + index = integer(case["pair"]) + if not 0 <= index < len(pairs): + raise ValueError("Oracle case names an unknown pair") + unary = function in UNARY_FUNCTIONS + params = tuple(parameter(value) for value in sequence(case["parameters"])) + if unary and params: + raise ValueError("Unary oracle function has unexpected options") + pair = pairs[index] + if not unary and pair.right is None: + raise ValueError("Binary non-null oracle case has no right input") + cases.append( + Case( + text(case["id"]), + Definition(function, params), + pair, + expected(case["expected"], unary), + ) + ) + if integer(reference["case_count"]) != len(cases) or len({case.id for case in cases}) != len( + cases + ): + raise ValueError("Fixture case count or unique IDs differ") + definitions = {case.definition for case in cases} + defaults = {definition.function for definition in definitions if not definition.parameters} + if defaults != DEFAULT_FUNCTIONS or len(definitions) != 55 or len(cases) != 7296: + raise ValueError( + "Fixture does not cover all sixteen defaults and thirty-nine option groups" + ) + return Oracle(tuple(cases)) + + +def literal(value: Parameter) -> Column: + return F.lit(value) + + +def test_all_compiled_scala_answers_through_shuffled_native_batches(spark: SparkSession) -> None: + oracle = load_oracle(Path(__file__).parent / "fixtures/oracle.json") + groups: dict[Definition, list[Case]] = {} + for case in oracle.cases: + groups.setdefault(case.definition, []).append(case) + checked: set[str] = set() + for definition, cases in groups.items(): + batch = spark.createDataFrame( + [(case.id, case.pair.left, case.pair.right) for case in cases], + "case_id STRING, left STRING, right STRING", + ).repartition(4, "case_id") + inputs = [F.col("left")] + if definition.function not in UNARY_FUNCTIONS: + inputs.append(F.col("right")) + inputs.extend(literal(value) for value in definition.parameters) + rows = batch.select( + "case_id", F.call_function(definition.sql_name, *inputs).alias("actual") + ).collect() + answers = {case.id: case.expected for case in cases} + ids = [text(row["case_id"]) for row in rows] + assert len(rows) == len(cases), f"Wrong row count for {definition}" + assert len(set(ids)) == len(ids), f"Repeated result ID for {definition}" + assert set(ids) == answers.keys(), f"Missing or extra result ID for {definition}" + for row, case_id in zip(rows, ids, strict=True): + reference_answer = answers[case_id] + actual = row["actual"] + if isinstance(reference_answer, str): + assert actual == reference_answer, f"{case_id}: {definition}, {actual!r}" + else: + assert type(actual) is float and math.isfinite(actual), f"{case_id}: {actual!r}" + assert abs(actual - reference_answer) <= ABSOLUTE_TOLERANCE, ( + f"{case_id}: {definition}, actual={actual!r}, Scala={reference_answer!r}" + ) + assert checked.isdisjoint(ids) + checked.update(ids) + assert len(checked) == len(oracle.cases) diff --git a/examples/extensions/second-string/tests/test_sail.py b/examples/extensions/second-string/tests/test_sail.py new file mode 100644 index 000000000..90de8c0e8 --- /dev/null +++ b/examples/extensions/second-string/tests/test_sail.py @@ -0,0 +1,182 @@ +"""Live native tests using a root-provided external Spark Connect session fixture.""" + +from dataclasses import dataclass + +import pytest +from pyspark.sql.connect import functions as F +from pyspark.sql.connect.session import SparkSession +from sail_second_string import functions as ss + + +@dataclass(frozen=True, slots=True) +class SqlCase: + expression: str + expected: float | str + + +DEFAULT_CASES = [ + SqlCase("ss_jaccard('a b', 'b c')", 1.0 / 3.0), + SqlCase("ss_sorensen_dice('a b', 'b c')", 0.5), + SqlCase("ss_overlap_coefficient('a b', 'b c')", 0.5), + SqlCase("ss_cosine('a b', 'b c')", 0.5), + SqlCase("ss_braun_blanquet('a b', 'b c')", 0.5), + SqlCase("ss_monge_elkan('same', 'same')", 1.0), + SqlCase("ss_levenshtein('kitten', 'sitting')", 1.0 - 3.0 / 7.0), + SqlCase("ss_lcs_similarity('abcdef', 'ace')", 0.5), + SqlCase("ss_jaro('martha', 'marhta')", 17.0 / 18.0), + SqlCase("ss_jaro_winkler('martha', 'marhta')", 0.9611111111111111), + SqlCase("ss_needleman_wunsch('aaaa', 'aaab')", 0.75), + SqlCase("ss_smith_waterman('abc', 'xabcx')", 1.0), + SqlCase("ss_affine_gap('abcdef', 'abc')", 1.0 / 6.0), + SqlCase("ss_soundex('Robert')", "R163"), + SqlCase("ss_refined_soundex('Robert')", "R01093"), + SqlCase("ss_double_metaphone('testing')", "TSTN"), +] + +CONFIGURED_SQL_CASES = [ + SqlCase("ss_jaccard_with_options('abc', 'abd', 2)", 1.0 / 3.0), + SqlCase("ss_sorensen_dice_with_options('abc', 'abd', 2)", 0.5), + SqlCase("ss_overlap_coefficient_with_options('abc', 'abd', 2)", 0.5), + SqlCase("ss_cosine_with_options('abc', 'abd', 2)", 0.5), + SqlCase("ss_braun_blanquet_with_options('abc', 'abd', 2)", 0.5), + SqlCase("ss_monge_elkan_with_options('ab ab', 'ab ac', 'levenshtein', 0)", 0.875), + SqlCase("ss_jaro_winkler_with_options('martha', 'marhta', 0.2, 6)", 44.0 / 45.0), + SqlCase("ss_needleman_wunsch_with_options('a', 'ab', 2, -2, -1)", 0.75), + SqlCase("ss_smith_waterman_with_options('ab', 'axxb', 3, -1, -2)", 0.5), + SqlCase("ss_affine_gap_with_options('aa', 'ab', -2, -2, -1)", 0.0), +] + + +@pytest.mark.parametrize("case", DEFAULT_CASES) +def test_original_sql_names_use_upstream_defaults(spark: SparkSession, case: SqlCase) -> None: + actual = spark.sql(f"SELECT {case.expression} AS result").collect()[0]["result"] + if isinstance(case.expected, float): + assert actual == pytest.approx(case.expected, abs=1e-12) + else: + assert actual == case.expected + + +@pytest.mark.parametrize("case", CONFIGURED_SQL_CASES) +def test_configured_sql_accepts_ordinary_numeric_literals( + spark: SparkSession, case: SqlCase +) -> None: + actual = spark.sql(f"SELECT {case.expression} AS result").collect()[0]["result"] + assert actual == pytest.approx(case.expected, abs=1e-12) + + +@pytest.mark.parametrize("case", DEFAULT_CASES) +def test_all_native_defaults_propagate_sql_nulls(spark: SparkSession, case: SqlCase) -> None: + name = case.expression.split("(", 1)[0] + arguments = ( + "CAST(NULL AS STRING)" + if "soundex" in name or "metaphone" in name + else "CAST(NULL AS STRING), 'text'" + ) + assert spark.sql(f"SELECT {name}({arguments}) AS result").collect()[0]["result"] is None + + +def test_configurable_python_helpers_and_utf16_scores(spark: SparkSession) -> None: + row = ( + spark.range(1) + .select( + ss.jaccard(F.lit("abc"), F.lit("abd"), ngram_size=2).alias("jaccard"), + ss.sorensen_dice(F.lit("abc"), F.lit("abd"), ngram_size=2).alias("dice"), + ss.overlap_coefficient(F.lit("abc"), F.lit("abd"), ngram_size=2).alias("overlap"), + ss.cosine(F.lit("abc"), F.lit("abd"), ngram_size=2).alias("cosine"), + ss.braun_blanquet(F.lit("abc"), F.lit("abd"), ngram_size=2).alias("braun"), + ss.monge_elkan(F.lit("ab ab"), F.lit("ab ac"), inner_metric="levenshtein").alias( + "monge" + ), + ss.jaro_winkler(F.lit("martha"), F.lit("marhta"), prefix_scale=0.2, prefix_cap=6).alias( + "winkler" + ), + ss.needleman_wunsch(F.lit("a"), F.lit("ab"), match_score=2, mismatch_penalty=-2).alias( + "global" + ), + ss.smith_waterman(F.lit("ab"), F.lit("axxb"), match_score=3, gap_penalty=-2).alias( + "local" + ), + ss.affine_gap(F.lit("aa"), F.lit("ab"), mismatch_penalty=-2).alias("affine"), + ss.levenshtein(F.lit("😀"), F.lit("😁")).alias("utf16"), + ) + .collect()[0] + ) + expected = { + "jaccard": 1.0 / 3.0, + "dice": 0.5, + "overlap": 0.5, + "cosine": 0.5, + "braun": 0.5, + "monge": 0.875, + "winkler": 44.0 / 45.0, + "global": 0.75, + "local": 0.5, + "affine": 0.0, + "utf16": 0.5, + } + for name, value in expected.items(): + assert row[name] == pytest.approx(value, abs=1e-12) + + +def test_native_helpers_after_join_and_shuffle(spark: SparkSession) -> None: + left = ( + spark.range(64) + .select((F.col("id") % 4).alias("key"), F.lit("martha").alias("left")) + .repartition(4, "key") + ) + right = ( + spark.range(4) + .select(F.col("id").alias("key"), F.lit("marhta").alias("right")) + .repartition(4, "key") + ) + rows = left.join(right, "key").select(ss.jaro_winkler("left", "right").alias("score")).collect() + assert len(rows) == 64 + assert all(row["score"] == pytest.approx(0.9611111111111111, abs=1e-12) for row in rows) + + +def test_explain_has_native_function_without_python_udf( + spark: SparkSession, capsys: pytest.CaptureFixture[str] +) -> None: + frame = spark.createDataFrame( + [("martha", "marhta"), ("dwayne", "duane")], "left STRING, right STRING" + ).select(ss.jaro_winkler("left", "right")) + frame.explain(extended=True) + explanation = capsys.readouterr().out.lower() + assert "ss_jaro_winkler" in explanation + for python_node in ("pythonudf", "batchevalpython", "arrowevalpython", "evalpython"): + assert python_node not in explanation + + +@pytest.mark.parametrize( + "expression", + ["ss_jaccard('a')", "ss_soundex('a', 'b')", "ss_jaro_winkler('a', 'b', 0.1)"], +) +def test_original_sql_arity_is_not_changed(spark: SparkSession, expression: str) -> None: + with pytest.raises(Exception, match="(?i)(argument|arity|signature|expects)"): + spark.sql(f"SELECT {expression}").collect() + + +def test_configurable_options_must_be_literals(spark: SparkSession) -> None: + query = """ + SELECT ss_jaccard_with_options(left, right, n) + FROM VALUES ('abc', 'abd', 1), ('abc', 'abd', 2) + AS t(left, right, n) + """ + with pytest.raises(Exception, match="(?i)literal"): + spark.sql(query).collect() + + +@pytest.mark.parametrize( + "expression", + [ + "ss_jaccard_with_options('a', 'a', -1)", + "ss_jaro_winkler_with_options('a', 'a', 0.0, 4)", + "ss_needleman_wunsch_with_options('a', 'a', 1, 0, -1)", + "ss_smith_waterman_with_options('a', 'a', 2, 1, -1)", + "ss_affine_gap_with_options('a', 'a', -1, 0, -1)", + "ss_monge_elkan_with_options('a', 'a', 'affine_gap', 0)", + ], +) +def test_sql_option_domains_are_validated(spark: SparkSession, expression: str) -> None: + with pytest.raises(Exception, match="(?i)(ngram|prefix|scoring|penalt|inner metric)"): + spark.sql(f"SELECT {expression}").collect()