Sha256: aabfbe1a7e602d2e2775d704b6266eef6eee04fe291c5b85ba856e01abd6e5c8
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
module Sbn class Net attr_reader :name, :variables def initialize(name = '') @@net_count ||= 0 @@net_count += 1 @name = (name.empty? ? "net_#{@@net_count}" : name.to_underscore_sym) @variables = {} @evidence = {} end def ==(obj); test_equal(obj); end def eql?(obj); test_equal(obj); end def ===(obj); test_equal(obj); end def add_variable(variable) name = variable.name if @variables.has_key? name raise "Variable of name #{name} has already been added to this net" end @variables[name] = variable end def symbolize_evidence(evidence) # :nodoc: newevidence = {} evidence.each do |key, val| key = key.to_underscore_sym raise "Invalid variable name #{key}." unless @variables.has_key?(key) newevidence[key] = @variables[key].transform_evidence_value(val) end newevidence end def set_evidence(event) @evidence = symbolize_evidence(event) end private def test_equal(net) returnval = true returnval = false unless net.class == self.class and self.class == Net returnval = false unless net.name == @name returnval = false unless @variables.keys.map {|k| k.to_s}.sort == net.variables.keys.map {|k| k.to_s}.sort net.variables.each {|name, variable| returnval = false unless variable == @variables[name] } returnval end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sbn-0.9.1 | lib/sbn/net.rb |