class Qti::V1::Models::Numerics::MarginError

Public Class Methods

new(scoring_node) click to toggle source
Calls superclass method
# File lib/qti/v1/models/numerics/margin_error.rb, line 6
def initialize(scoring_node)
  super(scoring_node)
end

Public Instance Methods

scoring_data() click to toggle source
# File lib/qti/v1/models/numerics/margin_error.rb, line 10
def scoring_data
  return unless valid?
  Struct.new(
    :id,
    :type,
    :value,
    :margin,
    :margin_type
  ).new(
    equal_node.attributes['respident']&.value,
    'marginOfError',
    equal_node.content.to_f.to_s,
    margin,
    'absolute'
  )
end

Private Instance Methods

content_consistent?() click to toggle source
# File lib/qti/v1/models/numerics/margin_error.rb, line 41
def content_consistent?
  equal_node.content != gte_node.content &&
    equal_node.content != lte_node.content
end
margin() click to toggle source
# File lib/qti/v1/models/numerics/margin_error.rb, line 29
def margin
  (equal_node.content.to_f - gte_node.content.to_f).to_s
end
node_complete?() click to toggle source
# File lib/qti/v1/models/numerics/margin_error.rb, line 37
def node_complete?
  (equal_node && gte_node && lte_node).present?
end
valid?() click to toggle source
# File lib/qti/v1/models/numerics/margin_error.rb, line 33
def valid?
  node_complete? && content_consistent?
end