def slice_atomic_unit(str)
      label = ''
      str.scan(/_?[^_]+/) do |chunk|
        label << chunk
        unit = create_atomic(label)
        return label, unit if unit
      end
      raise MeasurementError.new("Unit '#{str}' not found")
    end
def slice_atomic_unit(str)
      label = ''
      str.scan(/_?[^_]+/) do |chunk|
        label << chunk
        unit = create_atomic(label)
        return label, unit if unit
      end
      raise MeasurementError.new("Unit '#{str}' not found")
    end
Returns the Unit which matches the str prefix.

 Raises MeasurementError if the unit could not be determined.