test/test_analysis.rb in statsample-1.0.1 vs test/test_analysis.rb in statsample-1.1.0

- old
+ new

@@ -1,22 +1,90 @@ require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb')) -require 'mocha' + class StatsampleAnalysisTestCase < MiniTest::Unit::TestCase context(Statsample::Analysis) do + setup do + Statsample::Analysis.clear_analysis + end should "store() should create and store Statsample::Analysis::Suite" do Statsample::Analysis.store(:first) do a=1 end assert(Statsample::Analysis.stored_analysis[:first]) assert(Statsample::Analysis.stored_analysis[:first].is_a? Statsample::Analysis::Suite) end + + should "ss_analysis should create an Statsample::Analysis" do + ss_analysis(:first) {a=1} + end should "store last created analysis" do an=Statsample::Analysis.store(:first) do a=1 end assert_equal(an,Statsample::Analysis.last) end + + should "add_to_reportbuilder() add sections to reportbuilder object" do + rb=mock() + rb.expects(:add).with {|value| value.is_a? ReportBuilder::Section and value.name==:first} + rb.expects(:add).with {|value| value.is_a? ReportBuilder::Section and value.name==:second} + + Statsample::Analysis.store(:first) do + echo "first","second" + end + Statsample::Analysis.store(:second) do + echo "third" + end + Statsample::Analysis.add_to_reportbuilder(rb,:first,:second) + end + should "to_text returns the same as a normal ReportBuilder object" do + rb=ReportBuilder.new(:name=>:test) + section=ReportBuilder::Section.new(:name=>"first") + a=[1,2,3].to_scale + section.add("first") + section.add(a) + rb.add(section) + exp=rb.to_text + an=ss_analysis(:first) { + echo 'first' + summary(a) + } + obs=Statsample::Analysis.to_text(:first) + + assert_equal(exp.split("\n")[1,exp.size], obs.split("\n")[1,obs.size]) + end + + should "run() execute all analysis by default" do + m1=mock() + m1.expects(:run).once + m1.expects(:hide).once + + Statsample::Analysis.store(:first) do + m1.run + end + Statsample::Analysis.store(:second) do + m1.hide + end + + # Should run all test + Statsample::Analysis.run + end + + should "run() execute blocks specificed on parameters" do + m1=mock() + m1.expects(:run).once + m1.expects(:hide).never + Statsample::Analysis.store(:first) do + m1.run + end + Statsample::Analysis.store(:second) do + m1.hide + end + # Should run all test + Statsample::Analysis.run(:first) + end + context(Statsample::Analysis::Suite) do should "echo() uses output#puts with same arguments" do an=Statsample::Analysis::Suite.new(:output) obj=mock() obj.expects(:puts).with(:first,:second).once @@ -83,23 +151,14 @@ end should "perform a simple analysis" do output=mock() output.expects(:puts).with(5.5) an=Statsample::Analysis.store(:simple, :output=>output) do - ds=data_frame(:x=>c(1..10),:y=>c(1..10)) + ds=data_frame(:x=>vector(1..10),:y=>vector(1..10)) attach(ds) echo x.mean end an.run - end - should "rnorm returns a random normal distribution vector" do - an=Statsample::Analysis::Suite.new(:simple) - v=an.rnorm(1000) - assert_in_delta(0,v.mean,0.09) - assert_in_delta(1,v.sd,0.09) - v=an.rnorm(1000,5,10) - assert_in_delta(5,v.mean,0.9) - assert_in_delta(10,v.sd,0.9) end end context(Statsample::Analysis::SuiteReportBuilder) do should "echo() use add on rb object" do an=Statsample::Analysis::SuiteReportBuilder.new(:puts_to_add)