#!/usr/local/bin/ruby require "GSL" include GSL::Histogram # Test histogramms STDERR.puts "Running tests for histograms..." puts "\nA simple histogram:" h = Hist.new(10) v = [7, 7, 5, 1, 3, 5, 2, 4, 4, 4, 7, 7, 1, 9] v.each do |x| h.increment(x) end h.dump puts h.get(3) puts h[3] puts "\nDeep copy:" h2 = Hist.new(10) Hist.memcpy(h2, h) h2.dump puts "\nmax : #{h.max}" puts "min : #{h.min}" puts "max_val: #{h.max_val}" puts "max_bin: #{h.max_bin}" puts "min_val: #{h.min_val}" puts "min_bin: #{h.min_bin}" puts "mean : #{h.mean}" puts "sigma : #{h.sigma}" a = h.get_range(3) puts "range : #{a[0]}, #{a[1]}" puts "find : #{h.find(6.2)}" begin print "\nwriting to file..." f = File.new("dump", "w") h.fwrite(f) #h.fprintf(STDOUT, "%g", "%g") f.close puts "ok" print "reading from file..." f = File.new("dump", "r") h.reset h.fread(f) f.close puts "ok" h.dump puts "\nread/write: ok" rescue IOError STDERR.print "Caught exception: #{$!}\n" end puts "\nadd:" h2 = Hist.new(10) w = [9, 2, 2, 3, 1, 9, 7] w.each do |x| h2.increment(x) end h.add(h2) h.dump p = Hist_PDF.new(h) puts "\nsample: #{p.sample(0.7)}" STDERR.puts "\ndone."