@@ -214,98 +214,91 @@ def test05_construction_thickness(self):
214214 self .assertEqual (o .status (), 0 )
215215 self .assertFalse (o .logs ())
216216
217-
218217 def test06_insulatingLayer (self ):
219218 o = osut .oslg
220219 self .assertEqual (o .status (), 0 )
221220 self .assertEqual (o .reset (DBG ), DBG )
222221 self .assertEqual (o .level (), DBG )
223222 self .assertEqual (o .status (), 0 )
224- # it "checks (opaque) insulating layers within a layered construction" do
225- # translator = OpenStudio::OSVersion::VersionTranslator.new
226- # self.assertTrue(mod1.clean!).to eq(DBG)
227- #
228- # file = File.join(__dir__, "files/osms/out/seb2.osm")
229- # path = OpenStudio::Path.new(file)
230- # model = translator.loadModel(path)
231- # self.assertTrue(model).to_not be_empty
232- # model = model.get
233- #
234- # m = "OSut::insulatingLayer"
235- # m1 = "Invalid 'lc' arg #1 (#{m})"
236- #
237- # model.getLayeredConstructions.each do |lc|
238- # lyr = mod1.insulatingLayer(lc)
239- # self.assertTrue(lyr).to be_a(Hash)
240- # self.assertTrue(lyr).to have_key(:index)
241- # self.assertTrue(lyr).to have_key(:type )
242- # self.assertTrue(lyr).to have_key(:r)
243- #
244- # if lc.isFenestration
245- # self.assertTrue(mod1.status).to be_zero
246- # self.assertTrue(lyr[:index]).to be_nil
247- # self.assertTrue(lyr[:type ]).to be_nil
248- # self.assertTrue(lyr[:r ]).to be_zero
249- # next
250- # end
251- #
252- # unless [:standard, :massless].include?(lyr[:type]) # air wall mat
253- # self.assertTrue(mod1.status).to be_zero
254- # self.assertTrue(lyr[:index]).to be_nil
255- # self.assertTrue(lyr[:type ]).to be_nil
256- # self.assertTrue(lyr[:r ]).to be_zero
257- # next
258- # end
259- #
260- # self.assertTrue(lyr[:index] < lc.numLayers).to be true
261- #
262- # case lc.nameString
263- # when "EXTERIOR-ROOF"
264- # self.assertTrue(lyr[:index]).to eq(2)
265- # self.assertTrue(lyr[:r ]).to be_within(TOL).of(5.08)
266- # when "EXTERIOR-WALL"
267- # self.assertTrue(lyr[:index]).to eq(2)
268- # self.assertTrue(lyr[:r ]).to be_within(TOL).of(1.47)
269- # when "Default interior ceiling"
270- # self.assertTrue(lyr[:index]).to be_zero
271- # self.assertTrue(lyr[:r ]).to be_within(TOL).of(0.12)
272- # when "INTERIOR-WALL"
273- # self.assertTrue(lyr[:index]).to eq(1)
274- # self.assertTrue(lyr[:r ]).to be_within(TOL).of(0.24)
275- # else
276- # self.assertTrue(lyr[:index]).to be_zero
277- # self.assertTrue(lyr[:r ]).to be_within(TOL).of(0.29)
278- # end
279- # end
280- #
281- # lyr = mod1.insulatingLayer(nil)
282- # self.assertTrue(mod1.debug?).to be true
283- # self.assertTrue(lyr[:index]).to be_nil
284- # self.assertTrue(lyr[:type ]).to be_nil
285- # self.assertTrue(lyr[:r ]).to be_zero
286- # self.assertTrue(mod1.debug?).to be true
287- # self.assertTrue(mod1.logs.size).to eq(1)
288- # self.assertTrue(mod1.logs.first[:message]).to eq(m1)
289- #
290- # self.assertTrue(mod1.clean!).to eq(DBG)
291- # lyr = mod1.insulatingLayer("")
292- # self.assertTrue(mod1.debug?).to be true
293- # self.assertTrue(lyr[:index]).to be_nil
294- # self.assertTrue(lyr[:type ]).to be_nil
295- # self.assertTrue(lyr[:r ]).to be_zero
296- # self.assertTrue(mod1.debug?).to be true
297- # self.assertTrue(mod1.logs.size).to eq(1)
298- # self.assertTrue(mod1.logs.first[:message]).to eq(m1)
299- #
300- # self.assertTrue(mod1.clean!).to eq(DBG)
301- # lyr = mod1.insulatingLayer(model)
302- # self.assertTrue(mod1.debug?).to be true
303- # self.assertTrue(lyr[:index]).to be_nil
304- # self.assertTrue(lyr[:type ]).to be_nil
305- # self.assertTrue(lyr[:r ]).to be_zero
306- # self.assertTrue(mod1.debug?).to be true
307- # self.assertTrue(mod1.logs.size).to eq(1)
308- # self.assertTrue(mod1.logs.first[:message]).to eq(m1)
223+
224+ version = int ("" .join (openstudio .openStudioVersion ().split ("." )))
225+ translator = openstudio .osversion .VersionTranslator ()
226+
227+ path = openstudio .path ("./tests/files/osms/out/seb2.osm" )
228+ model = translator .loadModel (path )
229+ self .assertTrue (model )
230+ model = model .get ()
231+
232+ m0 = "Invalid 'lc' arg #1 (osut.insulatingLayer)"
233+
234+ for lc in model .getLayeredConstructions ():
235+ id = lc .nameString ()
236+ lyr = osut .insulatingLayer (lc )
237+
238+ self .assertTrue (isinstance (lyr , dict ))
239+ self .assertTrue ("index" in lyr )
240+ self .assertTrue ("type" in lyr )
241+ self .assertTrue ("r" in lyr )
242+
243+ if lc .isFenestration ():
244+ self .assertEqual (o .status (), 0 )
245+ self .assertFalse (lyr ["index" ])
246+ self .assertFalse (lyr ["type" ])
247+ self .assertEqual (lyr ["r" ], 0 )
248+ continue
249+
250+ if lyr ["type" ] not in ["standard" , "massless" ]: # air wall material
251+ self .assertEqual (o .status (), 0 )
252+ self .assertFalse (lyr ["index" ])
253+ self .assertFalse (lyr ["type" ])
254+ self .assertEqual (lyr ["r" ], 0 )
255+ continue
256+
257+ self .assertTrue (lyr ["index" ] < lc .numLayers ())
258+
259+ if id == "EXTERIOR-ROOF" :
260+ self .assertEqual (lyr ["index" ], 2 )
261+ self .assertEqual (round (lyr ["r" ], 2 ), 5.08 )
262+ elif id == "EXTERIOR-WALL" :
263+ self .assertEqual (lyr ["index" ], 2 )
264+ self .assertEqual (round (lyr ["r" ], 2 ), 1.47 )
265+ elif id == "Default interior ceiling" :
266+ self .assertEqual (lyr ["index" ], 0 )
267+ self .assertEqual (round (lyr ["r" ], 2 ), 0.12 )
268+ elif id == "INTERIOR-WALL" :
269+ self .assertEqual (lyr ["index" ], 1 )
270+ self .assertEqual (round (lyr ["r" ], 2 ), 0.24 )
271+ else :
272+ self .assertEqual (lyr ["index" ], 0 )
273+ self .assertEqual (round (lyr ["r" ], 2 ), 0.29 )
274+
275+ # Final stress tests.
276+ lyr = osut .insulatingLayer (None )
277+ self .assertTrue (o .is_debug ())
278+ self .assertFalse (lyr ["index" ])
279+ self .assertFalse (lyr ["type" ])
280+ self .assertEqual (round (lyr ["r" ], 2 ), 0.00 )
281+ self .assertEqual (len (o .logs ()), 1 )
282+ self .assertEqual (o .logs ()[0 ]["message" ], m0 )
283+ self .assertEqual (o .clean (), DBG )
284+
285+ lyr = osut .insulatingLayer ("" )
286+ self .assertTrue (o .is_debug ())
287+ self .assertFalse (lyr ["index" ])
288+ self .assertFalse (lyr ["type" ])
289+ self .assertEqual (round (lyr ["r" ], 2 ), 0.00 )
290+ self .assertTrue (len (o .logs ()), 1 )
291+ self .assertEqual (o .logs ()[0 ]["message" ], m0 )
292+ self .assertEqual (o .clean (), DBG )
293+
294+ lyr = osut .insulatingLayer (model )
295+ self .assertTrue (o .is_debug ())
296+ self .assertFalse (lyr ["index" ])
297+ self .assertFalse (lyr ["type" ])
298+ self .assertEqual (round (lyr ["r" ], 2 ), 0.00 )
299+ self .assertTrue (len (o .logs ()), 1 )
300+ self .assertEqual (o .logs ()[0 ]["message" ], m0 )
301+ self .assertEqual (o .clean (), DBG )
309302
310303 def test07_genConstruction (self ):
311304 m1 = "'specs' list? expecting dict (osut.genConstruction)"
@@ -950,7 +943,6 @@ def test08_genShade(self):
950943
951944 def test09_internal_mass (self ):
952945 o = osut .oslg
953- print (o .logs ())
954946 self .assertEqual (o .status (), 0 )
955947 self .assertEqual (o .reset (DBG ), DBG )
956948 self .assertEqual (o .level (), DBG )
0 commit comments