3 # Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
4 # New markov chain plugin tester
8 fname = ARGV.fetch(0, "promessi.txt")
10 max_ord = ARGV.fetch(1, 5).to_i
12 min_ord = ARGV.fetch(2, 5).to_i
14 mkv = MarkovChainer.new(max_ord)
16 size = File.size?(fname)
20 # mkv.learn("This is a test, this is a test indeed.")
22 # pp mkv.instance_variable_get(:@mkv) if defined? pp
27 File.open(fname) { |file|
30 new_ratio = file.pos*100/size
31 if new_ratio > old_ratio
33 puts "\n\n\nLearned #{new_ratio}%"
34 # pp mkv.instance_variable_get(:@mkv) if defined? pp
35 puts "%u words known" % mkv.instance_variable_get(:@mkv).size
36 min_ord.upto(max_ord) { |ord|
37 puts "\nOrder #{ord}::"
38 puts mkv.complete("", :max_order=>ord)