family-reunion 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{family-reunion}
8
- s.version = "0.1.4"
8
+ s.version = "0.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dmitry Mozzherin", "David Shorthouse"]
@@ -50,11 +50,11 @@ Gem::Specification.new do |s|
50
50
  "spec/fixtures/valid_names_strings_primary.json",
51
51
  "spec/fixtures/valid_names_strings_secondary.json",
52
52
  "spec/fuzzy_matcher_spec.rb",
53
- "spec/node_spec.rb",
54
53
  "spec/nomatch_organizer_spec.rb",
55
54
  "spec/spec_helper.rb",
56
55
  "spec/taxamatch_preprocessor_spec.rb",
57
- "spec/taxamatch_wrapper_spec.rb"
56
+ "spec/taxamatch_wrapper_spec.rb",
57
+ "spec/top_node_spec.rb"
58
58
  ]
59
59
  s.homepage = %q{http://github.com/GlobalNamesArchitecture/family-reunion}
60
60
  s.licenses = ["MIT"]
@@ -10,11 +10,11 @@ class FamilyReunion
10
10
  FamilyReunion.logger_write(@fr.object_id, "Merging exact matches of accepted names")
11
11
  add_valid_matches(get_valid_matches)
12
12
  FamilyReunion.logger_write(@fr.object_id, "Merging exact matches of accepted names to synonyms")
13
- add_synonym_matches(get_valid_to_synonym_matches, :valid_to_synonym)
13
+ add_synonym_matches(get_valid_to_synonym_matches, :exact_valid_to_synonym)
14
14
  FamilyReunion.logger_write(@fr.object_id, "Merging exact matches of synonyms to accepted names")
15
- add_synonym_matches(get_synonym_to_valid_matches, :synonym_to_valid)
15
+ add_synonym_matches(get_synonym_to_valid_matches, :exact_synonym_to_valid)
16
16
  FamilyReunion.logger_write(@fr.object_id, "Merging exact matches of synonyms")
17
- add_synonym_matches(get_synonym_to_synonym_matches, :synonym_to_synonym)
17
+ add_synonym_matches(get_synonym_to_synonym_matches, :exact_synonym_to_synonym)
18
18
  end
19
19
 
20
20
  private
@@ -28,8 +28,10 @@ class FamilyReunion
28
28
  # they are excluded from valid_matches
29
29
  valid_matches.each do |name|
30
30
  primary_id = @fr.primary_node.valid_names_hash[name][:id].to_s.to_sym
31
+ path = @fr.primary_node.valid_names_hash[name][:path]
32
+ path_ids = @fr.primary_node.valid_names_hash[name][:path_ids]
31
33
  secondary_id = @fr.secondary_node.valid_names_hash[name][:id].to_s.to_sym
32
- @fr.merges[primary_id] = {:matches => {secondary_id => {:match_type => :valid_to_valid}}, :nonmatches => []}
34
+ @fr.merges[primary_id] = {:matches => {secondary_id => {:match_type => :exact_valid_to_valid, :path => path, :path_ids => path_ids }}, :nonmatches => {}}
33
35
  end
34
36
  end
35
37
 
@@ -4,7 +4,9 @@ class FamilyReunion
4
4
  def format_secondary_id_for_merge(secondary_ids, match_type)
5
5
  secondary_ids.inject({}) do |res, i|
6
6
  raise "Secondary id is not a symbol" unless i.is_a?(Symbol)
7
- res[i] = {:match_type => match_type} unless res.has_key?(i)
7
+ path = @fr.secondary_node.ids_hash[i][:path]
8
+ path_ids = @fr.secondary_node.ids_hash[i][:path_ids]
9
+ res[i] = {:match_type => match_type, :path => path, :path_ids => path_ids} unless res.has_key?(i)
8
10
  res
9
11
  end
10
12
  end
@@ -16,7 +18,7 @@ class FamilyReunion
16
18
  @fr.merges[primary_id][:matches][key] = val unless @fr.merges[primary_id][:matches].has_key?(key)
17
19
  end
18
20
  else
19
- @fr.merges[primary_id] = {:matches => secondary_id_matches, :nonmatches => []}
21
+ @fr.merges[primary_id] = {:matches => secondary_id_matches, :nonmatches => {}}
20
22
  end
21
23
  end
22
24
  end
@@ -14,7 +14,7 @@ class FamilyReunion
14
14
  def get_nomach_secondary_ids
15
15
  return @nomatch_secondary_ids if @nomatch_secondary_ids
16
16
  match_ids = @fr.merges.map { |key, val| val[:matches].keys }.flatten.uniq
17
- empty_nodes_ids = @fr.secondary_node.data[:empty_nodes].map { |node| node[:id].to_sym }
17
+ empty_nodes_ids = @fr.secondary_node.data[:empty_nodes].map { |node| node[:id].to_s.to_sym }
18
18
  valid_names_ids = @fr.secondary_node.ids_hash.keys.map { |k| k }
19
19
  @nomatch_secondary_ids = valid_names_ids - match_ids
20
20
  end
@@ -39,18 +39,21 @@ class FamilyReunion
39
39
  name = path.pop.to_sym
40
40
  if paths_hash.has_key?(name)
41
41
  found_node = true
42
- add_merged_node(paths_hash[name][1][-1], node[:id])
42
+ add_merged_node(paths_hash[name][1][-1], node[:id].to_s.to_sym)
43
43
  break
44
44
  end
45
45
  end
46
- add_merged_node(@fr.primary_node.root_id, node[:id]) unless found_node
46
+ add_merged_node(@fr.primary_node.root_id, node[:id].to_s.to_sym) unless found_node
47
47
  end
48
48
 
49
49
  def add_merged_node(primary_node_id, secondary_node_id)
50
- if @fr.merges.has_key?(primary_node_id)
51
- @fr.merges[primary_node_id][:nonmatches] << secondary_node_id
50
+ secondary_node_id = secondary_node_id.to_s.to_sym
51
+ path = @fr.secondary_node.ids_hash[secondary_node_id][:path]
52
+ path_ids = @fr.secondary_node.ids_hash[secondary_node_id][:path_ids]
53
+ if @fr.merges.has_key?(primary_node_id) #never happens?
54
+ @fr.merges[primary_node_id][:nonmatches][secondary_node_id] = { :match_type => nil, :path => path, :path_ids => path_ids }
52
55
  else
53
- @fr.merges[primary_node_id] = {:matches => [], :nonmatches => [secondary_node_id]}
56
+ @fr.merges[primary_node_id] = { :matches => {}, :nonmatches => {secondary_node_id => { :match_type => nil, :path => path, :path_ids => path_ids } } }
54
57
  end
55
58
  end
56
59
 
@@ -48,11 +48,11 @@ class FamilyReunion
48
48
  def ids_hash
49
49
  return @ids_hash if @ids_hash
50
50
  @ids_hash = valid_names_hash.inject({}) do |res, key_val|
51
- res[key_val[1][:id].to_sym] = key_val[1]
51
+ res[key_val[1][:id].to_s.to_sym] = key_val[1]
52
52
  res
53
53
  end
54
54
  data[:empty_nodes].each do |node|
55
- @ids_hash[node[:id].to_sym] = node
55
+ @ids_hash[node[:id].to_s.to_sym] = node
56
56
  end
57
57
  @ids_hash
58
58
  end
@@ -93,7 +93,7 @@ class FamilyReunion
93
93
 
94
94
  def root_id
95
95
  unless @root_id
96
- @root_id = data[:leaves][0][:path_ids][0].to_sym
96
+ @root_id = data[:leaves][0][:path_ids][0].to_s.to_sym
97
97
  end
98
98
  @root_id
99
99
  end
@@ -1 +1 @@
1
- {"invasiveants:tid:1394":{"matches":{"hex10349843":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1395":{"matches":{"hex10349884":{"match_type":"valid_to_valid"},"hex10357986":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1397":{"matches":{"hex10349957":{"match_type":"valid_to_valid"},"hex10357927":{"match_type":"synonym_to_valid"},"hex10357934":{"match_type":"fuzzy_synonym_to_synonym"}},"nonmatches":[]},"invasiveants:tid:1396":{"matches":{"hex10349938":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1401":{"matches":{"hex10806368":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1402":{"matches":{"hex10355636":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1404":{"matches":{"hex10355627":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1405":{"matches":{"hex10355629":{"match_type":"valid_to_valid"},"hex10355612":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1400":{"matches":{"hex10355607":{"match_type":"valid_to_valid"},"hex10355632":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1399":{"matches":{"hex10355641":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1482":{"matches":{"hex10356583":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1480":{"matches":{"hex10356717":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1484":{"matches":{"hex10356627":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1483":{"matches":{"hex10356575":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1499":{"matches":{"hex10355947":{"match_type":"valid_to_valid"},"hex10356042":{"match_type":"synonym_to_valid"},"hex10357973":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1501":{"matches":{"hex10356046":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1502":{"matches":{"hex10355966":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1503":{"matches":{"hex10356075":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1504":{"matches":{"hex10356159":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1498":{"matches":{"hex10356327":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1505":{"matches":{"hex10356104":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1500":{"matches":{"hex10356252":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1508":{"matches":{"hex10349086":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1387":{"matches":{"hex10349098":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1413":{"matches":{"hex10358078":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1421":{"matches":{"hex10352185":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1423":{"matches":{"hex10352110":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1422":{"matches":{"hex10352102":{"match_type":"valid_to_valid"},"hex10357976":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1507":{"matches":{"hex10355716":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1456":{"matches":{"hex10353897":{"match_type":"valid_to_valid"},"hex10357874":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1494":{"matches":{"hex10353166":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1426":{"matches":{"hex10357236":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1445":{"matches":{"hex10355173":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1409":{"matches":{"hex10351128":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1486":{"matches":{"hex10770947":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1489":{"matches":{"hex10353034":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1487":{"matches":{"hex10353124":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1488":{"matches":{"hex10353022":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1450":{"matches":{"hex10354823":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1454":{"matches":{"hex10354888":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1451":{"matches":{"hex10354795":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1449":{"matches":{"hex10354968":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1385":{"matches":{"hex10348989":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1463":{"matches":{"hex10354276":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1462":{"matches":{"hex10354255":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1465":{"matches":{"hex10354524":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1460":{"matches":{"hex10354508":{"match_type":"valid_to_valid"},"hex10354647":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1466":{"matches":{"hex10354676":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1458":{"matches":{"hex10354638":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1461":{"matches":{"hex10354215":{"match_type":"valid_to_valid"},"hex10354233":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1459":{"matches":{"hex10354345":{"match_type":"valid_to_valid"},"hex10354584":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1472":{"matches":{"hex10358401":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1447":{"matches":{"hex10355198":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1468":{"matches":{"hex10354059":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1419":{"matches":{"hex10357434":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1418":{"matches":{"hex10357430":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1415":{"matches":{"hex10358491":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1416":{"matches":{"hex10358551":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1392":{"matches":{"hex10351300":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1389":{"matches":{"hex10351289":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1391":{"matches":{"hex10351309":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1390":{"matches":{"hex10351285":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1475":{"matches":{"hex10357837":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1478":{"matches":{"hex10357759":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1476":{"matches":{"hex10357766":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1477":{"matches":{"hex10357857":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1474":{"matches":{"hex10357716":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1436":{"matches":{"hex10358305":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1437":{"matches":{"hex10358173":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1430":{"matches":{"hex10352512":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1431":{"matches":{"hex10352415":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1428":{"matches":{"hex10352498":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1429":{"matches":{"hex10352402":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1434":{"matches":{"hex10351578":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1470":{"matches":{"hex10358678":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1411":{"matches":{"hex10352902":{"match_type":"valid_to_valid"}},"nonmatches":[]},"invasiveants:tid:1481":{"matches":{"hex10356720":{"match_type":"valid_to_synonym"}},"nonmatches":[]},"invasiveants:tid:1491":{"matches":{"hex10358019":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1492":{"matches":{"hex10358021":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1496":{"matches":{"hex10353188":{"match_type":"synonym_to_valid"},"hex10353182":{"match_type":"synonym_to_valid"},"hex10353170":{"match_type":"synonym_to_valid"},"hex10353199":{"match_type":"synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1407":{"matches":{"hex10349533":{"match_type":"synonym_to_valid"},"hex10758181":{"match_type":"fuzzy_valid_to_synonym"},"hex10758108":{"match_type":"fuzzy_synonym_to_valid"}},"nonmatches":[]},"invasiveants:tid:1453":{"matches":{"hex10354887":{"match_type":"fuzzy_valid_to_valid"}},"nonmatches":[]}}
1
+ {"invasiveants:tid:1394":{"matches":{"hex10349843":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus floridanus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1394"]}},"nonmatches":{}},"invasiveants:tid:1395":{"matches":{"hex10349884":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus herculeanus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1395"]},"hex10357986":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica atra"],"path_ids":["hex100521","hex1023020","hex10357986"]}},"nonmatches":{}},"invasiveants:tid:1397":{"matches":{"hex10349957":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus sexguttatus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1397"]},"hex10357927":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica ruficeps"],"path_ids":["hex100521","hex1023020","hex10357927"]},"hex10357934":{"match_type":"fuzzy_synonym_to_synonym","path":["Formicidae","Formica","Formica lavateri"],"path_ids":["hex100521","hex1023020","hex10357934"]}},"nonmatches":{}},"invasiveants:tid:1396":{"matches":{"hex10349938":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus planatus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1396"]}},"nonmatches":{}},"invasiveants:tid:1401":{"matches":{"hex10806368":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla minutior"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1401"]}},"nonmatches":{}},"invasiveants:tid:1402":{"matches":{"hex10355636":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla nuda"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1402"]}},"nonmatches":{}},"invasiveants:tid:1404":{"matches":{"hex10355627":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla venustula"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1404"]}},"nonmatches":{}},"invasiveants:tid:1405":{"matches":{"hex10355629":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla wroughtonii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1405"]},"hex10355612":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla longispina"],"path_ids":["hex100521","hex1022909","hex10355612"]}},"nonmatches":{}},"invasiveants:tid:1400":{"matches":{"hex10355607":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla mauritanica"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1400"]},"hex10355632":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla ectopia"],"path_ids":["hex100521","hex1022909","hex10355632"]}},"nonmatches":{}},"invasiveants:tid:1399":{"matches":{"hex10355641":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla emeryi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1399"]}},"nonmatches":{}},"invasiveants:tid:1482":{"matches":{"hex10356583":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis richteri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1482"]}},"nonmatches":{}},"invasiveants:tid:1480":{"matches":{"hex10356717":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis geminata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1480"]}},"nonmatches":{}},"invasiveants:tid:1484":{"matches":{"hex10356627":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis xyloni"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1484"]}},"nonmatches":{}},"invasiveants:tid:1483":{"matches":{"hex10356575":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis texana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1483"]}},"nonmatches":{}},"invasiveants:tid:1499":{"matches":{"hex10355947":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium caespitum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1499"]},"hex10356042":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Tetramorium","Tetramorium jiangxiense"],"path_ids":["hex100521","hex1022945","hex10356042"]},"hex10357973":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica fusca"],"path_ids":["hex100521","hex1023020","hex10357973"]}},"nonmatches":{}},"invasiveants:tid:1501":{"matches":{"hex10356046":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium insolens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1501"]}},"nonmatches":{}},"invasiveants:tid:1502":{"matches":{"hex10355966":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium lanuginosum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1502"]}},"nonmatches":{}},"invasiveants:tid:1503":{"matches":{"hex10356075":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium pacificum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1503"]}},"nonmatches":{}},"invasiveants:tid:1504":{"matches":{"hex10356159":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium simillimum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1504"]}},"nonmatches":{}},"invasiveants:tid:1498":{"matches":{"hex10356327":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium bicarinatum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1498"]}},"nonmatches":{}},"invasiveants:tid:1505":{"matches":{"hex10356104":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium tsushimae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1505"]}},"nonmatches":{}},"invasiveants:tid:1500":{"matches":{"hex10356252":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium caldarium"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1500"]}},"nonmatches":{}},"invasiveants:tid:1508":{"matches":{"hex10349086":{"match_type":"exact_valid_to_valid","path":["Formicidae","Anoplolepis","Anoplolepis gracilipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1386","invasiveants:tid:1508"]}},"nonmatches":{}},"invasiveants:tid:1387":{"matches":{"hex10349098":{"match_type":"exact_valid_to_valid","path":["Formicidae","Anoplolepis","Anoplolepis custodiens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1386","invasiveants:tid:1387"]}},"nonmatches":{}},"invasiveants:tid:1413":{"matches":{"hex10358078":{"match_type":"exact_valid_to_valid","path":["Formicidae","Formica","Formica truncorum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1412","invasiveants:tid:1413"]}},"nonmatches":{}},"invasiveants:tid:1421":{"matches":{"hex10352185":{"match_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius alienus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1421"]}},"nonmatches":{}},"invasiveants:tid:1423":{"matches":{"hex10352110":{"match_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius niger"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1423"]}},"nonmatches":{}},"invasiveants:tid:1422":{"matches":{"hex10352102":{"match_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius flavus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1422"]},"hex10357976":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica ruficornis"],"path_ids":["hex100521","hex1023020","hex10357976"]}},"nonmatches":{}},"invasiveants:tid:1507":{"matches":{"hex10355716":{"match_type":"exact_valid_to_valid","path":["Formicidae","Wasmannia","Wasmannia auropunctata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1506","invasiveants:tid:1507"]}},"nonmatches":{}},"invasiveants:tid:1456":{"matches":{"hex10353897":{"match_type":"exact_valid_to_valid","path":["Formicidae","Paratrechina","Paratrechina longicornis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1455","invasiveants:tid:1456"]},"hex10357874":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica vagans"],"path_ids":["hex100521","hex1023020","hex10357874"]}},"nonmatches":{}},"invasiveants:tid:1494":{"matches":{"hex10353166":{"match_type":"exact_valid_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex albipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1493","invasiveants:tid:1494"]}},"nonmatches":{}},"invasiveants:tid:1426":{"matches":{"hex10357236":{"match_type":"exact_valid_to_valid","path":["Formicidae","Linepithema","Linepithema humile"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1425","invasiveants:tid:1426"]}},"nonmatches":{}},"invasiveants:tid:1445":{"matches":{"hex10355173":{"match_type":"exact_valid_to_valid","path":["Formicidae","Ochetellus","Ochetellus glaber"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1444","invasiveants:tid:1445"]}},"nonmatches":{}},"invasiveants:tid:1409":{"matches":{"hex10351128":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cyphomyrmex","Cyphomyrmex rimosus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1408","invasiveants:tid:1409"]}},"nonmatches":{}},"invasiveants:tid:1486":{"matches":{"hex10770947":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys emmae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1486"]}},"nonmatches":{}},"invasiveants:tid:1489":{"matches":{"hex10353034":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys silvestrii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1489"]}},"nonmatches":{}},"invasiveants:tid:1487":{"matches":{"hex10353124":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys lanuginosa"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1487"]}},"nonmatches":{}},"invasiveants:tid:1488":{"matches":{"hex10353022":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys rogeri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1488"]}},"nonmatches":{}},"invasiveants:tid:1450":{"matches":{"hex10354823":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla luteipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1450"]}},"nonmatches":{}},"invasiveants:tid:1454":{"matches":{"hex10354888":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla stigma"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1454"]}},"nonmatches":{}},"invasiveants:tid:1451":{"matches":{"hex10354795":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla obscurans"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1451"]}},"nonmatches":{}},"invasiveants:tid:1449":{"matches":{"hex10354968":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla chinensis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1449"]}},"nonmatches":{}},"invasiveants:tid:1385":{"matches":{"hex10348989":{"match_type":"exact_valid_to_valid","path":["Formicidae","Anochetus","Anochetus mayri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1384","invasiveants:tid:1385"]}},"nonmatches":{}},"invasiveants:tid:1463":{"matches":{"hex10354276":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole moerens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1463"]}},"nonmatches":{}},"invasiveants:tid:1462":{"matches":{"hex10354255":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole micula"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1462"]}},"nonmatches":{}},"invasiveants:tid:1465":{"matches":{"hex10354524":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole oceanica"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1465"]}},"nonmatches":{}},"invasiveants:tid:1460":{"matches":{"hex10354508":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole flavens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1460"]},"hex10354647":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole greggi"],"path_ids":["hex100521","hex1022881","hex10354647"]}},"nonmatches":{}},"invasiveants:tid:1466":{"matches":{"hex10354676":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole teneriffana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1466"]}},"nonmatches":{}},"invasiveants:tid:1458":{"matches":{"hex10354638":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole anastasii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1458"]}},"nonmatches":{}},"invasiveants:tid:1461":{"matches":{"hex10354215":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole megacephala"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1461"]},"hex10354233":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole perpusilla"],"path_ids":["hex100521","hex1022881","hex10354233"]}},"nonmatches":{}},"invasiveants:tid:1459":{"matches":{"hex10354345":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole fervens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1459"]},"hex10354584":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole amia"],"path_ids":["hex100521","hex1022881","hex10354584"]}},"nonmatches":{}},"invasiveants:tid:1472":{"matches":{"hex10358401":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pseudomyrmex","Pseudomyrmex gracilis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1471","invasiveants:tid:1472"]}},"nonmatches":{}},"invasiveants:tid:1447":{"matches":{"hex10355198":{"match_type":"exact_valid_to_valid","path":["Formicidae","Odontomachus","Odontomachus ruginodis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1446","invasiveants:tid:1447"]}},"nonmatches":{}},"invasiveants:tid:1468":{"matches":{"hex10354059":{"match_type":"exact_valid_to_valid","path":["Formicidae","Plagiolepis","Plagiolepis alluaudi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1467","invasiveants:tid:1468"]}},"nonmatches":{}},"invasiveants:tid:1419":{"matches":{"hex10357434":{"match_type":"exact_valid_to_valid","path":["Formicidae","Hypoponera","Hypoponera punctatissima"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1417","invasiveants:tid:1419"]}},"nonmatches":{}},"invasiveants:tid:1418":{"matches":{"hex10357430":{"match_type":"exact_valid_to_valid","path":["Formicidae","Hypoponera","Hypoponera opaciceps"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1417","invasiveants:tid:1418"]}},"nonmatches":{}},"invasiveants:tid:1415":{"matches":{"hex10358491":{"match_type":"exact_valid_to_valid","path":["Formicidae","Gnamptogenys","Gnamptogenys porcata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1414","invasiveants:tid:1415"]}},"nonmatches":{}},"invasiveants:tid:1416":{"matches":{"hex10358551":{"match_type":"exact_valid_to_valid","path":["Formicidae","Gnamptogenys","Gnamptogenys triangularis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1414","invasiveants:tid:1416"]}},"nonmatches":{}},"invasiveants:tid:1392":{"matches":{"hex10351300":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex patagonicus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1392"]}},"nonmatches":{}},"invasiveants:tid:1389":{"matches":{"hex10351289":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex brevicornis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1389"]}},"nonmatches":{}},"invasiveants:tid:1391":{"matches":{"hex10351309":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex obscurior"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1391"]}},"nonmatches":{}},"invasiveants:tid:1390":{"matches":{"hex10351285":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex minutus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1390"]}},"nonmatches":{}},"invasiveants:tid:1475":{"matches":{"hex10357837":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica gundlachi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1475"]}},"nonmatches":{}},"invasiveants:tid:1478":{"matches":{"hex10357759":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica membranifera"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1478"]}},"nonmatches":{}},"invasiveants:tid:1476":{"matches":{"hex10357766":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica hexamera"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1476"]}},"nonmatches":{}},"invasiveants:tid:1477":{"matches":{"hex10357857":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica margaritae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1477"]}},"nonmatches":{}},"invasiveants:tid:1474":{"matches":{"hex10357716":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica eggersi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1474"]}},"nonmatches":{}},"invasiveants:tid:1436":{"matches":{"hex10358305":{"match_type":"exact_valid_to_valid","path":["Formicidae","Myrmica","Myrmica rubra"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1435","invasiveants:tid:1436"]}},"nonmatches":{}},"invasiveants:tid:1437":{"matches":{"hex10358173":{"match_type":"exact_valid_to_valid","path":["Formicidae","Myrmica","Myrmica ruginodis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1435","invasiveants:tid:1437"]}},"nonmatches":{}},"invasiveants:tid:1430":{"matches":{"hex10352512":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium floricola"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1430"]}},"nonmatches":{}},"invasiveants:tid:1431":{"matches":{"hex10352415":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium pharaonis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1431"]}},"nonmatches":{}},"invasiveants:tid:1428":{"matches":{"hex10352498":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium destructor"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1428"]}},"nonmatches":{}},"invasiveants:tid:1429":{"matches":{"hex10352402":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium ebeninum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1429"]}},"nonmatches":{}},"invasiveants:tid:1434":{"matches":{"hex10351578":{"match_type":"exact_valid_to_valid","path":["Formicidae","Myrmelachista","Myrmelachista ramulorum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1433","invasiveants:tid:1434"]}},"nonmatches":{}},"invasiveants:tid:1470":{"matches":{"hex10358678":{"match_type":"exact_valid_to_valid","path":["Formicidae","Prionopelta","Prionopelta antillana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1469","invasiveants:tid:1470"]}},"nonmatches":{}},"invasiveants:tid:1411":{"matches":{"hex10352902":{"match_type":"exact_valid_to_valid","path":["Formicidae","Eurhopalothrix","Eurhopalothrix floridana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1410","invasiveants:tid:1411"]}},"nonmatches":{}},"invasiveants:tid:1481":{"matches":{"hex10356720":{"match_type":"exact_valid_to_synonym","path":["Formicidae","Solenopsis","Solenopsis wagneri"],"path_ids":["hex100521","hex1022959","hex10356720"]}},"nonmatches":{}},"invasiveants:tid:1491":{"matches":{"hex10358019":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica nana"],"path_ids":["hex100521","hex1023020","hex10358019"]}},"nonmatches":{}},"invasiveants:tid:1492":{"matches":{"hex10358021":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica gracilis"],"path_ids":["hex100521","hex1023020","hex10358021"]}},"nonmatches":{}},"invasiveants:tid:1496":{"matches":{"hex10353188":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex foreli"],"path_ids":["hex100521","hex1022839","hex10353188"]},"hex10353182":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex primroseae"],"path_ids":["hex100521","hex1022839","hex10353182"]},"hex10353170":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex brevicornis"],"path_ids":["hex100521","hex1022839","hex10353170"]},"hex10353199":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex atrichosus"],"path_ids":["hex100521","hex1022839","hex10353199"]}},"nonmatches":{}},"invasiveants:tid:1407":{"matches":{"hex10349533":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Crematogaster","Crematogaster agnita"],"path_ids":["hex100521","hex1022726","hex10349533"]},"hex10758181":{"match_type":"fuzzy_valid_to_synonym","path":["Formicidae","Trapeziopelta","Trapeziopelta diadela"],"path_ids":["hex100521","hex1057748","hex10758181"]},"hex10758108":{"match_type":"fuzzy_synonym_to_valid","path":["Formicidae","Nothosphinctus","Nothosphinctus silaceus"],"path_ids":["hex100521","hex1057733","hex10758108"]}},"nonmatches":{}},"invasiveants:tid:1453":{"matches":{"hex10354887":{"match_type":"fuzzy_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla solitaria"],"path_ids":["hex100521","hex1022882","hex10354887"]}},"nonmatches":{}}}
@@ -24,9 +24,9 @@ describe FamilyReunion::FuzzyMatcher do
24
24
  end
