| 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) |
| 861 | circuit C (); |
| 862 | device DC $1 () (U=-0.5,V=42); |
| 863 | end; |
| 864 | END |
| 865 | |
| 866 | end |
| 867 | |
| 868 | def test_10_NetlistTopology |
| 869 |
nothing calls this directly
no test coverage detected