docs: def check_names_unique(self, ds):
          '''
          Checks the variable names for uniqueness regardless of case.
  
          CF §2.3 names should not be distinguished purely by case, i.e., if case
          is disregarded, no two names should be the same.
  
          :param netCDF4.Dataset ds: An open netCDF dataset
          :rtype: compliance_checker.base.Result
          '''
          fails = []
          total = len(ds.variables)
          names = defaultdict(int)
  
          for k in ds.variables:
              names[k.lower()] += 1
  
          fails = ['Variables are not case sensitive. Duplicate variables named: %s' % k for k, v in names.items() if v > 1]
          return Result(BaseCheck.MEDIUM, (total - len(fails), total), self.section_titles['2.3'], msgs=fails)