 
 # TODO Clear out debugging code, etc.
 # TODO Organize helper functions.
-# TODO Use time-based scales only for time-based data.
-# TODO Something is breaking at the microsecond scale.
 # TODO The years scale doesn't always use the roundest numbers; it should
 # probably use a special scale.
-# TODO Add more comments.
 # TODO Add tests.
 # TODO There used to be a TODO: restore memoization.  So.... do that?
 # TODO Instead of a get_ticks() method, there used to be an auto_ticks()

        # Catchall for large timescales.
        new AdaptiveScale([1, 2, 5], 10, ONE_YEAR, Infinity),
      ])

  class BasicTickFormatter
    constructor: (@precision='auto', @use_scientific=true, @power_limit_high=5, @power_limit_low=-3) ->


      return clamp(interval, @min_interval, @max_interval)

  # A MonthsScale produces ticks from a fixed subset of months of the year.
  # E.g., MonthsScale([0, 3, 6, 9]) produces ticks of the 1st of January,
  # April, July, and October of each year.
  class MonthsScale extends SingleIntervalScale
    constructor: (@months) ->
      @typical_interval = if @months.length > 1
