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

Method test_9_DeviceParameters

testdata/ruby/dbNetlist.rb:814–866  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

812 end
813
814 def test_9_DeviceParameters
815
816 nl = RBA::Netlist::new
817
818 dc = RBA::DeviceClass::new
819 dc.name = "DC"
820 nl.add(dc)
821
822 dc.add_parameter(RBA::DeviceParameterDefinition::new("U", "Parameter U", 1.0))
823 dc.add_parameter(RBA::DeviceParameterDefinition::new("V", "Parameter V", 2.0))
824
825 assert_equal(dc.has_parameter?("U"), true)
826 assert_equal(dc.has_parameter?("V"), true)
827 assert_equal(dc.has_parameter?("X"), false)
828 assert_equal(dc.parameter_id("U"), 0)
829 assert_equal(dc.parameter_id("V"), 1)
830 error = false
831 begin
832 dc.parameter_id("X") # raises an exception
833 rescue => ex
834 error = true
835 end
836 assert_equal(error, true)
837
838 c = RBA::Circuit::new
839 c.name = "C"
840 nl.add(c)
841 d1 = c.create_device(dc)
842
843 assert_equal(d1.circuit.object_id, c.object_id)
844
845 assert_equal(d1.parameter(0), 1.0)
846 assert_equal(d1.parameter("U"), 1.0)
847 assert_equal(d1.parameter(1), 2.0)
848 assert_equal(d1.parameter("V"), 2.0)
849
850 d1.set_parameter(0, 0.5)
851 assert_equal(d1.parameter(0), 0.5)
852 assert_equal(d1.parameter(1), 2.0)
853 d1.set_parameter("U", -0.5)
854 assert_equal(d1.parameter(0), -0.5)
855 assert_equal(d1.parameter(1), 2.0)
856 d1.set_parameter("V", 42)
857 assert_equal(d1.parameter(0), -0.5)
858 assert_equal(d1.parameter(1), 42)
859
860 assert_equal(nl.to_s, <<END)
861circuit C ();
862 device DC $1 () (U=-0.5,V=42);
863end;
864END
865
866 end
867
868 def test_10_NetlistTopology
869

Callers

nothing calls this directly

Calls 6

create_deviceMethod · 0.80
parameterMethod · 0.80
set_parameterMethod · 0.80
nameMethod · 0.45
addMethod · 0.45
to_sMethod · 0.45

Tested by

no test coverage detected