%% Generated by lilypond-book
%% Options: [exampleindent=10.16\mm,indent=0\mm,line-width=160\mm,paper-height=845.047\pt,paper-width=597.508\pt,papersize='(cons (* 597.508 pt) (* 845.047 pt))]
\include "lilypond-book-preamble.ly"


% ****************************************************************
% Start cut-&-pastable-section
% ****************************************************************

#(ly:set-option 'eps-box-padding 3.000000)



\paper {
  #(set-paper-size '(cons (* 597.508 pt) (* 845.047 pt)))
  indent = 0\mm
  line-width = 160\mm
  % offset the left padding, also add 1mm as lilypond creates cropped
  % images with a little space on the right
  line-width = #(- line-width (* mm  3.000000) (* mm 1))
}

\layout {
  
}




% ****************************************************************
% ly snippet:
% ****************************************************************
\sourcefilename "/lilypond-2.26.0/input/regression/polymetric-time-warning-measure-length-event.ly"
\sourcefileline 0
\version "2.25.32"

\header {
  texidoc = "A warning is issued when simultaneous @code{\\time} and
@code{\\polymetric \\time} commands require different measure lengths.  In this
case, the @code{Score} time signature is 5/4 and the @code{Staff} time signature
is 5/8."
}

#(ly:set-option 'warning-as-error #t)

checks =
#(define-music-function () () #{
  \contextPropertyCheck Score.beamExceptions #'()
  \contextPropertyCheck Score.beatBase #1/4
  \contextPropertyCheck Score.beatStructure #'(1 1 1 1 1)
  \contextPropertyCheck Score.measureLength #5/4
  \contextPropertyCheck Score.meterScalingFactor \default
  \contextPropertyCheck Score.submeasureStructure #'(5)
  \contextPropertyCheck Score.timeSignature 5/4

  \contextPropertyCheck Staff.beamExceptions #'()
  \contextPropertyCheck Staff.beatBase #1/8
  \contextPropertyCheck Staff.beatStructure #'(3 2)
  \contextPropertyCheck Staff.measureLength \default
  \contextPropertyCheck Staff.meterScalingFactor 1
  \contextPropertyCheck Staff.submeasureStructure #'(5)
  \contextPropertyCheck Staff.timeSignature 5/8
#})

\score {
  \layout {}
  \midi {}
  \new Staff {
    %% no warning even though \time and \partial come later
    \context Staff \polymetric \time 3/4
    \partial 8*3
    \time 6/8
    \context Staff \polymetric \time 3/4 % no warning here either, of course
    r4.

    \applyContext #(lambda (context)
                    (ly:expect-warning
                     (ly:translate-cpp-warning-scheme
                      "conflicting measure length: %s") 5/8)
                    (ly:expect-warning
                     (ly:translate-cpp-warning-scheme
                      "measure length in Timing context: %s") 5/4))

    \time 5/4
    \context Staff \polymetric \time 5/8
    \checks % notwithstanding the warning, the settings take effect

    \repeat unfold 5 r4

    \applyContext #(lambda (context) (ly:check-expected-warnings))

    %% switch back to a compatible meter
    \time 6/8
    \context Staff \polymetric \time 3/4
    R2.

    \applyContext #(lambda (context)
                    (ly:expect-warning
                     (ly:translate-cpp-warning-scheme
                      "conflicting measure length: %s") 5/8)
                    (ly:expect-warning
                     (ly:translate-cpp-warning-scheme
                      "measure length in Timing context: %s") 5/4))

    %% test the same commands in the reverse of the above order
    \context Staff \polymetric \time 5/8
    \time 5/4
    \checks % notwithstanding the warning, the settings take effect

    \repeat unfold 5 r4

    \applyContext #(lambda (context) (ly:check-expected-warnings))
  }
}



% ****************************************************************
% end ly snippet
% ****************************************************************
