Sha256: 8431169d7cbd28aa5dc234d47fc54d1b670ef85c4132e0d3325811b6ee2fa4a1

Contents?: true

Size: 655 Bytes

Versions: 4

Compression:

Stored size: 655 Bytes

Contents

module DbClustering
  module DatasourceAdapters
    class InMemory

      def initialize(array:)
        @array = array.map{ |datasource_point| DbClustering::Models::Point.new(datasource_point) }
      end

      def iterate_all_points
        @array.each do |point|
          yield(point)
        end
      end

      def neighbors(point:, distance_metric:, max_distance:)
        neighbors = []

        @array.each do |neighbor_candidate|
          if distance_metric.distance(point.vector, neighbor_candidate.vector) <= max_distance
            neighbors << neighbor_candidate
          end
        end

        neighbors
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
db_clustering-0.1.4 lib/datasource_adapters/in_memory.rb
db_clustering-0.1.3 lib/datasource_adapters/in_memory.rb
db_clustering-0.1.2 lib/datasource_adapters/in_memory.rb
db_clustering-0.1.1 lib/datasource_adapters/in_memory.rb