LIBRARY
Math.Tests.Min
Computes the minimum of constant and time-varying inputs.
Connects constant sources with values 3 and 7 to a Min block and verifies that min(3, 7) = 3. A second Min block is driven by two sine waves of different frequencies so the selected (smaller) input alternates over time.
Usage
BlockComponents.Math.Tests.Min()
Behavior
Source
dyad
"""
Computes the minimum of constant and time-varying inputs.
Connects constant sources with values 3 and 7 to a Min block and verifies
that min(3, 7) = 3. A second Min block is driven by two sine waves of
different frequencies so the selected (smaller) input alternates over time.
"""
test component Min
"Constant source providing the first input"
c1 = BlockComponents.Sources.Constant(k = 3) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 20, "x2": 120, "y2": 120, "rot": 0}
},
"tags": []
}
}
"Constant source providing the second input"
c2 = BlockComponents.Sources.Constant(k = 7) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 140, "x2": 120, "y2": 240, "rot": 0}
},
"tags": []
}
}
"Min block under test"
min_block = BlockComponents.Math.Min() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 160, "y1": 50, "x2": 260, "y2": 150, "rot": 0}
},
"tags": []
}
}
"Sine source for the first input of the second block"
sine1 = BlockComponents.Sources.Sine(amplitude = 5, frequency = 1) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 290, "y1": 20, "x2": 390, "y2": 120, "rot": 0}
},
"tags": []
}
}
"Sine source for the second input of the second block"
sine2 = BlockComponents.Sources.Sine(amplitude = 5, frequency = 2) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 290, "y1": 140, "x2": 390, "y2": 240, "rot": 0}
},
"tags": []
}
}
"Second Min block driven by the sine sources"
min_block_2 = BlockComponents.Math.Min() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 440, "y1": 50, "x2": 540, "y2": 150, "rot": 0}
},
"tags": []
}
}
relations
connect(c1.y, min_block.u1) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(c2.y, min_block.u2) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 140, "y": 190}, {"x": 140, "y": 130}], "E": 2}],
"renderStyle": "standard"
}
}
connect(sine1.y, min_block_2.u1) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(sine2.y, min_block_2.u2) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 410, "y": 190}, {"x": 410, "y": 130}], "E": 2}],
"renderStyle": "standard"
}
}
metadata {
"Dyad": {
"icons": {"default": "dyad://BlockComponents/Example.svg"},
"tests": {
"case1": {
"stop": 1,
"expect": {"signals": ["min_block.y", "min_block_2.y", "sine1.y", "sine2.y"]}
}
}
}
}
endFlattened Source
dyad
"""
Computes the minimum of constant and time-varying inputs.
Connects constant sources with values 3 and 7 to a Min block and verifies
that min(3, 7) = 3. A second Min block is driven by two sine waves of
different frequencies so the selected (smaller) input alternates over time.
"""
test component Min
"Constant source providing the first input"
c1 = BlockComponents.Sources.Constant(k = 3) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 20, "x2": 120, "y2": 120, "rot": 0}
},
"tags": []
}
}
"Constant source providing the second input"
c2 = BlockComponents.Sources.Constant(k = 7) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 140, "x2": 120, "y2": 240, "rot": 0}
},
"tags": []
}
}
"Min block under test"
min_block = BlockComponents.Math.Min() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 160, "y1": 50, "x2": 260, "y2": 150, "rot": 0}
},
"tags": []
}
}
"Sine source for the first input of the second block"
sine1 = BlockComponents.Sources.Sine(amplitude = 5, frequency = 1) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 290, "y1": 20, "x2": 390, "y2": 120, "rot": 0}
},
"tags": []
}
}
"Sine source for the second input of the second block"
sine2 = BlockComponents.Sources.Sine(amplitude = 5, frequency = 2) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 290, "y1": 140, "x2": 390, "y2": 240, "rot": 0}
},
"tags": []
}
}
"Second Min block driven by the sine sources"
min_block_2 = BlockComponents.Math.Min() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 440, "y1": 50, "x2": 540, "y2": 150, "rot": 0}
},
"tags": []
}
}
relations
connect(c1.y, min_block.u1) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(c2.y, min_block.u2) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 140, "y": 190}, {"x": 140, "y": 130}], "E": 2}],
"renderStyle": "standard"
}
}
connect(sine1.y, min_block_2.u1) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(sine2.y, min_block_2.u2) {
"Dyad": {
"edges": [{"S": 1, "M": [{"x": 410, "y": 190}, {"x": 410, "y": 130}], "E": 2}],
"renderStyle": "standard"
}
}
metadata {
"Dyad": {
"icons": {"default": "dyad://BlockComponents/Example.svg"},
"tests": {
"case1": {
"stop": 1,
"expect": {"signals": ["min_block.y", "min_block_2.y", "sine1.y", "sine2.y"]}
}
}
}
}
endTest Cases
Test Case case1
julia
pltjulia
pltjulia
pltjulia
plt