Files @ 623836db99af
Branch filter:

Location: light9/light9/effect/sequencer/note_test.py

drewp@bigasterisk.com
fix ts warning
import pytest

from light9.effect.sequencer import Note
from light9.effect.settings import BareEffectSettings
from light9.mock_syncedgraph import MockSyncedGraph
from light9.namespaces import L9
from light9.newtypes import EffectAttr, NoteUri

PREFIXES = '''
@prefix : <http://light9.bigasterisk.com/> .
@prefix effect: <http://light9.bigasterisk.com/effect/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix show: <http://light9.bigasterisk.com/show/dance2023/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dev: <http://light9.bigasterisk.com/theater/test/device/> .
@prefix dmxA: <http://light9.bigasterisk.com/output/dmxA/> .
'''

FADER_GRAPH = PREFIXES + '''
    :fade1
        a :Fader;
        :effectClass effect:effect1;
        :effectAttr :strength;
        :value 0.6 .
'''


# class TestUntimedFaderNote:

#     def test_returnsEffectSettings(self):
#         g = MockSyncedGraph(FADER_GRAPH)
#         n = Note(g, NoteUri(L9['fade1']), timed=False)
#         out, report = n.outputCurrent()
#         assert report['effectSettings'] == {'http://light9.bigasterisk.com/strength': 0.6}
#         assert out == BareEffectSettings(s={EffectAttr(L9['strength']): 0.6})


NOTE_GRAPH = PREFIXES + '''
    :brightness
        a :DeviceAttr;
        rdfs:label "brightness";
        :dataType :scalar .

    :strength
        a :EffectAttr;
        rdfs:label "strength" .

    :SimpleDimmer
        a :DeviceClass;
        rdfs:label "SimpleDimmer";
        :deviceAttr :brightness;
        :attr [ :outputAttr :level; :dmxOffset 0 ] .

    dev:light1
        a :SimpleDimmer;
        :dmxUniverse dmxA:;
        :dmxBase 178 .

    effect:effect1
        a :EffectClass;
        :setting effect:effect1_set1 .
    effect:effect1_set1
        :device dev:light1;
        :deviceAttr :brightness;
        :scaledValue 0.5 .
    :fade1
        a :Fader;
        :effectClass effect:effect1;
        :effectAttr :strength;
        :value 0.6 .
        '''


class TestTimedNote:

    @pytest.mark.skip()
    def test_scalesStrengthWithCurve(self):
        pass