Class: FromHoneybeeModel_Test
- Inherits:
-
Minitest::Test
- Object
- Minitest::Test
- FromHoneybeeModel_Test
- Defined in:
- lib/measures/from_honeybee_model/tests/from_honeybee_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_detailed_loads ⇒ Object
- #test_multi_zone_office ⇒ Object
- #test_office_floor ⇒ Object
- #test_shoe_box ⇒ Object
- #test_single_zone_office ⇒ 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 93 94 |
# File 'lib/measures/from_honeybee_model/tests/from_honeybee_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 = FromHoneybeeModel.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 # save the model to test output directory output_file_path = OpenStudio::Path.new(File.dirname(__FILE__) + "/output/#{test_name}_test_output.osm") model.save(output_file_path, true) end |
#test_detailed_loads ⇒ Object
114 115 116 117 118 |
# File 'lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb', line 114 def test_detailed_loads args = {} args['model_json'] = File.join(File.dirname(__FILE__) + "/../../../../spec/samples/model/model_energy_detailed_loads.json") apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil) end |
#test_multi_zone_office ⇒ Object
102 103 104 105 106 |
# File 'lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb', line 102 def test_multi_zone_office args = {} args['model_json'] = File.join(File.dirname(__FILE__) + "/../../../../spec/samples/model/model_complete_multi_zone_office.json") apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil) end |
#test_office_floor ⇒ Object
120 121 122 123 124 |
# File 'lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb', line 120 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_box ⇒ Object
96 97 98 99 100 |
# File 'lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb', line 96 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 |
#test_single_zone_office ⇒ Object
108 109 110 111 112 |
# File 'lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb', line 108 def test_single_zone_office args = {} args['model_json'] = File.join(File.dirname(__FILE__) + "/../../../../spec/samples/model/model_complete_single_zone_office.json") apply_measure_to_model(__method__.to_s.gsub('test_',''),args, nil) end |