L14 FALLBACK FUNCTION - SPECIFICATION SHEET
==========================================================================
Use this only if you do not have your own generated function from L13.
Write your tests from THIS SHEET before you open the code file
(L14_generated_rest_check.py). Do not open the code until your tests are
written down.

The setting is a small regional airline. The rule below is invented for
this exercise. It is not any real airline's or regulator's rest rule.

--------------------------------------------------------------------------
FUNCTION
--------------------------------------------------------------------------
    rest_check(rest_periods)

Purpose: decide whether one crew member's rest over one week meets the
airline's rest rule.

INPUT
  rest_periods: a list of numbers (int or float). Each number is the
  length, in hours, of one rest period between duty periods during the
  week, in the order they happened. Each value is 0 or more.
  Example: [13.5, 12.0, 15.0]

OUTPUT
  One of exactly three strings:
    "COMPLIANT"
    "WAIVER REQUIRED"
    "NON-COMPLIANT"

THE RULE
  R1  A rest period of 12.0 hours or more is a full rest.
  R2  A rest period of at least 10.0 hours but less than 12.0 hours is a
      short rest.
  R3  A rest period of less than 10.0 hours is a violation.
  R4  If there is any violation, the result is "NON-COMPLIANT".
  R5  Otherwise, if there are two or more short rests, the result is
      "NON-COMPLIANT".
  R6  Otherwise, if there is exactly one short rest, the result is
      "WAIVER REQUIRED".
  R7  Otherwise (every period is a full rest), the result is "COMPLIANT".

INVALID INPUT
  E1  An empty list raises ValueError (there is nothing to check).
  E2  A negative value raises ValueError.
  E3  A value that is not an int or a float (for example the string "12")
      raises TypeError.

CONSTRAINTS
  Python 3 standard library only. The function does not print and does
  not ask for input. It does not change the list it is given.

ACCEPTANCE CRITERIA (the minimum; your test set should go further)
  AC1  rest_check([13.0, 14.5, 12.5])  returns "COMPLIANT"
  AC2  rest_check([13.0, 11.0, 14.0])  returns "WAIVER REQUIRED"
  AC3  rest_check([13.0, 11.0, 10.5])  returns "NON-COMPLIANT"
  AC4  rest_check([13.0, 8.0, 14.0])   returns "NON-COMPLIANT"
  AC5  rest_check([])                  raises ValueError
  AC6  rest_check([13.0, -2.0])        raises ValueError
  AC7  rest_check([13.0, "12"])        raises TypeError
