-\version "2.15.19"
+\version "2.17.25"
#(use-modules (srfi srfi-13)
(ice-9 format))
(make-column-markup (string-split str #\NewLine)))
test =
-#(let ((test-number 0))
- (define-void-function (parser location result-info strings)
- ((string? "BUG") pair?)
- (let ((input (car strings))
- (output (cdr strings)))
- (set! test-number (1+ test-number))
- (if (not (equal? input output))
- (ly:progress "Test ~a unequal: ~a. \nin = ~a\nout = ~a\n"
- test-number
- result-info
+#(define-void-function (parser location harmless strings)
+ ((string?) pair?)
+ (let ((input (car strings))
+ (output (cdr strings))
+ (result-info (or harmless "BUG")))
+ (if (not (equal? input output))
+ (if harmless
+ (ly:progress "Test unequal: ~a.\nin = ~a\nout = ~a\n"
+ harmless input output)
+ (ly:input-warning location "Test unequal: BUG.\nin = ~a\nout = ~a\n"
input output)))))
%%%
\test ##[ c4 ~ #] % TieEvent
\test ##[ c\noBeam #] % BeamForbidEvent
\test ##[ c\1 #] % StringNumberEvent
-\test ##[ { c: c:1 } #] % TremoloEvent
+\test ##[ { c:8 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-_ c^_ c__ } #]
-\test ##[ { c-\trill c^\trill c_\trill } #]
+\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 ##[ { < c\harmonic >4 < c e\harmonic > } #] % HarmonicEvent
-\test ##[ { c-\glissando c^\glissando c_\glissando } #] % GlissandoEvent
-\test ##[ { c-\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent
+\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 ##[ \breathe #]
\test ##[ { c \[ c \] } #] % LigatureEvent
\test ##[ \~ #] % PesOrFlexaEvent
-\test ##[ { c-\bendAfter #3 } #] % BendAfterEvent
-\test ##[ < c-\rightHandFinger #1 > #] % StrokeFingerEvent
+\test ##[ c\bendAfter #3 #] % BendAfterEvent
+\test ##[ c\rightHandFinger #1 #] % StrokeFingerEvent
\test ##[ \break #]
\test ##[ \noBreak #]
\test ##[ \mark \default #] % MarkEvent
\test ##[ \mark "Allegro" #]
\test ##[ \tempo 4 = 120 #] % MetronomeChangeEvent
-\test ##[ \tempo 4 = 108 ~ 116 #]
+\test ##[ \tempo 4 = 108 - 116 #]
\test ##[ \tempo "Allegro" 4 = 132 #]
\test ##[ \tempo "Andante" #]
\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 } #]
-%}
+\test ##[ \tuplet 3/2 { c8 d e } #] % TimeScaledMusic
+\test ##[ \tuplet 6/4 { c16 d e f g a } #]
+\test ##[ \tuplet 3/2 { c4 d e \tuplet 5/2 { f4 e d2 d4 } c4 } #]
+\test ##[ \tuplet 3/2 2 { c4 d e \tuplet 5/2 2 { f4 e d2 d4 } c4 } #]
+
+%% pure rhythm
+\test ##[ { 4 4 8 \tuplet 3/2 { 8[ 16] } 16 } #]
+
%% \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 percent 2 { c d } #] % PercentRepeatedMusic
\test ##[ \repeat tremolo 4 { c16 d } #] % TremoloRepeatedMusic
+\test ##[ \repeat tremolo 7 { c''32 b' } #]
+\test ##[ \repeat tremolo 15 { c''16 b' } #]
\test ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #] %
%% Context creation
\test ##[ \unset Score . skipBars #] % PropertyUnset
\test ##[ \unset autoBeaming #]
%% Layout properties
-\test ##[ \override Staff . Stem #'thickness = #4.0 #] % OverrideProperty
-\test ##[ \once \override Beam #'beam-thickness = #0.6 #]
-\test ##[ \revert Staff . Stem #'thickness #] % RevertProperty
-\test ##[ \revert Beam #'beam-thickness #]
+\test ##[ \override Staff.Stem.thickness = #4.0 #] % OverrideProperty
+\test ##[ \once \override Beam.beam-thickness = #0.6 #]
+\test ##[ \revert Staff.Stem.thickness #] % RevertProperty
+\test ##[ \revert Beam.beam-thickness #]
\test "NOT A BUG" ##[ \oneVoice #] % resetting a bunch of properties
-\test ##[ \override StaffGrouper #'(staff-staff-spacing basic-distance) = #7 #] % nested properties
-\test ##[ \revert StaffGrouper #'(staff-staff-spacing basic-distance) #] % nested properties
+\test ##[ \override StaffGrouper.staff-staff-spacing.basic-distance = #7 #] % nested properties
+\test ##[ \revert StaffGrouper.staff-staff-spacing.basic-distance #] % nested properties
%% \applyOutput
\test ##[ \applyOutput #'Foo #(lambda (arg) (list)) #]
\test ##[ \ottava #1 #] % OttavaMusic
%% \tweak
-\test ##[ < \tweak #'duration-log #2 c > #]
-\test ##[ < c \tweak #'transparent ##t e > #]
-\test ##[ < \tweak #'color #'(1.0 0.0 0.0) \tweak #'duration-log #2 c > #]
-\test ##[ c-\tweak #'font-size #3 -> #]
+\test ##[ < \tweak duration-log #2 c > #]
+\test ##[ < c \tweak transparent ##t e > #]
+\test ##[ < \tweak color #'(1.0 0.0 0.0) \tweak duration-log #2 c > #]
+\test ##[ c-\tweak font-size #3 -> #]
+\test ##[ < \tweak Accidental.color #'(1.0 0.0 0.0) cis eis g > #]
%% end test.