Sha256: 1353763c0d91ce91262a4fcf69a2a1999c3b90155c883d971980349c1733f5d9

Contents?: true

Size: 1.09 KB

Versions: 11

Compression:

Stored size: 1.09 KB

Contents

module DbClustering
  module Models
    class Point

      attr_accessor :cluster, :is_noise, :datasource_point

      def initialize(datasource_point:, vector_params: nil)
        @is_noise = false
        @cluster = nil
        @datasource_point = datasource_point
        @vector_params = vector_params
      end

      def vector
        if @vector_params
          vector_object = @datasource_point.clustering_vector(@vector_params)
        else
          vector_object = @datasource_point.clustering_vector
        end

        if vector_object.is_a?(Hash) || vector_object.is_a?(Array)
          DbClustering::Models::Vector.new(object: vector_object)
        else
          raise "clustering_vector method needs to result to a Hash or an Array object"
        end
      end

      def visited?
        self.is_noise || !self.cluster.nil?
      end

      def is_edge_point?
        self.is_noise && !self.cluster.nil?
      end

      def is_core_point?
        !self.is_noise && !self.cluster.nil?
      end

      def is_noise_point?
        self.is_noise && self.cluster.nil?
      end

    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
db_clustering-0.1.17 lib/models/point.rb
db_clustering-0.1.16 lib/models/point.rb
db_clustering-0.1.15 lib/models/point.rb
db_clustering-0.1.14 lib/models/point.rb
db_clustering-0.1.13 lib/models/point.rb
db_clustering-0.1.12 lib/models/point.rb
db_clustering-0.1.11 lib/models/point.rb
db_clustering-0.1.10 lib/models/point.rb
db_clustering-0.1.9 lib/models/point.rb
db_clustering-0.1.8 lib/models/point.rb
db_clustering-0.1.7 lib/models/point.rb