From: Nicolas Sceaux Date: Tue, 16 Aug 2005 13:00:23 +0000 (+0000) Subject: * input/no-notation/display-lily-tests.ly: moved from X-Git-Tag: release/2.7.6~41 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=33d9825dfdf954c23c6468dbe5201f9dc5a4fe42;p=lilypond.git * input/no-notation/display-lily-tests.ly: moved from input/regression/ to input/no-notation. Be sure to call `display-lily-init' before trying to use the display function. --- diff --git a/ChangeLog b/ChangeLog index 6283b04bb9..4a1c8472c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-08-16 Nicolas Sceaux + + * input/no-notation/display-lily-tests.ly: moved from + input/regression/ to input/no-notation. Be sure to call + `display-lily-init' before trying to use the display function. + 2005-08-16 Mats Bengtsson * scripts/lilypond-book.py (option_definitions): Don't localize diff --git a/input/no-notation/display-lily-tests.ly b/input/no-notation/display-lily-tests.ly new file mode 100644 index 0000000000..c0372f243d --- /dev/null +++ b/input/no-notation/display-lily-tests.ly @@ -0,0 +1,265 @@ +\version "2.7.2" + +#(use-modules (srfi srfi-13) + (ice-9 format)) + +%%% +%%% Testing utilities +%%% +#(define (my-parse-string-result str parser) + "Parse `str', which is supposed to contain a music expression." + (ly:parser-parse-string parser + (format #f "parseStringResult = \\notemode { ~a }" str)) + (ly:parser-lookup parser 'parseStringResult)) + +#(define (my-read-lily-expression chr port) + (let ((lily-string (call-with-output-string + (lambda (out) + (do ((c (read-char port) (read-char port))) + ((and (char=? c #\#) + (char=? (peek-char port) #\])) + (read-char port)) + (display c out)))))) + `(let* ((parser-clone (ly:clone-parser parser)) + (input-str (string-trim-both ,lily-string)) + (music (car (ly:music-property (my-parse-string-result input-str parser-clone) + 'elements))) + (result-str (string-trim-both (music->lily-string music)))) + (cons input-str result-str)))) + +#(read-hash-extend #\[ my-read-lily-expression) + +#(define test-number 0) + +#(define (lily-string->markup str) + (make-column-markup (string-split str #\NewLine))) + +initTest = #(def-music-function (parser location) () + ;; Before using display-lily-music, it must be + ;; inited using display-lily-init + (display-lily-init parser) + (set! test-number 0) + (make-music 'SequentialMusic)) + +test = #(def-music-function (parser location result-info strings) (string? pair?) + (display-lily-init parser) + (let ((input (car strings)) + (output (cdr strings))) + (set! test-number (1+ test-number)) + (if (string=? input output) + (make-music 'SequentialMusic) + (make-music 'SequentialMusic + 'elements + (list (make-music 'EventChord + 'elements (list (make-music 'BreakEvent + 'page-penalty 0 + 'penalty -10001))) + (make-music 'EventChord + 'elements (list (make-music 'SkipEvent + 'duration (ly:make-duration 0 0 1 1)) + (make-music 'TextScriptEvent + 'direction -1 + 'text (markup #:column (#:simple (format #f "Test #~a " + test-number) + (if (string-null? result-info) + (markup #:bold "BUG") + (markup #:simple result-info)) + #:typewriter (lily-string->markup input) + #:typewriter (lily-string->markup output))))))))))) + +%%% +%%% Tests +%%% +\header { + texidoc = \markup \column { \line { \typewriter display-lily-music unit tests } + \line { Real bugs (regressions) are marked as \bold BUG. } + \line { Known bugs are marked as TODO. } } +} + +\layout { + raggedright = ##t + indent = 0.0\cm + \context { + \Staff + \override StaffSymbol #'line-count = #1 + %\remove "Staff_symbol_engraver" + \remove "Time_signature_engraver" + \remove "Clef_engraver" + } + \context { + \Score + \remove "Bar_number_engraver" + } +} +{ + \initTest + %% Sequential music + \test #"" ##[ { { a b } { c d } } #] % SequentialMusic + \test #"" ##[ << { a b } { c d } >> #] % SimultaneousMusic + \test #"" ##[ << { a b } \\ { c d } >> #] % VoiceSeparator + + %% Chords and Notes + \test #"" ##[ { ceses ces c cis cisis } #] % NoteEvent + \test #"" ##[ { deses des d dis disis } #] + \test #"" ##[ { eeses ees e eis eisis } #] + \test #"" ##[ { feses fes f fis fisis } #] + \test #"" ##[ { geses ges g gis gisis } #] + \test #"" ##[ { aeses aes a ais aisis } #] + \test #"" ##[ { beses bes b bis bisis } #] + \test #"" ##[ { c,, d' } #] + \test #"" ##[ { c' d'=' } #] + \test #"" ##[ { c! c? } #] + \test #"" ##[ r1.*4/3 #] % RestEvent + \test #"" ##[ c1\rest #] % RestEvent + \test #"" ##[ s2..*3/4 #] % SkipEvent + \test #"" ##[ R1.*2/3 #] % MultiMeasureRestMusicGroup, MultiMeasureRestEvent + \test #"" ##[ \skip 2.*3/4 #] % SkipMusic + \test #"" ##[ < c\1 e\3 >4.*3/4-. #] % EventChord, NoteEvent, StringNumberEvent, ArticulationEvent + + %% tags + \test #"" ##[ { \tag #'foo { c4 d } } #] + \test #"" ##[ c-\tag #'(foo baz) -^ -. #] + + %% Graces + \test #"" ##[ { \grace c8 d2 } #] % GraceMusic + \test #"" ##[ { \appoggiatura c8 d2 } #] + \test #"" ##[ { \acciaccatura c8 d2 } #] + \test #"" ##[ { c1 \afterGrace { b,16 c } d2 } #] + + %% Clusters + \test #"" ##[ { \makeClusters { c4 g } } #] % ClusterNoteEvent + + %% Figured bass + \test #"" ##[ \figures { < 6 > } #] % BassFigureEvent + \test #"" ##[ \figuremode { < 1-- 3- > < 2+ 4++ > < _! 7! > } #] + \test #"" ##[ \figuremode { < [6 > < 5] > } #] + + %% Lyrics + \test #"" ##[ \lyrics { a b } #] + \test #"" ##[ \lyricmode { a -- b } #] % HyphenEvent + \test #"" ##[ \lyricmode { a __ b } #] % ExtenderEvent + \test #"" ##[ \lyricmode { "a " } #] % LyricEvent + \test #"" ##[ \lyricsto "foo" { bla bla } #] % LyricCombineMusic + \test #"" ##[ { { c d } + \addlyrics { bla bla } } #] + \test #"" ##[ \oldaddlyrics { c d } +\lyricmode { bla bla } #] % OldLyricCombineMusic + + %% Drums + \test #"" ##[ \drums { hihat } #] + \test #"" ##[ \drummode { hihat4.*3/4 } #] + + %% Expressive marks + \test #"" ##[ c4 ~ #] % TieEvent + \test #"" ##[ c\noBeam #] % BeamForbidEvent + \test #"" ##[ c\1 #] % StringNumberEvent + \test #"" ##[ { c: c:1 } #] % TremoloEvent + \test #"" ##[ { c-^ c^^ c_^ } #] % ArticulationEvent + \test #"" ##[ { c-+ c^+ c_+ } #] + \test #"" ##[ { c-- c^- c_- } #] + \test #"" ##[ { c-| c^| c_| } #] + \test #"" ##[ { c-> c^> c_> } #] + \test #"" ##[ { c-. c^. c_. } #] + \test #"" ##[ { c-_ c^_ c__ } #] + \test #"" ##[ { c-\trill c^\trill c_\trill } #] + \test #"" ##[ { c-1 c^2 c_3 } #] % FingerEvent + \test #"" ##[ { c-"foo" c^"foo" c_"foo" } #] % TextScriptEvent + \test #"" ##[ { R1*4 -"foo" R ^"foo" R _"foo" } #] % MultiMeasureTextEvent + \test #"" ##[ { c4-\harmonic c^\harmonic c_\harmonic } #] % HarmonicEvent + \test #"" ##[ { c-\glissando c^\glissando c_\glissando } #] % GlissandoEvent + \test #"" ##[ { c-\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent + \test #"" ##[ { c\p c^\ff c_\sfz } #] % AbsoluteDynamicEvent + \test #"" ##[ { c[ c] c^[ c^] c_[ c_] } #] % BeamEvent + \test #"" ##[ { c( c) c^( c^) c_( c_) } #] % SlurEvent + \test #"" ##[ { c\< c\! c^\< c^\! c_\< c_\! } #] % CrescendoEvent + \test #"" ##[ { c\> c\! c^\> c^\! c_\> c_\! } #] % DecrescendoEvent + \test #"" ##[ { c\( c\) c^\( c^\) c_\( c_\) } #] % PhrasingSlurEvent + \test #"" ##[ { c\sustainDown c\sustainUp } #] % SustainEvent + \test #"" ##[ { c\sostenutoDown c\sostenutoUp } #] % SostenutoEvent + \test #"" ##[ { c\melisma c\melismaEnd } #] % ManualMelismaEvent + \test #"" ##[ { c\startTextSpan c\stopTextSpan } #] % TextSpanEvent + \test #"" ##[ { c\startTrillSpan c\stopTrillSpan } #] % TrillSpanEvent + \test #"" ##[ { c \startStaff c \stopStaff } #] % StaffSpanEvent + \test #"" ##[ { c\startGroup c\stopGroup c^\startGroup c^\stopGroup c_\startGroup c_\stopGroup } #] % NoteGroupingEvent + \test #"" ##[ { c\unaCorda c\treCorde } #] % UnaCordaEvent + \test #"" ##[ \breathe #] + \test #"" ##[ { c \[ c \] } #] % LigatureEvent + \test #"" ##[ \~ #] % PesOrFlexaEvent + + \test #"" ##[ \break #] + + %% Checks + \test #"" ##[ \octave a' #] % RelativeOctaveCheck + \test #"" ##[ | #] % BarCheck + + %% Marks + \test #"" ##[ \mark \default #] % MarkEvent + \test #"" ##[ \mark "Allegro" #] + \test #"" ##[ \tempo 4 = 120 #] % MetronomeChangeEvent + + %% key, time, clef, bar + \test #"" ##[ \key \default #] % KeyChangeEvent + \test #"" ##[ \key e \minor #] + \test #"" ##[ \clef "bass" #] + \test #"" ##[ \clef "french^2" #] + \test #"" ##[ \clef "alto_3" #] + \test #"" ##[ \time 2/4 #] + \test #"" ##[ #(set-time-signature 5 8 '(3 2)) #] + \test #"" ##[ \bar "|." #] + + %% staff switches + \test #"" ##[ \autochange { c d } #] % AutoChangeMusic + \test #"" ##[ { \change Staff = "up" { c d } } #] % ContextChange + + %% Tuplets + \test #"" ##[ \times 2/3 { c8 d e } #] % TimeScaledMusic + \test #"" ##[ \times 4/6 { c16 d e f g a } #] + + %% \relative and \tranpose + \test #"NOT A BUG" ##[ \relative c' { c b } #] % RelativeOctaveMusic + \test #"NOT A BUG" ##[ \transpose c d { c d } #] % TransposedMusic + + %% Repeats + \test #"" ##[ \repeat volta 2 { c d } #] % VoltaRepeatedMusic + \test #"" ##[ \repeat unfold 2 { c d } #] % UnfoldedRepeatedMusic + \test #"" ##[ \repeat fold 2 { c d } #] % FoldedRepeatedMusic + \test #"" ##[ \repeat percent 2 { c d } #] % PercentRepeatedMusic + \test #"" ##[ \repeat tremolo 4 { c16 d } #] % TremoloRepeatedMusic + \test #"" ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #] % + + %% Context creation + \test #"" ##[ \new Staff { c d } #] % ContextSpeccedMusic + \test #"" ##[ \context Staff { c d } #] + \test #"" ##[ \context Staff = "up" { c d } #] + \test #"" ##[ +\new Staff \with { + \consists "Timing_engraver" + \remove "Clef_engraver" +} { c d } #] + %% Context properties + \test #"" ##[ \once \set Score . skipBars = ##t #] % PropertySet + \test #"" ##[ \set autoBeaming = ##f #] + \test #"" ##[ \unset Score . skipBars #] % PropertyUnset + \test #"" ##[ \unset autoBeaming #] + %% Layout properties + \test #"" ##[ \override Staff . Stem #'thickness = #4.0 #] % OverrideProperty + \test #"" ##[ \once \override Beam #'thickness = #0.6 #] + \test #"" ##[ \revert Staff . Stem #'thickness #] % RevertProperty + \test #"" ##[ \revert Beam #'thickness #] + + %% \partial + + + \test #"" ##[ \partial 2 #] + \test #"" ##[ \partial 8. #] + \test #"TODO? exotic durations in \\partial" ##[ \partial 4*2/3 #] + + %% \partcombine + \test #"" ##[ \partcombine { c e } +{ d f } #] % PartCombineMusic UnrelativableMusic + + %% Cue notes + \test #"" ##[ \cueDuring #"foo" #1 { c d } #] + \test #"" ##[ \quoteDuring #"foo" { c d } #] +} + diff --git a/input/regression/display-lily-tests.ly b/input/regression/display-lily-tests.ly deleted file mode 100644 index 81f72cfb2d..0000000000 --- a/input/regression/display-lily-tests.ly +++ /dev/null @@ -1,256 +0,0 @@ -\version "2.7.2" - -#(use-modules (srfi srfi-13) - (ice-9 format)) - -%%% -%%% Testing utilities -%%% -#(define (my-parse-string-result str parser) - "Parse `str', which is supposed to contain a music expression." - (ly:parser-parse-string parser - (format #f "parseStringResult = \\notemode { ~a }" str)) - (ly:parser-lookup parser 'parseStringResult)) - -#(define (my-read-lily-expression chr port) - (let ((lily-string (call-with-output-string - (lambda (out) - (do ((c (read-char port) (read-char port))) - ((and (char=? c #\#) - (char=? (peek-char port) #\])) - (read-char port)) - (display c out)))))) - `(let* ((parser-clone (ly:clone-parser parser)) - (input-str (string-trim-both ,lily-string)) - (music (car (ly:music-property (my-parse-string-result input-str parser-clone) - 'elements))) - (result-str (string-trim-both (music->lily-string music)))) - (cons input-str result-str)))) - -#(read-hash-extend #\[ my-read-lily-expression) - -#(define test-number 0) - -#(define (lily-string->markup str) - (make-column-markup (string-split str #\NewLine))) - -test = #(def-music-function (parser location result-info strings) (string? pair?) - (let ((input (car strings)) - (output (cdr strings))) - (set! test-number (1+ test-number)) - (if (string=? input output) - (make-music 'SequentialMusic) - (make-music 'SequentialMusic - 'elements - (list (make-music 'EventChord - 'elements (list (make-music 'BreakEvent - 'page-penalty 0 - 'penalty -10001))) - (make-music 'EventChord - 'elements (list (make-music 'SkipEvent - 'duration (ly:make-duration 0 0 1 1)) - (make-music 'TextScriptEvent - 'direction -1 - 'text (markup #:column (#:simple (format #f "Test #~a " - test-number) - (if (string-null? result-info) - (markup #:bold "BUG") - (markup #:simple result-info)) - #:typewriter (lily-string->markup input) - #:typewriter (lily-string->markup output))))))))))) - -%%% -%%% Tests -%%% -\header { - texidoc = \markup \column { \line { \typewriter display-lily-music unit tests } - \line { Real bugs (regressions) are marked as \bold BUG. } - \line { Known bugs are marked as TODO. } } -} - -\layout { - raggedright = ##t - indent = 0.0\cm - \context { - \Staff - \override StaffSymbol #'line-count = #1 - %\remove "Staff_symbol_engraver" - \remove "Time_signature_engraver" - \remove "Clef_engraver" - } - \context { - \Score - \remove "Bar_number_engraver" - } -} -{ - %% Sequential music - \test #"" ##[ { { a b } { c d } } #] % SequentialMusic - \test #"" ##[ << { a b } { c d } >> #] % SimultaneousMusic - \test #"" ##[ << { a b } \\ { c d } >> #] % VoiceSeparator - - %% Chords and Notes - \test #"" ##[ { ceses ces c cis cisis } #] % NoteEvent - \test #"" ##[ { deses des d dis disis } #] - \test #"" ##[ { eeses ees e eis eisis } #] - \test #"" ##[ { feses fes f fis fisis } #] - \test #"" ##[ { geses ges g gis gisis } #] - \test #"" ##[ { aeses aes a ais aisis } #] - \test #"" ##[ { beses bes b bis bisis } #] - \test #"" ##[ { c,, d' } #] - \test #"" ##[ { c' d'=' } #] - \test #"" ##[ { c! c? } #] - \test #"" ##[ r1.*4/3 #] % RestEvent - \test #"" ##[ c1\rest #] % RestEvent - \test #"" ##[ s2..*3/4 #] % SkipEvent - \test #"" ##[ R1.*2/3 #] % MultiMeasureRestMusicGroup, MultiMeasureRestEvent - \test #"" ##[ \skip 2.*3/4 #] % SkipMusic - \test #"" ##[ < c\1 e\3 >4.*3/4-. #] % EventChord, NoteEvent, StringNumberEvent, ArticulationEvent - - %% tags - \test #"" ##[ { \tag #'foo { c4 d } } #] - \test #"" ##[ c-\tag #'(foo baz) -^ -. #] - - %% Graces - \test #"" ##[ { \grace c8 d2 } #] % GraceMusic - \test #"" ##[ { \appoggiatura c8 d2 } #] - \test #"" ##[ { \acciaccatura c8 d2 } #] - \test #"" ##[ { c1 \afterGrace { b,16 c } d2 } #] - - %% Clusters - \test #"" ##[ { \makeClusters { c4 g } } #] % ClusterNoteEvent - - %% Figured bass - \test #"" ##[ \figures { < 6 > } #] % BassFigureEvent - \test #"" ##[ \figuremode { < 1-- 3- > < 2+ 4++ > < _! 7! > } #] - \test #"" ##[ \figuremode { < [6 > < 5] > } #] - - %% Lyrics - \test #"" ##[ \lyrics { a b } #] - \test #"" ##[ \lyricmode { a -- b } #] % HyphenEvent - \test #"" ##[ \lyricmode { a __ b } #] % ExtenderEvent - \test #"" ##[ \lyricmode { "a " } #] % LyricEvent - \test #"" ##[ \lyricsto "foo" { bla bla } #] % LyricCombineMusic - \test #"" ##[ { { c d } - \addlyrics { bla bla } } #] - \test #"" ##[ \oldaddlyrics { c d } -\lyricmode { bla bla } #] % OldLyricCombineMusic - - %% Drums - \test #"" ##[ \drums { hihat } #] - \test #"" ##[ \drummode { hihat4.*3/4 } #] - - %% Expressive marks - \test #"" ##[ c4 ~ #] % TieEvent - \test #"" ##[ c\noBeam #] % BeamForbidEvent - \test #"" ##[ c\1 #] % StringNumberEvent - \test #"" ##[ { c: c:1 } #] % TremoloEvent - \test #"" ##[ { c-^ c^^ c_^ } #] % ArticulationEvent - \test #"" ##[ { c-+ c^+ c_+ } #] - \test #"" ##[ { c-- c^- c_- } #] - \test #"" ##[ { c-| c^| c_| } #] - \test #"" ##[ { c-> c^> c_> } #] - \test #"" ##[ { c-. c^. c_. } #] - \test #"" ##[ { c-_ c^_ c__ } #] - \test #"" ##[ { c-\trill c^\trill c_\trill } #] - \test #"" ##[ { c-1 c^2 c_3 } #] % FingerEvent - \test #"" ##[ { c-"foo" c^"foo" c_"foo" } #] % TextScriptEvent - \test #"" ##[ { R1*4 -"foo" R ^"foo" R _"foo" } #] % MultiMeasureTextEvent - \test #"" ##[ { c4-\harmonic c^\harmonic c_\harmonic } #] % HarmonicEvent - \test #"" ##[ { c-\glissando c^\glissando c_\glissando } #] % GlissandoEvent - \test #"" ##[ { c-\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent - \test #"" ##[ { c\p c^\ff c_\sfz } #] % AbsoluteDynamicEvent - \test #"" ##[ { c[ c] c^[ c^] c_[ c_] } #] % BeamEvent - \test #"" ##[ { c( c) c^( c^) c_( c_) } #] % SlurEvent - \test #"" ##[ { c\< c\! c^\< c^\! c_\< c_\! } #] % CrescendoEvent - \test #"" ##[ { c\> c\! c^\> c^\! c_\> c_\! } #] % DecrescendoEvent - \test #"" ##[ { c\( c\) c^\( c^\) c_\( c_\) } #] % PhrasingSlurEvent - \test #"" ##[ { c\sustainDown c\sustainUp } #] % SustainEvent - \test #"" ##[ { c\sostenutoDown c\sostenutoUp } #] % SostenutoEvent - \test #"" ##[ { c\melisma c\melismaEnd } #] % ManualMelismaEvent - \test #"" ##[ { c\startTextSpan c\stopTextSpan } #] % TextSpanEvent - \test #"" ##[ { c\startTrillSpan c\stopTrillSpan } #] % TrillSpanEvent - \test #"" ##[ { c \startStaff c \stopStaff } #] % StaffSpanEvent - \test #"" ##[ { c\startGroup c\stopGroup c^\startGroup c^\stopGroup c_\startGroup c_\stopGroup } #] % NoteGroupingEvent - \test #"" ##[ { c\unaCorda c\treCorde } #] % UnaCordaEvent - \test #"" ##[ \breathe #] - \test #"" ##[ { c \[ c \] } #] % LigatureEvent - \test #"" ##[ \~ #] % PesOrFlexaEvent - - \test #"" ##[ \break #] - - %% Checks - \test #"" ##[ \octave a' #] % RelativeOctaveCheck - \test #"" ##[ | #] % BarCheck - - %% Marks - \test #"" ##[ \mark \default #] % MarkEvent - \test #"" ##[ \mark "Allegro" #] - \test #"" ##[ \tempo 4 = 120 #] % MetronomeChangeEvent - - %% key, time, clef, bar - \test #"" ##[ \key \default #] % KeyChangeEvent - \test #"" ##[ \key e \minor #] - \test #"" ##[ \clef "bass" #] - \test #"" ##[ \clef "french^2" #] - \test #"" ##[ \clef "alto_3" #] - \test #"" ##[ \time 2/4 #] - \test #"" ##[ #(set-time-signature 5 8 '(3 2)) #] - \test #"" ##[ \bar "|." #] - - %% staff switches - \test #"" ##[ \autochange { c d } #] % AutoChangeMusic - \test #"" ##[ { \change Staff = "up" { c d } } #] % ContextChange - - %% Tuplets - \test #"" ##[ \times 2/3 { c8 d e } #] % TimeScaledMusic - \test #"" ##[ \times 4/6 { c16 d e f g a } #] - - %% \relative and \tranpose - \test #"NOT A BUG" ##[ \relative c' { c b } #] % RelativeOctaveMusic - \test #"NOT A BUG" ##[ \transpose c d { c d } #] % TransposedMusic - - %% Repeats - \test #"" ##[ \repeat volta 2 { c d } #] % VoltaRepeatedMusic - \test #"" ##[ \repeat unfold 2 { c d } #] % UnfoldedRepeatedMusic - \test #"" ##[ \repeat fold 2 { c d } #] % FoldedRepeatedMusic - \test #"" ##[ \repeat percent 2 { c d } #] % PercentRepeatedMusic - \test #"" ##[ \repeat tremolo 4 { c16 d } #] % TremoloRepeatedMusic - \test #"" ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #] % - - %% Context creation - \test #"" ##[ \new Staff { c d } #] % ContextSpeccedMusic - \test #"" ##[ \context Staff { c d } #] - \test #"" ##[ \context Staff = "up" { c d } #] - \test #"" ##[ -\new Staff \with { - \consists "Timing_engraver" - \remove "Clef_engraver" -} { c d } #] - %% Context properties - \test #"" ##[ \once \set Score . skipBars = ##t #] % PropertySet - \test #"" ##[ \set autoBeaming = ##f #] - \test #"" ##[ \unset Score . skipBars #] % PropertyUnset - \test #"" ##[ \unset autoBeaming #] - %% Layout properties - \test #"" ##[ \override Staff . Stem #'thickness = #4.0 #] % OverrideProperty - \test #"" ##[ \once \override Beam #'thickness = #0.6 #] - \test #"" ##[ \revert Staff . Stem #'thickness #] % RevertProperty - \test #"" ##[ \revert Beam #'thickness #] - - %% \partial - - - \test #"" ##[ \partial 2 #] - \test #"" ##[ \partial 8. #] - \test #"TODO? exotic durations in \\partial" ##[ \partial 4*2/3 #] - - %% \partcombine - \test #"" ##[ \partcombine { c e } -{ d f } #] % PartCombineMusic UnrelativableMusic - - %% Cue notes - \test #"" ##[ \cueDuring #"foo" #1 { c d } #] - \test #"" ##[ \quoteDuring #"foo" { c d } #] -} -