aboutsummaryrefslogtreecommitdiff
path: root/tests/test_comp_original.py
diff options
context:
space:
mode:
authorBrianna Rainey2026-01-28 17:49:58 -0500
committerGitHub2026-01-28 17:49:58 -0500
commitf66eb99465c61232a7f649e66bee59504bb0e52c (patch)
tree40d4f2e4e7cea033e4a68da025c7d91295e71cfb /tests/test_comp_original.py
parent864898419e810055b51e3a32fccb00a62aab9a6b (diff)
v2.2.1 - fix #74, fix #92, add optional 64th bar to Classic Visualizer, improve Conway default (#93)
* update gitignore ignore profiling and coverage data * F1 opens help window, create appName variable, move undostack class * fix kaleidoscope effect, increase default Y values by +4 the increased y values allow the cells to continue animating for more than 60 minutes instead of 30 (at default 60f/t) * update version number * add minimumWidth to undo history window * Classic Visualizer: option to include 64th bar * Waveform component: fix #74 - new animation speed option * move shared visualizer code into toolkit * Waveform component: compress audio by default * Waveform component: fix 100% animation speed * new components receive random color * update to Qt 6 * fix pushbutton stylesheet * fix #92: replace ok/cancel with save/discard/cancel * remove obsolete PaintColor subclass * mv common shadow code into addShadow func * add 3rd option of ok/cancel back to showMessage the 3 options are: - ok - ok/cancel - save/discard/cancel * Image component: add shadow option * small test of rgbFromString * fix color tuple string * test another way to get comp names from CLI * rename component tests, add some more * Image component: scale shadow based on resolution * catch AttributeError if previewRender returns None * Text component: fix blur radius only able to increase the relativeWidgets system causes QDoubleSpinbox to only allow increases, because it really only works with integeres, so I changed the blur radius into a normal QSpinBox. I noted where the problem exists within component.py for future reference. This commit also removes an unneeded VerticalLayout from the ui file * remove unnecessary QVBoxLayout * paste shadow at x,y instead of using offset method * fix tests due to shadow change * don't print warning in connectWidget due to QFontComboBox
Diffstat (limited to 'tests/test_comp_original.py')
-rw-r--r--tests/test_comp_original.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/test_comp_original.py b/tests/test_comp_original.py
new file mode 100644
index 0000000..6264644
--- /dev/null
+++ b/tests/test_comp_original.py
@@ -0,0 +1,68 @@
+from avp.command import Command
+from avp.toolkit.visualizer import transformData
+from pytestqt import qtbot
+from pytest import fixture
+from . import audioData, MockSignal, imageDataSum
+
+
+sampleSize = 1470 # 44100 / 30 = 1470
+
+
+@fixture
+def coreWithClassicComp(qtbot):
+ """Fixture providing a Command object with Classic Visualizer component added"""
+ command = Command()
+ command.core.insertComponent(
+ 0, command.core.moduleIndexFor("Classic Visualizer"), command
+ )
+ yield command.core
+
+
+def test_comp_classic_added(coreWithClassicComp):
+ """Add Classic Visualizer to core"""
+ assert len(coreWithClassicComp.selectedComponents) == 1
+
+
+def test_comp_classic_removed(coreWithClassicComp):
+ """Remove Classic Visualizer from core"""
+ coreWithClassicComp.removeComponent(0)
+ assert len(coreWithClassicComp.selectedComponents) == 0
+
+
+def test_comp_classic_drawBars(coreWithClassicComp, audioData):
+ """Call drawBars after creating audio spectrum data manually."""
+
+ spectrumArray = {0: transformData(0, audioData[0], sampleSize, 0.08, 0.8, None, 20)}
+ for i in range(sampleSize, len(audioData[0]), sampleSize):
+ spectrumArray[i] = transformData(
+ i,
+ audioData[0],
+ sampleSize,
+ 0.08,
+ 0.8,
+ spectrumArray[i - sampleSize].copy(),
+ 20,
+ )
+ image = coreWithClassicComp.selectedComponents[0].drawBars(
+ 1920, 1080, spectrumArray[sampleSize * 4], (0, 0, 0), 0
+ )
+ assert imageDataSum(image) == 37872316
+
+
+def test_comp_classic_drawBars_using_preFrameRender(coreWithClassicComp, audioData):
+ """Call drawBars after creating audio spectrum data using preFrameRender."""
+ comp = coreWithClassicComp.selectedComponents[0]
+ comp.preFrameRender(
+ completeAudioArray=audioData[0],
+ sampleSize=sampleSize,
+ progressBarSetText=MockSignal(),
+ progressBarUpdate=MockSignal(),
+ )
+ image = comp.drawBars(
+ 1920,
+ 1080,
+ coreWithClassicComp.selectedComponents[0].spectrumArray[sampleSize * 4],
+ (0, 0, 0),
+ 0,
+ )
+ assert imageDataSum(image) == 37872316