LIBRARY
Math.Tests.BooleanToReal
Converts constant and time-varying Boolean signals to Real.
Chains Constant(1.0) → RealToBoolean(threshold=0.5) → BooleanToReal and verifies that a true Boolean input produces realTrue=1.0. A second chain feeds a sine wave (amplitude 1) through RealToBoolean into BooleanToReal so the Boolean toggles and the Real output alternates between its false and true values.
Usage
BlockComponents.Math.Tests.BooleanToReal()
Behavior
Source
dyad
"""
Converts constant and time-varying Boolean signals to Real.
Chains Constant(1.0) → RealToBoolean(threshold=0.5) → BooleanToReal and
verifies that a true Boolean input produces realTrue=1.0. A second chain feeds
a sine wave (amplitude 1) through RealToBoolean into BooleanToReal so the
Boolean toggles and the Real output alternates between its false and true
values.
"""
test component BooleanToReal
"Constant source providing a value above the threshold"
c1 = BlockComponents.Sources.Constant(k = 1.0) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 20, "x2": 120, "y2": 120, "rot": 0}
},
"tags": []
}
}
"RealToBoolean adapter to produce Boolean signal"
r2b = BlockComponents.Math.RealToBoolean(threshold = 0.5) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 161, "y1": 20, "x2": 261, "y2": 120, "rot": 0}
},
"tags": []
}
}
"BooleanToReal block under test"
b2r = BlockComponents.Math.BooleanToReal() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 301, "y1": 20, "x2": 401, "y2": 120, "rot": 0}
},
"tags": []
}
}
"Sine source crossing the threshold"
sine = BlockComponents.Sources.Sine(amplitude = 1, frequency = 1) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 140, "x2": 120, "y2": 240, "rot": 0}
},
"tags": []
}
}
"RealToBoolean adapter for the second chain"
r2b_2 = BlockComponents.Math.RealToBoolean(threshold = 0.5) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 161, "y1": 140, "x2": 261, "y2": 240, "rot": 0}
},
"tags": []
}
}
"Second BooleanToReal block driven by the sine chain"
b2r_2 = BlockComponents.Math.BooleanToReal() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 310, "y1": 140, "x2": 410, "y2": 240, "rot": 0}
},
"tags": []
}
}
relations
connect(c1.y, r2b.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(r2b.y, b2r.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(sine.y, r2b_2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(r2b_2.y, b2r_2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
metadata {
"Dyad": {
"icons": {"default": "dyad://BlockComponents/Example.svg"},
"tests": {"case1": {"stop": 1, "expect": {"signals": ["b2r.y", "b2r_2.y", "sine.y"]}}}
}
}
endFlattened Source
dyad
"""
Converts constant and time-varying Boolean signals to Real.
Chains Constant(1.0) → RealToBoolean(threshold=0.5) → BooleanToReal and
verifies that a true Boolean input produces realTrue=1.0. A second chain feeds
a sine wave (amplitude 1) through RealToBoolean into BooleanToReal so the
Boolean toggles and the Real output alternates between its false and true
values.
"""
test component BooleanToReal
"Constant source providing a value above the threshold"
c1 = BlockComponents.Sources.Constant(k = 1.0) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 20, "x2": 120, "y2": 120, "rot": 0}
},
"tags": []
}
}
"RealToBoolean adapter to produce Boolean signal"
r2b = BlockComponents.Math.RealToBoolean(threshold = 0.5) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 161, "y1": 20, "x2": 261, "y2": 120, "rot": 0}
},
"tags": []
}
}
"BooleanToReal block under test"
b2r = BlockComponents.Math.BooleanToReal() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 301, "y1": 20, "x2": 401, "y2": 120, "rot": 0}
},
"tags": []
}
}
"Sine source crossing the threshold"
sine = BlockComponents.Sources.Sine(amplitude = 1, frequency = 1) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 20, "y1": 140, "x2": 120, "y2": 240, "rot": 0}
},
"tags": []
}
}
"RealToBoolean adapter for the second chain"
r2b_2 = BlockComponents.Math.RealToBoolean(threshold = 0.5) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 161, "y1": 140, "x2": 261, "y2": 240, "rot": 0}
},
"tags": []
}
}
"Second BooleanToReal block driven by the sine chain"
b2r_2 = BlockComponents.Math.BooleanToReal() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 310, "y1": 140, "x2": 410, "y2": 240, "rot": 0}
},
"tags": []
}
}
relations
connect(c1.y, r2b.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(r2b.y, b2r.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(sine.y, r2b_2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
connect(r2b_2.y, b2r_2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
metadata {
"Dyad": {
"icons": {"default": "dyad://BlockComponents/Example.svg"},
"tests": {"case1": {"stop": 1, "expect": {"signals": ["b2r.y", "b2r_2.y", "sine.y"]}}}
}
}
endTest Cases
Test Case case1
julia
pltjulia
pltjulia
pltRelated
Examples
Experiments
Analyses
Tests