C0 code coverage information

Generated on Mon May 21 22:36:02 -0400 2007 with rcov 0.8.0


Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
Name Total lines Lines of code Total coverage Code coverage
specs/rule/rule_spec.rb 157 126
96.8% 
96.0% 
  1 require File.dirname(__FILE__) + '/../spec_helper'
  2 require 'rools'
  3 
  4 class Hour
  5   attr_accessor :val
  6   
  7   def initialize( val )
  8     @val = val
  9   end
 10   
 11   def > ( val)
 12     return @val >= val
 13   end
 14   
 15   def <= (val)
 16     @val <= val
 17   end
 18   
 19   def to_s
 20     @val.to_s
 21   end
 22 end
 23 
 24 describe Rools::Rule do
 25 
 26   it "should have a name that will be downcased" do
 27     ruleset = Rools::RuleSet.new do
 28 		rule 'Hello' do
 29 			parameter String
 30 			consequence { $result = "Hello, Rools!" }
 31 		end
 32 	end
 33 	rules = ruleset.get_rules
 34 	rule = rules.values[0]
 35 	rule.name.should eql("hello")
 36   end
 37   
 38   it "can have an optional priority" do
 39     ruleset = Rools::RuleSet.new do
 40 		rule('Hello', 12) do
 41 			parameter String
 42 			consequence { $result = "Hello, Rools!" }
 43 		end
 44 	end
 45 	rules = ruleset.get_rules
 46 	rule = rules.values[0]
 47 	rule.priority.should eql(12)
 48   end
 49   
 50   it "can have an optional parameter tag" do
 51     ruleset = Rools::RuleSet.new do
 52 	  rule 'Hello1' do
 53 		parameter String
 54 		consequence { $result = "Hello, Rools!" }
 55 	  end
 56 	  rule 'Hello2' do
 57 	    consequence { $result = "Hello, Rools!" }
 58 	  end
 59 	end
 60 	rules = ruleset.get_rules
 61 	rule1 = rules.values[0]
 62 	rule1.parameters.should have(1).parameter
 63 	
 64 	rule2 = rules.values[1]
 65 	rule2.parameters.should have(0).parameter
 66 	
 67   end
 68   
 69   it "a rule parameter tag can define one or more types" do
 70     ruleset = Rools::RuleSet.new do
 71 	  rule 'Hello1' do
 72 		parameter String, Integer
 73 		consequence { $result = "Hello, Rools!" }
 74 	  end
 75 	end
 76 	
 77 	rules = ruleset.get_rules
 78 	rule1 = rules.values[0]
 79 	rule1.parameters.should have(2).parameter
 80 	
 81   end
 82   
 83   it "a rule parameter type has to be pre-defined" do
 84     lambda {
 85       ruleset = Rools::RuleSet.new do
 86     	  rule 'Hello1' do
 87     		parameter Employee
 88     		consequence { $result = "Hello, Rools!" }
 89     	  end
 90 	  end
 91 	}.should raise_error(Rools::RuleCheckError)
 92 	
 93 	
 94   end
 95   
 96   it "can have optional conditions" do
 97     ruleset = Rools::RuleSet.new do
 98 	  rule 'greater' do
 99 		parameter Hour
100 		condition { hour > 24}
101 		consequence { $result = "hour greater than 24" }
102 	  end
103 	  
104 	  rule 'pm' do
105 		parameter Hour
106 		condition { hour > 12}
107 		condition { hour < 24}
108 		consequence { $result = "in PM" }
109 	  end
110 	  
111 	  rule 'always' do
112 		consequence { $result = "always triggers" }
113 	  end  
114 	end
115 	
116 	rules = ruleset.get_rules
117 	rule1 = rules["greater"]
118 	rule1.conditions.should have(1).condition
119 
120 	rule2 = rules["pm"]
121 	rule2.conditions.should have(2).conditions
122 	
123 	rule3 = rules["always"]
124 	rule3.conditions.should have(0).conditions
125 	
126   end
127   
128   it "should have one or more consequences" do
129     ruleset = Rools::RuleSet.new do
130 	  rule 'greater' do
131 		parameter Hour
132 		condition { hour > 24}
133 		consequence { $result = "hour greater than 24" }
134 	  end
135 	  
136 	  rule 'always' do
137 	    parameter Hour
138 		consequence { $result = "always triggers" }
139 		consequence { $result = "hour: #{hour}" }
140 	  end
141 	  
142 	end
143 	
144 	rules = ruleset.get_rules
145 	rule1 = rules["greater"]
146 	rule1.consequences.should have(1).consequence
147 	
148 	rule2 = rules["always"]
149 	rule2.consequences.should have(2).consequences
150 	
151 	status = ruleset.assert(Hour.new(30))
152 	status.should eql(Rools::RuleSet::PASS)
153 	ruleset.num_executed.should be(2);
154     ruleset.num_evaluated.should be(2);
155       
156   end
157 end

Generated using the rcov code coverage analysis tool for Ruby version 0.8.0.

Valid XHTML 1.0! Valid CSS!