Class: FromHoneybeeModelToSDD_Test

Inherits:
Minitest::Test
  • Object
show all
Defined in:
lib/measures/from_honeybee_model_to_sdd/tests/from_honeybee_model_to_sdd_test.rb

Instance Method Summary collapse

Instance Method Details

#apply_measure_to_model(test_name, args, model_name = nil, result_value = 'Success', warnings_count = 0, info_count = nil) ⇒ Object

method to apply arguments, run measure, and assert results (only populate args hash with non-default argument values)



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/measures/from_honeybee_model_to_sdd/tests/from_honeybee_model_to_sdd_test.rb', line 40

def apply_measure_to_model(test_name, args, model_name = nil, result_value = 'Success', warnings_count = 0, info_count = nil)
  # create an instance of the measure
  measure = FromHoneybeeModelToSDD.new

  # create an instance of a runner
  runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)

  if model_name.nil?
    # make an empty model
    model = OpenStudio::Model::Model.new
  else
    # load the test model
    translator = OpenStudio::OSVersion::VersionTranslator.new
    path = OpenStudio::Path.new(File.dirname(__FILE__) + '/' + model_name)
    model = translator.loadModel(path)
    assert(!model.empty?)
    model = model.get
  end

  # get arguments
  arguments = measure.arguments(model)
  argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)

  # populate argument with specified hash value if specified
  arguments.each do |arg|
    temp_arg_var = arg.clone
    if args.key?(arg.name)
      assert(temp_arg_var.setValue(args[arg.name]), "could not set #{arg.name} to #{args[arg.name]}.")
    end
    argument_map[arg.name] = temp_arg_var
  end

  # run the measure
  measure.run(model, runner, argument_map)
  result = runner.result

  # show the output
  puts "measure results for #{test_name}"
  show_output(result)

  # assert that it ran correctly
  if result_value.nil? then result_value = 'Success' end
  assert_equal(result_value, result.value.valueName)

  # check count of warning and info messages
  unless info_count.nil? then assert(result.info.size == info_count) end
  unless warnings_count.nil? then assert(result.warnings.size == warnings_count, "warning count (#{result.warnings.size}) did not match expectation (#{warnings_count})") end

  # if 'Fail' passed in make sure at least one error message (while not typical there may be more than one message)
  if result_value == 'Fail' then assert(result.errors.size >= 1) end

end

#test_office_floorObject



99
100
101
102
103
# File 'lib/measures/from_honeybee_model_to_sdd/tests/from_honeybee_model_to_sdd_test.rb', line 99

def test_office_floor
  args = {}
  args['model_json'] = File.join(File.dirname(__FILE__) + "/../../../../spec/samples/model/model_complete_office_floor.json")
  apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil)
end

#test_shoe_boxObject



93
94
95
96
97
# File 'lib/measures/from_honeybee_model_to_sdd/tests/from_honeybee_model_to_sdd_test.rb', line 93

def test_shoe_box
  args = {}
  args['model_json'] = File.join(File.dirname(__FILE__) + "/../../../../spec/samples/model/model_energy_shoe_box.json")
  apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil)
end