code: def _check_ising_quadratic_ranges(quad_ranges, graph):
          
          if quad_ranges is None:
              quad_ranges = {}
  
          # first just populate the top level so we can rely on the structure
          for u in graph:
              if u not in quad_ranges:
                  quad_ranges[u] = {}
  
          # next let's propgate and check what is already present
          for u, neighbors in iteritems(quad_ranges):
              for v, rang in iteritems(neighbors):
                  # check the range
                  rang = Specification._check_range(rang)
  
                  if u in quad_ranges[v]:
                      # it's symmetric
                      if quad_ranges[u][v] != quad_ranges[v][u]:
                          raise ValueError("mismatched ranges for ising_quadratic_ranges")
                  quad_ranges[v][u] = quad_ranges[u][v] = rang
  
          # finally fill in the missing stuff
          for u, v in graph.edges:
              if u not in quad_ranges[v]:
                  quad_ranges[u][v] = quad_ranges[v][u] = [-1, 1]
  
          return quad_ranges
docs: check correctness/populate defaults for ising_quadratic_ranges.