VariableSinCosTest
Test component for sine and cosine generators with variable frequency and amplitude inputs.
Creates a test environment that connects amplitude and frequency input sources to sine and cosine wave generators. The amplitude source is a ramp that starts at 2 and decreases to 0 over 3 seconds, while the frequency is held constant at 2 Hz. This test setup allows visualization of how the wave generators respond to changing amplitude while maintaining a constant frequency.
Usage
VariableSinCosTest()
Behavior
Source
dyad
# Test component for sine and cosine generators with variable frequency and amplitude inputs.
#
# Creates a test environment that connects amplitude and frequency input sources to sine and cosine
# wave generators. The amplitude source is a ramp that starts at 2 and decreases to 0 over 3 seconds,
# while the frequency is held constant at 2 Hz. This test setup allows visualization of how the wave
# generators respond to changing amplitude while maintaining a constant frequency.
test component VariableSinCosTest
# Sine wave generator with variable frequency and amplitude inputs
sine_wave = SineVariableFrequencyAndAmplitude() [{
"Dyad": {"placement": {"icon": {"x1": 600, "y1": 100, "x2": 800, "y2": 300, "rot": 0}}}
}]
# Cosine wave generator with variable frequency and amplitude inputs
cos_wave = CosineVariableFrequencyAndAmplitude() [{
"Dyad": {"placement": {"icon": {"x1": 600, "y1": 400, "x2": 800, "y2": 600, "rot": 0}}}
}]
# Amplitude source that starts at 2 and linearly decreases to 0 over 3 seconds
amplitude_source = BlockComponents.Ramp(start_time=0, offset=2, duration=3, height=-2) [{
"Dyad": {"placement": {"icon": {"x1": 0, "y1": 100, "x2": 200, "y2": 300, "rot": 0}}}
}]
# Frequency source providing a constant value of 2 Hz
frequency_source = BlockComponents.Constant(k=2) [{
"Dyad": {"placement": {"icon": {"x1": 0, "y1": 400, "x2": 200, "y2": 600, "rot": 0}}}
}]
relations
# Connects amplitude source to both wave generators
connect(amplitude_source.y, sine_wave.amplitude, cos_wave.amplitude) [{
"Dyad": {
"edges": [
{"S": -1, "E": 1},
{"S": -1, "M": [{"x": 300, "y": 160}], "E": 2},
{"S": -1, "M": [{"x": 300, "y": 460}], "E": 3}
],
"junctions": [{"x": 300, "y": 200}]
}
}]
# Connects frequency source to both wave generators
connect(frequency_source.y, sine_wave.frequency, cos_wave.frequency) [{
"Dyad": {
"edges": [
{"S": -1, "E": 1},
{"S": -1, "M": [{"x": 400, "y": 240}], "E": 2},
{"S": -1, "M": [{"x": 400, "y": 540}], "E": 3}
],
"junctions": [{"x": 400, "y": 500}]
}
}]
metadata {
"Dyad": {"tests": {"case1": {"stop": 10, "signals": ["sine_wave.y", "cos_wave.y"]}}}
}
end
Flattened Source
dyad
# Test component for sine and cosine generators with variable frequency and amplitude inputs.
#
# Creates a test environment that connects amplitude and frequency input sources to sine and cosine
# wave generators. The amplitude source is a ramp that starts at 2 and decreases to 0 over 3 seconds,
# while the frequency is held constant at 2 Hz. This test setup allows visualization of how the wave
# generators respond to changing amplitude while maintaining a constant frequency.
test component VariableSinCosTest
# Sine wave generator with variable frequency and amplitude inputs
sine_wave = SineVariableFrequencyAndAmplitude() [{
"Dyad": {"placement": {"icon": {"x1": 600, "y1": 100, "x2": 800, "y2": 300, "rot": 0}}}
}]
# Cosine wave generator with variable frequency and amplitude inputs
cos_wave = CosineVariableFrequencyAndAmplitude() [{
"Dyad": {"placement": {"icon": {"x1": 600, "y1": 400, "x2": 800, "y2": 600, "rot": 0}}}
}]
# Amplitude source that starts at 2 and linearly decreases to 0 over 3 seconds
amplitude_source = BlockComponents.Ramp(start_time=0, offset=2, duration=3, height=-2) [{
"Dyad": {"placement": {"icon": {"x1": 0, "y1": 100, "x2": 200, "y2": 300, "rot": 0}}}
}]
# Frequency source providing a constant value of 2 Hz
frequency_source = BlockComponents.Constant(k=2) [{
"Dyad": {"placement": {"icon": {"x1": 0, "y1": 400, "x2": 200, "y2": 600, "rot": 0}}}
}]
relations
# Connects amplitude source to both wave generators
connect(amplitude_source.y, sine_wave.amplitude, cos_wave.amplitude) [{
"Dyad": {
"edges": [
{"S": -1, "E": 1},
{"S": -1, "M": [{"x": 300, "y": 160}], "E": 2},
{"S": -1, "M": [{"x": 300, "y": 460}], "E": 3}
],
"junctions": [{"x": 300, "y": 200}]
}
}]
# Connects frequency source to both wave generators
connect(frequency_source.y, sine_wave.frequency, cos_wave.frequency) [{
"Dyad": {
"edges": [
{"S": -1, "E": 1},
{"S": -1, "M": [{"x": 400, "y": 240}], "E": 2},
{"S": -1, "M": [{"x": 400, "y": 540}], "E": 3}
],
"junctions": [{"x": 400, "y": 500}]
}
}]
metadata {
"Dyad": {"tests": {"case1": {"stop": 10, "signals": ["sine_wave.y", "cos_wave.y"]}}}
}
end
Test Cases
Test Case case1
Related
Examples
Experiments
Analyses
Tests