summaryrefslogtreecommitdiff
path: root/report/xml_report_util.rb
diff options
context:
space:
mode:
authorMartin Gütlein <martin.guetlein@gmail.com>2010-04-19 14:22:33 +0200
committerMartin Gütlein <martin.guetlein@gmail.com>2010-04-19 14:22:33 +0200
commit0e017bd29cd27bc5f4588ed8d4b50f6706f3696b (patch)
tree84645be3ce66a2999384e9f25bb659a42d7def9d /report/xml_report_util.rb
parenta35e4d1540b74d6687529b43c1c6e5b85deb680e (diff)
added nightly report
Diffstat (limited to 'report/xml_report_util.rb')
-rw-r--r--report/xml_report_util.rb127
1 files changed, 64 insertions, 63 deletions
diff --git a/report/xml_report_util.rb b/report/xml_report_util.rb
index c584ac9..fcb7d96 100644
--- a/report/xml_report_util.rb
+++ b/report/xml_report_util.rb
@@ -3,77 +3,78 @@
#
# Utilities for XMLReport
#
-module Reports::XMLReportUtil
- include REXML
-
- # creates a confusion matrix as array (to be used as input for Reports::XMLReport::add_table)
- # input is confusion matrix as returned by Lib::Predictions.confusion_matrix
- #
- # call-seq:
- # create_confusion_matrix( confusion_matrix ) => array
- #
- def self.create_confusion_matrix( confusion_matrix )
+module Reports
+ class XMLReportUtil
+ include REXML
- raise "confusion matrix is null" unless confusion_matrix
- num_classes = Math.sqrt(confusion_matrix.size)
- class_values = []
- confusion_matrix.each{ |key_map,value| class_values.push(key_map[:confusion_matrix_actual]) if class_values.index(key_map[:confusion_matrix_actual])==nil }
- raise "confusion matrix invalid "+confusion_matrix.inspect unless num_classes.to_i == num_classes and class_values.size == num_classes
-
- sum_predicted = {}
- sum_actual = {}
- class_values.each do |class_value|
- sum_pred = 0
- sum_act = 0
- confusion_matrix.each do |key_map,value|
- sum_pred += value if key_map[:confusion_matrix_predicted]==class_value
- sum_act += value if key_map[:confusion_matrix_actual]==class_value
+ # creates a confusion matrix as array (to be used as input for Reports::XMLReport::add_table)
+ # input is confusion matrix as returned by Lib::Predictions.confusion_matrix
+ #
+ # call-seq:
+ # create_confusion_matrix( confusion_matrix ) => array
+ #
+ def self.create_confusion_matrix( confusion_matrix )
+
+ raise "confusion matrix is null" unless confusion_matrix
+ num_classes = Math.sqrt(confusion_matrix.size)
+ class_values = []
+ confusion_matrix.each{ |key_map,value| class_values.push(key_map[:confusion_matrix_actual]) if class_values.index(key_map[:confusion_matrix_actual])==nil }
+ raise "confusion matrix invalid "+confusion_matrix.inspect unless num_classes.to_i == num_classes and class_values.size == num_classes
+
+ sum_predicted = {}
+ sum_actual = {}
+ class_values.each do |class_value|
+ sum_pred = 0
+ sum_act = 0
+ confusion_matrix.each do |key_map,value|
+ sum_pred += value if key_map[:confusion_matrix_predicted]==class_value
+ sum_act += value if key_map[:confusion_matrix_actual]==class_value
+ end
+ sum_predicted[class_value] = sum_pred
+ sum_actual[class_value] = sum_act
end
- sum_predicted[class_value] = sum_pred
- sum_actual[class_value] = sum_act
- end
-
- confusion = []
- confusion.push( [ "", "", "actual" ] + [""] * num_classes )
- confusion.push( [ "", "" ] + class_values + [ "total"])
-
- class_values.each do |predicted|
- row = [ (confusion.size==2 ? "predicted" : ""), predicted ]
+
+ confusion = []
+ confusion.push( [ "", "", "actual" ] + [""] * num_classes )
+ confusion.push( [ "", "" ] + class_values + [ "total"])
+
+ class_values.each do |predicted|
+ row = [ (confusion.size==2 ? "predicted" : ""), predicted ]
+ class_values.each do |actual|
+ row.push( confusion_matrix[{:confusion_matrix_actual => actual, :confusion_matrix_predicted => predicted}].to_nice_s )
+ end
+ row.push( sum_predicted[predicted].to_nice_s )
+ confusion.push( row )
+ end
+ last_row = [ "", "total" ]
class_values.each do |actual|
- row.push( confusion_matrix[{:confusion_matrix_actual => actual, :confusion_matrix_predicted => predicted}].to_nice_s )
+ last_row.push( sum_actual[actual].to_nice_s )
end
- row.push( sum_predicted[predicted].to_nice_s )
- confusion.push( row )
+ confusion.push( last_row )
+
+ return confusion
end
- last_row = [ "", "total" ]
- class_values.each do |actual|
- last_row.push( sum_actual[actual].to_nice_s )
+
+ def self.text_element(name, text)
+ node = Element.new(name)
+ node.text = text
+ return node
end
- confusion.push( last_row )
- return confusion
- end
-
- def self.text_element(name, text)
- node = Element.new(name)
- node.text = text
- return node
- end
-
- def self.url_element(url, description=url )
- ulink = Element.new("ulink")
- ulink.add_attributes({"url" => url})
- ulink.text = description
- return ulink
+ def self.url_element(url, description=url )
+ ulink = Element.new("ulink")
+ ulink.add_attributes({"url" => url})
+ ulink.text = description
+ return ulink
+ end
+
+ def self.attribute_element(name, attributes)
+ node = Element.new(name)
+ node.add_attributes(attributes)
+ return node
+ end
+
end
-
- def self.attribute_element(name, attributes)
- node = Element.new(name)
- node.add_attributes(attributes)
- return node
- end
-
end
-