Exemple #1
0
def compareIterables(iter1, iter2):
  """
  Compares two iterables. Considered equal if different lengths
  but one iterable is filled with NaN or None.
  :param Iterable iter1: iterable possibly with None values
  :param Iterable iter2: iterable possibly with None values
  :return: True if equivalent; otherwise false
  """
  def makeList(val):
    result = cell_types.makeIterable(val)
    pruned_result = pruneNulls(result)
    if isinstance(pruned_result, list):
      return pruned_result
    else:
      return [v for v in pruned_result]

  # Make sure the inputs are iterables
  iter1 = makeList(iter1)
  iter2 = makeList(iter2)
  if len(iter1) != len(iter2):
    return False
  pairs = zip(iter1, iter2)
  try:
    if cell_types.isFloats(iter1):
      return all([cell_types.isEquivalentFloats(i1, i2) for i1, i2 in pairs])
  except TypeError as err:
    return False
  return all([i1 == i2 for i1, i2 in pairs])
Exemple #2
0
def compareIterables(iter1, iter2):
  """
  Compares two iterables. Considered equal if different lengths
  but one iterable is filled with NaN or None.
  :param Iterable iter1: iterable possibly with None values
  :param Iterable iter2: iterable possibly with None values
  :return: True if equivalent; otherwise false
  """
  def makeList(val):
    result = cell_types.makeIterable(val)
    pruned_result = pruneNulls(result)
    if isinstance(pruned_result, list):
      return pruned_result
    else:
      return [v for v in pruned_result]

  # Make sure the inputs are iterables
  iter1 = makeList(iter1)
  iter2 = makeList(iter2)
  if len(iter1) != len(iter2):
    return False
  pairs = zip(iter1, iter2)
  try:
    if cell_types.isFloats(iter1):
      return all([cell_types.isEquivalentFloats(i1, i2) for i1, i2 in pairs])
  except TypeError as err:
    return False
  return all([i1 == i2 for i1, i2 in pairs])
 def testIsEquivalentFloats(self):
     self.assertFalse(cell_types.isEquivalentFloats(1, 2))
     self.assertTrue(cell_types.isEquivalentFloats(1.0, 1.0))
     self.assertFalse(cell_types.isEquivalentFloats(1.0, 2.0))
     self.assertTrue(cell_types.isEquivalentFloats(1, 1))
     self.assertFalse(cell_types.isEquivalentFloats(1, 1.0001))
     self.assertFalse(cell_types.isEquivalentFloats(1, np.nan))
     self.assertTrue(cell_types.isEquivalentFloats(np.nan, np.nan))
Exemple #4
0
 def testIsEquivalentFloats(self):
     self.assertFalse(cell_types.isEquivalentFloats(1, 2))
     self.assertTrue(cell_types.isEquivalentFloats(1.0, 1.0))
     self.assertFalse(cell_types.isEquivalentFloats(1.0, 2.0))
     self.assertTrue(cell_types.isEquivalentFloats(1, 1))
     self.assertFalse(cell_types.isEquivalentFloats(1, 1.0001))
     self.assertFalse(cell_types.isEquivalentFloats(1, np.nan))
     self.assertTrue(cell_types.isEquivalentFloats(np.nan, np.nan))