fuzzyhash 0.1.4

Pure Rust fuzzy hash implementation
Documentation
extern crate fuzzyhash;

use fuzzyhash::{hash_buffer};
use fuzzyhash::compare::{strings};

#[test]
fn integration1() {
    let first = r#"12d9b8707784bdc6460577d2d79802a937bc7c5e
653d4332a6146ded98db2644672fc7da10ad35c6
b286e5a9367b972a5f40b4722d01388dbe1c235d
6311a2f15737d57cf59df1f67d0636ff6ea8143f
5f255e9bfad4df27f6283e5ff70f640c9e8f0ce1
1e84a19babc3ee3471a6f14ba7ab45db00966703
2707430b814386e8a50e27be70a8e38b1ce93e8c
c41b693a20a7a5dfaf2e068306de74b3feb11f1d
624f2a7cea08daf255c57bb0a698330c4f06b711
db75dcdf1905616b219f8120ffb088aebd20ad07
7c84871b1f6c355203f18e03dbf8e22cd7d87830
01198bb7e184632895b03501872ee4c257b0cb1f
743393e944a677000db0a988562fd98b0f71e60c
7287b1483fd51ef51fb3747d954ae213ac685898
14c26c67c91243587564d1a7e71d2c5b7853250f
47a200b54965019a18ba93e88980c0857dd34ca3
9e6fb1434f2ac52c78860daa1d13809e987fd1bd
d01ef35c73c9aa52a84dd59a0e31672aeb5a47df
e56d3ea7520aa66df593a2f6b394251641e6bef6
4ef268b789a1eb042dfa28683394b976cbf5d113
161dc6b59dd6f0f4350d9288105995037745de25
ab95996d25040f367785b23e11cb8cc423b5d992
08c0393c74052127e8baafb6f3bb9a0a1137bf50
b2db357d8629e6408b3bc1ace7ac1337044cb146
53c4bd8d0d0efa225c47f0af505607e5a36d726b
d99e51eeb0061741e82228c99e1c2f426525f700
65976cf155ce659de2f775060e17624fd0154bb8
e02fdc87856f8de04caddd8e6931d7c80cb64874
8b7f4e996462136b91b172a592cfef05d4063380
1a30feb7b9458b909a58fb10b80592fb1126d04a
6690195b4fe4643505c369146abce70fb1628059
9cfc9de3128ac90b70f4e967b67c8086038541cd
340c8ffc32e65debd4cfa73c1cf29664dafaf393
1b8c6303881548be754b0b9103bd66f5df46b054
e1060c8d7bebb9d40941ebdef925be8557fa22cf
52446278daf9a694a6d1b68dd72ca8317c8bc1fb
c7a225fd627ab33eae36d5bd10f4e7447e101fb6
e0e71ed2b75ecbb909b676c2e3c0b3ee07213a2f
a2855680648ae62f468d6a43adc77ca2e39c9ff0
97459b7e325bb55341390654006a866d803c4349
dc948e035531deb9af297a4fbd9fe5502da792c2
5ce4699dcd96ba470c897c4b71b40f3de8844252
7d361543706748be7676bdf431c8bb7bfc9477e4
6d571b28fb09fcf413b8b0d770f3891a27b56bf9
b139ccd5955d3fe379a065d61991573398ad414e
562a8d41fecd9467efce2cc664c9a0c939ad795f
f7f5fc26356d0ba1198d7c1ee54df9e94ae7d0bf
3ca1beb87119e20c2e7ce77a33d5eb27b01634cf
075f2a632dbfb91077e65c764fe28ca1965d5962
1b4c49f11c2bebca7f154affdaddb4e7ed035e37
4d521c192f3ed531b82b905591fad810294bfe4c
93bc88cb7e4d6e2d0cfb049a0c07f8a56d003f31
443f2c790fac63671ff3697cf3f9575a81e705be
9826e809bad977835f32c0b7a3c5766424037888
c08db213bf8c4f865ccd5dd9b0c646e8a41a29f3
400c41f09232d3f9f9f0c588ca69074f8cb345fa
ff8a56ac611c0112dfd478eff75f11fc2c5ac210
5771f7cb6d0628dd4bdf4f7289b360b1f55c7e9b
7622801ddca99d4ca75b7f1b4a87fc05c212da2e
2d5aeaeff2099d2855c96fdd6c3192712e6e4726
225857505789ab6e3e32c4e194fe0c6a174534a3
bab06ae06731da53d770a602bf06e199c5602b79
47877ad7d19d48023dbc15536c25d477a8989c27
987501c0f3834ad665b8745374c07cce419a9572
2d68227feff63059eab24766e2f35038563a655c
3f25eb29062f81d6eff030aae23cd0f677a7b63a
eec86609ba9f9cd2f1497425f2e3a3fcd8116518
d894bddc254bdc275118fd132385a2c7b8cf5845
522fb05fb3dc3255da032031a1057061e487150e
b5edd4cd43970e95c4cedcb3a4387a1012e4fd28
a46c2c677f004695f061bc2a16298e195ebe60d0
4ab9e6d029fafb29f56963cf54fd9bf35489be1a
8cc2bee32dce378da888f3246fe02e1889bc81a6
999684cfdd87b6997f6ad7b37e4969053c598791
4ab48f8ea1907955f154cf9a833eba8d73348170
4aaa2b3cc7adc66467233700175382713da15b6a
cba2893e0b522a8199177c4c3f783c0d01fc92ba
15a066c3f564445e24a434e97208ab7a20c4da95
7a974fa70883e41bd6c515ab2981429816e2abc8
72b4c379af49e23d048a6f40c99111bf61162856
4dc026c73d7ea9ae56341893859ef9597d0c5b33
2acb831feb42a5c41577748d521bdc6512bd75b0
27c8460c9fdaa9b8feb9b3c4b706a4524f59ef72
242d09c83a004a61c06b7d44c3c02569ac40d2b1
f8cc37e7ae7135ae977f7719ec66374cc97a74b1
0efbf9b428cb261611cb0ed547077e46d1d23aeb
1cba46119ca43e8d1fdb89c0197eaeed09950d64
fc02667a6cb9f9ac28233f78da12b7e38cc42189
3f94f79b533089710a461d8839d3214d91ef9c99
0a3c679818804a2407b80284be1dc6ab84bf4cf4
913ef11c6e2e7414e5cf143ad392d7e860ec4aa2
0edb6ae9fc7b56b05b5332dfc9c829192ef9c39a
0501b043fceb4ad02c03c00e57b4f1177e906d47
dca6ee23942a9800e81c88a00f118ce257db3503
e0dd6caaa22e776ea3451c9aa050357e33e342e2
b834eb3cee294435d314031e1c8e8d1234b3c982
9755dbf076132bca8c8953e84f21330cd9a39bb9
ee698dd7a9471f02561bf9db90fccb5c17df611e
3fc8074aa3a7265c371e23006f950f5bf4f00668
7565521154ef14db183581f8fcac267ca26252f2
369143e7e58998ed05525f6dfdef693f2e6eab69
7541c18628d6b5b1fc4746969fa5796adb7a4de8
"#;

    let second = r#"12d9b8707784bdc6460577d2d79802a937bc7c5e
653d4332a6146ded98db2644672fc7da10ad35c6
b286e5a9367b972a5f40b4722d01388dbe1c235d
6311a2f15737d57cf59df1f67d0636ff6ea8143f
5f255e9bfad4df27f6283e5ff70f640c9e8f0ce1
1e84a19babc3ee3471a6f14ba7ab45db00966703
2707430b814386e8a50e27be70a8e38b1ce93e8c
c41b693a20a7a5dfaf2e068306de74b3feb11f1d
624f2a7cea08daf255c57bb0a698330c4f06b711
db75dcdf1905616b219f8120ffb088aebd20ad07
7c84871b1f6c355203f18e03dbf8e22cd7d87830
01198bb7e184632895b03501872ee4c257b0cb1f
743393e944a677000db0a988562fd98b0f71e60c
7287b1483fd51ef51fb3747d954ae213ac685898
14c26c67c91243587564d1a7e71d2c5b7853250f
47a200b54965019a18ba93e88980c0857dd34ca3
9e6fb1434f2ac52c78860daa1d13809e987fd1bd
d01ef35c73c9aa52a84dd59a0e31672aeb5a47df
e56d3ea7520aa66df593a2f6b394251641e6bef6
4ef268b789a1eb042dfa28683394b976cbf5d113
161dc6b59dd6f0f4350d9288105995037745de25
ab95996d25040f367785b23e11cb8cc423b5d992
08c0393c74052127e8baafb6f3bb9a0a1137bf50
b2db357d8629e6408b3bc1ace7ac1337044cb146
53c4bd8d0d0efa225c47f0af505607e5a36d726b
d99e51eeb0061741e82228c99e1c2f426525f700
65976cf155ce659de2f775060e17624fd0154bb8
e02fdc87856f8de04caddd8e6931d7c80cb64874
8b7f4e996462136b91b172a592cfef05d4063380
1a30feb7b9458b909a58fb10b80592fb1126d04a
6690195b4fe4643505c369146abce70fb1628059
9cfc9de3128ac90b70f4e967b67c8086038541cd
340c8ffc32e65debd4cfa73c1cf29664dafaf393
1b8c6303881548be754b0b9103bd66f5df46b054
e1060c8d7bebb9d40941ebdef925be8557fa22cf
52446278daf9a694a6d1b68dd72ca8317c8bc1fb
c7a225fd627ab33eae36d5bd10f4e7447e101fb6
e0e71ed2b75ecbb909b676c2e3c0b3ee07213a2f
a2855680648ae62f468d6a43adc77ca2e39c9ff0
97459b7e325bb55341390654006a866d803c4349
dc948e035531deb9af297a4fbd9fe5502da792c2
5ce4699dcd96ba470c897c4b71b40f3de8844252
7d361543706748be7676bdf431c8bb7bfc9477e4
6d571b28fb09fcf413b8b0d770f3891a27b56bf9
b139ccd5955d3fe379a065d61991573398ad414e
562a8d41fecd9467efce2cc664c9a0c939ad795f
f7f5fc26356d0ba1198d7c1ee54df9e94ae7d0bf
3ca1beb87119e20c2e7ce77a33d5eb27b01634cf
075f2a632dbfb91077e65c764fe28ca1965d5962
1b4c49f11c2bebca7f154affdaddb4e7ed035e37
4d521c192f3ed531b82b905591fad810294bfe4c
12a59dcb14026c979722eaab748a905548982f24
531d50cadcfb125d9a13754ccb35c58f6fcb7547
b0d8a478cbc68d1102b2df8df534439997ba2927
fd85465973598d57f2c35b46bb6ca3dacf75bae7
3ba7d72e3d66de4edefec5daa770150baec7db82
aab11afb47eb58756bb2d96997e2c6a145922151
835a8ba53dfdd8b407cb1089cdddb8c0fe2c6059
d3c2d2ef2f2f4090ccd5d4c8c303f0edd6c15dcd
f9cf5b8fd110cf679200054d2e68ff1060cb9feb
049c5eef3f6abdd0c6b83596dcf6827d87e9baba
3160849c04b1ec0166bcc9f7e70ce4fff2049c6c
64ec6ce6ea2a7fd0eb11610fa3759e578ae3ca66
4f3bcc72c6f413f207aaeba1a5dd63bbe91ab205
f3c1423654179fabd4b32ad5ef1982bc36c9a895
62e9ce5cb651fee33e14fb7a99a56a5c4cca0700
8f9e3831c7c14b6c03fa5f0a949e40ad3c0f9b61
ed8b282c7a7dc190426ac57853b2d927dd866e96
41f5b06422b602f0072c2682e8be08869d520e12
c3050a0ae9841c32b20f1e4030cee23daaa89047
aba50c740ec46d1e77334055c866d1b1bd43a644
3567c86607698d3b8a067330a4fb50126d0f522c
25ddf3a291378059fb43fca77d6582a55a5731b0
0864378a42aacc22b9ecbce0f9bbdb86333c2d7e
dafdd92fdc9f6d3e447c5977976fba10264d1e19
b23df930c0f1b9d14398ba3c3bdf3ee20e3911a2
60b574cc81b659e08a2c44f3a2add5da1675fd61
351a7fbf301cc9b46f49c9af7f4f1969c3713495
7c5ba25097eba8b53030bd79bddc0b3979c78952
51850ba8a0f1f7db76f1df6a0432e4d5559a023f
e377af34935e595e7ba64b1bc3d111c2036a47fa
90f96122f538c185a22aad7ae63984fcc514bcce
c3b5d72ff1b885c4fd49bdacb51efc653997dd73
fafc17f5c28f61ac6b9a9154a173227be11ee327
607645aea1dd84c7f23d6a17d38cdeddbbe83d92
7c6278cab2d47f08c55c86021da7fed81bf1a324
1eb83584fe1511d3fd2513ee7c63d59893b824b3
86f2578150b9143c511404c3e3c52425fded407b
30d3974c9c85cd71cbbbfa47f9273a938f4f5ba9
312f7bca3077f9e200108d57ffdee9dde9082b0b
1ed01a2ccd4e5740b28aebceb196dca66fbafc36
fefe64d9991da579790e8e32aa19eadd2858ca1f
b9b9940661819572e9408766b862d1d6535df709
bad517f6afe032b68c3ef34dee432c72422dc775
a5a7f7e947cde369a5c9832ba2e26d71b577180f
24c5d19d1793122c8777beb886f9d79354454c81
38a4171a496de93c897fe28451a7d9b89cf09a5a
cf77b1d5c29359bff76cc414ce46045afa8e258b
a5aeec612e2ad5b05c494464c7d881d34a095042
4bd05aa06abce1dbba67e034d4a9e9d38c45f891
6650029767d33c416f018eba434935bd51e0e834
2263fb5c987afd04a456e78f623272615ec6a17d
"#;

    let first_hash = hash_buffer(first.to_string().into_bytes().to_vec());
    let second_hash = hash_buffer(second.to_string().into_bytes().to_vec());

    assert_eq!(strings(first_hash, second_hash), 44);
}