   def process(pOptions) do
     hour = pOptions[:hour]
     minute = pOptions[:minute]
-    adjust = pOptions[:adjust]
-    normalize = pOptions[:normalize]
-    positive = pOptions[:positive]
-    bounds = pOptions[:bounds]
-    angle = ClockAngle.radians(hour, minute, adjust, normalize, positive, bounds)
-    output(Format.time(hour, minute), Format.angle(angle, pOptions))
+    radians = ClockAngle.radians(pOptions)
+    output(Format.time(hour, minute), Format.angle(radians, pOptions))
   end
 
   def output(pTime, pAngle) do

  def round(pValue, pPrecision), do: pValue |> Float.round(pPrecision)

  def case(pHour, pMinute, pExpected, pOptions) do
    adjust = pOptions[:adjust]
    normalize = pOptions[:normalize]
    positive = pOptions[:positive]
    bounds = pOptions[:bounds]
    precision = pOptions[:precision]

    actual = ClockAngle.radians(pHour, pMinute, adjust, normalize, positive, bounds)
    actual_rounded = actual |> round(precision)

    expected = pExpected

    {parsed, remaining, invalid} = OptionParser.parse(args, strict: switches, aliases: aliases)
    options = defaults
    |> Keyword.merge(parsed)
    |> Enum.into(%{})
    cond do
      options[:help] or (0 < length remaining) or (0 < length invalid) ->
        usage
