lib/fuzzy_realty.rb in rkneufeld-fuzzy-realty-0.4.0 vs lib/fuzzy_realty.rb in rkneufeld-fuzzy-realty-0.5.0
- old
+ new
@@ -1,8 +1,8 @@
-require 'stubs.rb'
-require 'scores_table.rb'
require 'weights.rb'
+require 'classes.rb'
+require 'scores_table.rb'
require 'rulebase.rb'
# If set this flag will turn on debugging printouts
#$debug = true;
@@ -39,16 +39,32 @@
:location => %W{A B C D}[rand(4)],
:style => %W{Bungalow Bi-level Split-level Two-story Condominium}[rand(5)]
})
end
- parameters = []
- parameters << FuzzyRealty::Parameter.new(:price,250000)
- parameters << FuzzyRealty::Parameter.new(:location, 'A',true)
- parameters << FuzzyRealty::Parameter.new(:style,"Condominium",true)
- parameters << FuzzyRealty::Parameter.new(:sqft,1575,true)
- query = FuzzyRealty::Query.new(parameters)
+ query = FuzzyRealty::Query.new
+ query << FuzzyRealty::Parameter.new(:price,250000)
+ query << FuzzyRealty::Parameter.new(:location, 'A',true)
+ query << FuzzyRealty::Parameter.new(:style,"Condominium",true)
+ query << FuzzyRealty::Parameter.new(:sqft,1575,true)
+
scores = FuzzyRealty::ExpertSystem.scores(listings,query)
- scores.each do |score|
+ puts "Query 1, $250k Condominium in the prestiguous 'A' suburbs. 1575 sq. ft."
+ puts "Top 20 Listings:"
+ scores[(0..20)].each do |score|
+ puts "%.2f" % score[:score] + "\t\t#{score[:listing].inspect}"
+ end
+
+ puts "\n"
+ query = FuzzyRealty::Query.new
+ query << FuzzyRealty::Parameter.new(:price,99_000,true)
+ query << FuzzyRealty::Parameter.new(:location,'C')
+ query << FuzzyRealty::Parameter.new(:style, "Bungalow")
+ query << FuzzyRealty::Parameter.new(:sqft,1200)
+
+ scores = FuzzyRealty::ExpertSystem.scores(listings,query)
+ puts "Query 2, $99k Bungalow in the ever so average 'C' block. 1200 sq. ft."
+ puts "Top 20 Listings:"
+ scores[(0..20)].each do |score|
puts "%.2f" % score[:score] + "\t\t#{score[:listing].inspect}"
end
end
\ No newline at end of file