Class: FromOpenstudioModel_Test
- Inherits:
-
Minitest::Test
- Object
- Minitest::Test
- FromOpenstudioModel_Test
- Defined in:
- lib/measures/from_openstudio_model/tests/from_openstudio_model_test.rb
Instance Method Summary collapse
-
#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).
- #test_example_model_with_output_path ⇒ Object
- #test_example_model_without_output_path ⇒ Object
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 92 |
# File 'lib/measures/from_openstudio_model/tests/from_openstudio_model_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 = FromOpenstudioModel.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 puts "this is measure #{measure.run(model, runner, argument_map)}" # 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_example_model_with_output_path ⇒ Object
94 95 96 97 98 99 |
# File 'lib/measures/from_openstudio_model/tests/from_openstudio_model_test.rb', line 94 def test_example_model_with_output_path args = {} args['openstudio_model'] = File.join(File.dirname(__FILE__) + '/../../../../spec/samples/osm/exampleModel.osm') args['output_file_path'] = File.join(File.dirname(__FILE__) + '/output/exampleModel.hbjson') apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil) end |
#test_example_model_without_output_path ⇒ Object
101 102 103 104 105 |
# File 'lib/measures/from_openstudio_model/tests/from_openstudio_model_test.rb', line 101 def test_example_model_without_output_path args = {} args['openstudio_model'] = File.join(File.dirname(__FILE__) + '/../../../../spec/samples/osm/exampleModel.osm') apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil) end |