25
25
 
26
26
  it "should be able to add matches to merges object" do
27
- matched_nodes = [[{:id=>"invasiveants:tid:1453", :path=>["Formicidae", "Pachycondlya", "Pachycondlya solitaria"], :path_ids=>["invasiveants:tid:1381", "invasiveants:tid:1452", "invasiveants:tid:1453"], :rank=>"species", :valid_name=>{:name=>"Pachycondlya solitaria (Smith, F. 1860)", :canonical_name=>"Pachycondlya solitaria", :type=>"valid", :status=>nil}, :synonyms=>[], :name_to_match=>"Pachycondlya solitaria (Smith, F. 1860)"}, [{:id=>"hex10354887", :path=>["Formicidae", "Pachycondyla", "Pachycondyla solitaria"], :path_ids=>["hex100521", "hex1022882", "hex10354887"], :rank=>"species", :valid_name=>{:name=>"Pachycondyla solitaria (Smith, 1860)", :canonical_name=>"Pachycondyla solitaria", :type=>"valid", :status=>"accepted"}, :synonyms=>[], :name_to_match=>"Pachycondyla solitaria (Smith, 1860)"}]]]
28
- @fm.add_matches(matched_nodes)
29
- @fr.merges.should == ''
27
+ @fr.stubs(:merges => {})
28
+ @fm.merge
29
+ @fr.merges.should == {:"invasiveants:tid:1453"=>{:matches=>{:hex10354887=>{:match_type=>:fuzzy_valid_to_valid, :path=>["Formicidae", "Pachycondyla", "Pachycondyla solitaria"], :path_ids=>["hex100521", "hex1022882", "hex10354887"]}}, :nonmatches=>{}}, :"invasiveants:tid:1407"=>{:matches=>{:hex10758181=>{:match_type=>:fuzzy_valid_to_synonym, :path=>["Formicidae", "Trapeziopelta", "Trapeziopelta diadela"], :path_ids=>["hex100521", "hex1057748", "hex10758181"]}, :hex10758108=>{:match_type=>:fuzzy_synonym_to_valid, :path=>["Formicidae", "Nothosphinctus", "Nothosphinctus silaceus"], :path_ids=>["hex100521", "hex1057733", "hex10758108"]}}, :nonmatches=>{}}, :"invasiveants:tid:1397"=>{:matches=>{:hex10357934=>{:match_type=>:fuzzy_synonym_to_synonym, :path=>["Formicidae", "Formica", "Formica lavateri"], :path_ids=>["hex100521", "hex1023020", "hex10357934"]}}, :nonmatches=>{}}}
30
30
  end
