def isCompatible(self, tests):
        """ Given a collection of tests, return false if this test contradicts any of them.
        """
        # print '?', self, tests
        
        for test in tests:
            if self.property == test.property:
                if self.op == '=':
                    if test.op == '=' and self.value != test.value:
                        return False
    
                    if test.op == '!=' and self.value == test.value:
                        return False
    
                    if test.op == '<' and self.value >= test.value:
                        return False
                
                    if test.op == '>' and self.value <= test.value:
                        return False
                
                    if test.op == '<=' and self.value > test.value:
                        return False
                
                    if test.op == '>=' and self.value < test.value:
                        return False
            
                if self.op == '!=':
                    if test.op == '=' and self.value == test.value:
                        return False
    
                    if test.op == '!=':
                        pass
    
                    if test.op == '<':
                        pass
                
                    if test.op == '>':
                        pass
                
                    if test.op == '<=' and self.value == test.value:
                        return False
                
                    if test.op == '>=' and self.value == test.value:
                        return False
            
                if self.op == '<':
                    if test.op == '=' and self.value <= test.value:
                        return False
    
                    if test.op == '!=':
                        return False
    
                    if test.op == '<':
                        pass
                
                    if test.op == '>' and self.value <= test.value:
                        return False
                
                    if test.op == '<=':
                        pass
                
                    if test.op == '>=' and self.value <= test.value:
                        return False
            
                if self.op == '>':
                    if test.op == '=' and self.value >= test.value:
                        return False
    
                    if test.op == '!=':
                        return False
    
                    if test.op == '<' and self.value >= test.value:
                        return False
                
                    if test.op == '>':
                        pass
                
                    if test.op == '<=' and self.value >= test.value:
                        return False
                
                    if test.op == '>=':
                        pass
            
                if self.op == '<=':
                    if test.op == '=' and self.value < test.value:
                        return False
    
                    if test.op == '!=' and self.value == test.value:
                        return False
    
                    if test.op == '<':
                        pass
                
                    if test.op == '>' and self.value <= test.value:
                        return False
                
                    if test.op == '<=':
                        pass
                
                    if test.op == '>=' and self.value < test.value:
                        return False
            
                if self.op == '>=':
                    if test.op == '=' and self.value > test.value:
                        return False
    
                    if test.op == '!=' and self.value == test.value:
                        return False
    
                    if test.op == '<' and self.value >= test.value:
                        return False
                
                    if test.op == '>':
                        pass
                
                    if test.op == '<=' and self.value > test.value:
                        return False
                
                    if test.op == '>=':
                        pass

        return True
def isCompatible ( self , tests ) : for test in tests : if self . property == test . property : if self . op == '=' : if test . op == '=' and self . value != test . value : return False if test . op == '!=' and self . value == test . value : return False if test . op == '<' and self . value >= test . value : return False if test . op == '>' and self . value <= test . value : return False if test . op == '<=' and self . value > test . value : return False if test . op == '>=' and self . value < test . value : return False if self . op == '!=' : if test . op == '=' and self . value == test . value : return False if test . op == '!=' : pass if test . op == '<' : pass if test . op == '>' : pass if test . op == '<=' and self . value == test . value : return False if test . op == '>=' and self . value == test . value : return False if self . op == '<' : if test . op == '=' and self . value <= test . value : return False if test . op == '!=' : return False if test . op == '<' : pass if test . op == '>' and self . value <= test . value : return False if test . op == '<=' : pass if test . op == '>=' and self . value <= test . value : return False if self . op == '>' : if test . op == '=' and self . value >= test . value : return False if test . op == '!=' : return False if test . op == '<' and self . value >= test . value : return False if test . op == '>' : pass if test . op == '<=' and self . value >= test . value : return False if test . op == '>=' : pass if self . op == '<=' : if test . op == '=' and self . value < test . value : return False if test . op == '!=' and self . value == test . value : return False if test . op == '<' : pass if test . op == '>' and self . value <= test . value : return False if test . op == '<=' : pass if test . op == '>=' and self . value < test . value : return False if self . op == '>=' : if test . op == '=' and self . value > test . value : return False if test . op == '!=' and self . value == test . value : return False if test . op == '<' and self . value >= test . value : return False if test . op == '>' : pass if test . op == '<=' and self . value > test . value : return False if test . op == '>=' : pass return True
Given a collection of tests, return false if this test contradicts any of them.