fast_interval_tree 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42b8ee0cf97e339df2d7b54b29291f6a9365eab9bda925a92d935b2c5c23ac47
4
- data.tar.gz: 90000f00518ca5f3a547e7990f9c57c7a8a72a35929b650f05b511dfa4aab2e1
3
+ metadata.gz: 76c2158339521afbea402854c53dbf41efd4e73ebec8e629e65a50a936caea52
4
+ data.tar.gz: 7566ffd399bd3c3326f225293e57b6b3f51ad65251be37139b193e97d6839a0d
5
5
  SHA512:
6
- metadata.gz: b4c99025fa3a0071bacc862ae2080e3236ad8052da0ce4556b0cc0db4c241b4a263b5df964e99f222084b3b96d3aa08098cf3197f02578acb2be8b6966da178f
7
- data.tar.gz: 6756e05df8be87515476355806a0549736512cf1eb1243db7ceeb86c2042d89c2286daababaeae8fbaee97d6baeb63cf18834207fedb9d507458c3aefb539153
6
+ metadata.gz: d643a594d55ca5d04feffacb70a77e6aacc1eb0ed220c129d2b4cab60d865b9608f2dbd1fbe870f895f5c5488dec140582baa3db27c68f81899cc2a9ddaf3a68
7
+ data.tar.gz: 90c68303fe996c0b24d130baa2d1af50462e547e05ef8d9b7920737ad1317cabb6c630b085583659e231b3be2cbb82659f1fd590a9f8e0c4d25ddea90a73ffc7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fast_interval_tree (0.2.0)
4
+ fast_interval_tree (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -19,9 +19,9 @@ module IntervalTree
19
19
 
20
20
  intervals.each do |k|
21
21
  case
22
- when k.last < x_center
22
+ when k.last.to_r < x_center
23
23
  s_left << k
24
- when k.first > x_center
24
+ when k.first.to_r > x_center
25
25
  s_right << k
26
26
  else
27
27
  s_center << k
@@ -66,11 +66,10 @@ module IntervalTree
66
66
  end
67
67
  end
68
68
 
69
- # Note: Floors the result
70
69
  def center(intervals)
71
70
  (
72
- intervals.map(&:begin).min +
73
- intervals.map(&:end).max
71
+ intervals.map(&:begin).min.to_r +
72
+ intervals.map(&:end).max.to_r
74
73
  ) / 2
75
74
  end
76
75
 
@@ -80,10 +79,10 @@ module IntervalTree
80
79
  result << k
81
80
  end
82
81
  end
83
- if node.left_node && ( point < node.x_center )
82
+ if node.left_node && ( point.to_r < node.x_center )
84
83
  point_search(node.left_node, point, []).each{|k|result << k}
85
84
  end
86
- if node.right_node && ( point >= node.x_center )
85
+ if node.right_node && ( point.to_r >= node.x_center )
87
86
  point_search(node.right_node, point, []).each{|k|result << k}
88
87
  end
89
88
  if unique
@@ -113,8 +112,8 @@ module IntervalTree
113
112
  # Search by range only
114
113
  def search(query)
115
114
  search_s_center(query) +
116
- (query.begin < x_center && left_node&.search(query) || []) +
117
- (query.end > x_center && right_node&.search(query) || [])
115
+ (query.begin.to_r < x_center && left_node&.search(query) || []) +
116
+ (query.end.to_r > x_center && right_node&.search(query) || [])
118
117
  end
119
118
 
120
119
  private
@@ -1,3 +1,3 @@
1
1
  module IntervalTree
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast_interval_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki Mishima