31
31
 
32
32
  end
@@ -18,6 +18,6 @@ describe FamilyReunion::NomatchOrganizer do
18
18
  it "should be able to assign nomatches to branches in primary node" do
19
19
  @fr.stubs(:merges => @merges)
20
20
  @no.merge
21
- puts ''
21
+ @fr.merges.select {|k, v| !v[:nonmatches].empty?}.inject(0) {|res, data| res += data.size; res }.should == 62
22
22
  end
23
23
  end
@@ -8,7 +8,7 @@ describe FamilyReunion::TopNode do
8
8
 
9
9
  it "should get hash with ids as keys for valid names" do
10
10
  res = @node.ids_hash
11
- res.size.should == 96
11
+ res.size.should == 97
12
12
  res[:'invasiveants:tid:1489'].is_a?(Hash).should be_true
13
13
  end
14
14
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 4
9
- version: 0.1.4
8
+ - 5
9
+ version: 0.1.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Dmitry Mozzherin
@@ -214,11 +214,11 @@ files:
214
214
  - spec/fixtures/valid_names_strings_primary.json
215
215
  - spec/fixtures/valid_names_strings_secondary.json
216
216
  - spec/fuzzy_matcher_spec.rb
217
- - spec/node_spec.rb
218
217
  - spec/nomatch_organizer_spec.rb
219
218
  - spec/spec_helper.rb
220
219
  - spec/taxamatch_preprocessor_spec.rb
221
220
  - spec/taxamatch_wrapper_spec.rb
221
+ - spec/top_node_spec.rb
222
222
  has_rdoc: true
223
223
  homepage: http://github.com/GlobalNamesArchitecture/family-reunion
224
224
  licenses:
@@ -233,7 +233,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
- hash: -1421116425701370926
236
+ hash: -4529932705422287836
237
237
  segments:
238
238
  - 0
239
239
  version: "0"