@classmethod
def cmp(cls, value_a, value_b):
    """Return True if 2 values are the same"""
    if type(value_a) is not type(value_b):
        return False
    if isinstance(value_a, (list, tuple)):
        if len(value_a) != len(value_b):
            return False
        for i, a in enumerate(value_a):
            b = value_b[i]
            if not cls.cmp(a, b):
                return False
        return True
    if isinstance(value_a, dict):
        for k, v in value_a.items():
            if not cls.cmp(v, value_b.get(k)):
                return False
        return True
    return value_a == value_b
