Class: UrbanoptCoreTestMeasureTest

Inherits:
Minitest::Test
  • Object
show all
Defined in:
lib/measures/urbanopt-core-test-measure/tests/urbanopt_core_test_measure_test.rb

Instance Method Summary collapse

Instance Method Details

#test_urbanopt_core_test_measure_bad_inputObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/measures/urbanopt-core-test-measure/tests/urbanopt_core_test_measure_test.rb', line 14

def test_urbanopt_core_test_measure_bad_input
  # create an instance of the measure
  measure = UrbanoptCoreTestMeasure.new

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

  # make an empty model
  model = OpenStudio::Model::Model.new

  # get arguments and test that they are what we are expecting
  arguments = measure.arguments(model)
  assert_equal(2, arguments.size)
  assert_equal('meter_name', arguments[0].name)
  assert_equal('reporting_frequency', arguments[1].name)

  # set argument values to bad values and run the measure
  argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
  meter_name = arguments[0].clone
  assert(meter_name.setValue(''))
  argument_map['meter_name'] = meter_name
  measure.run(model, runner, argument_map)
  result = runner.result
  assert(result.value.valueName == 'Fail')
end

#test_urbanopt_core_test_measure_good_inputObject



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
# File 'lib/measures/urbanopt-core-test-measure/tests/urbanopt_core_test_measure_test.rb', line 40

def test_urbanopt_core_test_measure_good_input
  # create an instance of the measure
  measure = UrbanoptCoreTestMeasure.new

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

  # make an empty model
  model = OpenStudio::Model::Model.new

  # get arguments and test that they are what we are expecting
  arguments = measure.arguments(model)

  # set argument values to good values and run the measure on model with spaces
  argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
  meter_name = arguments[0].clone
  assert(meter_name.setValue('JustATest'))
  argument_map['meter_name'] = meter_name
  reporting_frequency = arguments[1].clone
  assert(reporting_frequency.setValue('hourly'))
  argument_map['reporting_frequency'] = reporting_frequency
  measure.run(model, runner, argument_map)
  result = runner.result
  show_output(result)
  assert(result.value.valueName == 'Success')
  assert(result.warnings.empty?)
  assert(result.info.size == 1)

  # attempt to add a second meter
  # create an instance of the measure
  measure = UrbanoptCoreTestMeasure.new

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

  measure.run(model, runner, argument_map)

  result = runner.result
  show_output(result)
  assert(result.value.valueName == 'Success')
  assert(result.warnings.size == 1)
  assert(result.info.empty?)
end