MCPcopy Create free account
hub / github.com/KLayout/klayout / test_4_Device

Method test_4_Device

testdata/ruby/dbNetlist.rb:258–462  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

256 end
257
258 def test_4_Device
259
260 nl = RBA::Netlist::new
261
262 dc = RBA::DeviceClass::new
263 nl.add(dc)
264 assert_equal(dc.netlist.object_id, nl.object_id)
265 dc.name = "DC"
266 dc.description = "A device class"
267
268 pd = RBA::DeviceTerminalDefinition::new
269 pd.name = "A"
270 pd.description = "Terminal A"
271 dc.add_terminal(pd)
272
273 pd = RBA::DeviceTerminalDefinition::new
274 pd.name = "B"
275 pd.description = "Terminal B"
276 dc.add_terminal(pd)
277
278 assert_equal(dc.has_terminal?("X"), false)
279 assert_equal(dc.has_terminal?("A"), true)
280 assert_equal(dc.terminal_id("A"), 0)
281 assert_equal(dc.terminal_id("B"), 1)
282
283 c = RBA::Circuit::new
284 nl.add(c)
285
286 d1 = c.create_device(dc)
287 d1.name = "D1"
288 assert_equal(d1.name, "D1")
289 assert_equal(d1.id, 1)
290 assert_equal(c.device_by_id(d1.id).id, 1)
291 assert_equal(c.device_by_id(2).inspect, "nil")
292 assert_equal(c.device_by_name(d1.name).name, "D1")
293 assert_equal(c.device_by_id(2).inspect, "nil")
294 assert_equal(c.device_by_name("doesnt_exist").inspect, "nil")
295
296 assert_equal(d1.property(17), nil)
297 d1.set_property(17, 42)
298 assert_equal(d1.property(17), 42)
299
300 d2 = c.create_device(dc)
301 assert_equal(d2.device_class.id, dc.id)
302 assert_equal(d2.device_class.object_id, dc.object_id) # by virtue of Ruby-to-C++ object mapping
303 d2.name = "D2"
304
305 names = []
306 dcs = []
307 c.each_device { |d| names << d.name; dcs << d.device_class.name }
308 assert_equal(names, [ "D1", "D2" ])
309 assert_equal(dcs, [ "DC", "DC" ])
310
311 c.remove_device(d2)
312
313 names = []
314 c.each_device { |d| names << d.name }
315 assert_equal(names, [ "D1" ])

Callers

nothing calls this directly

Calls 15

add_terminalMethod · 0.80
terminal_idMethod · 0.80
create_deviceMethod · 0.80
device_by_nameMethod · 0.80
set_propertyMethod · 0.80
device_classMethod · 0.80
remove_deviceMethod · 0.80
connect_terminalMethod · 0.80
net_for_terminalMethod · 0.80
terminal_defMethod · 0.80
addMethod · 0.45
netlistMethod · 0.45

Tested by

no test coverage detected