Module clingo.tests.test_symbol

Test clingo's Symbol class.

Classes

class TestSymbol (methodName='runTest')
Expand source code
class TestSymbol(TestCase):
    """
    Tests for the symbol class.
    """

    def test_parse(self):
        """
        Test term parsing.
        """
        self.assertEqual(str(parse_term("p(3)")), "p(3)")
        log = []
        self.assertRaises(
            RuntimeError,
            parse_term,
            "p(1/0)",
            lambda code, message: log.append((code, message)),
        )
        self.assertEqual(len(log), 0)

    def test_str(self):
        """
        Test string representation of symbols.
        """
        self.assertEqual(str(Number(10)), "10")

    def test_repr(self):
        """
        Test representation of symbols.
        """
        self.assertEqual(
            repr(
                Function("test", [Number(10), Infimum, Supremum, String("test")], False)
            ),
            "Function('test', [Number(10), Infimum, Supremum, String('test')], False)",
        )

    def test_cmp(self):
        """
        Test hashing and comparisons.
        """
        self.assertEqual(hash(Number(10)), hash(Number(10)))
        self.assertNotEqual(hash(Number(1)), hash(Number(2)))
        self.assertTrue(Number(10) == Number(10))
        self.assertTrue(Number(1) != Number(2))
        self.assertTrue(Number(1) < Number(2))
        self.assertFalse(Number(2) < Number(1))
        self.assertTrue(Number(2) > Number(1))
        self.assertFalse(Number(1) > Number(2))

    def test_match(self):
        """
        Test symbol matching.
        """
        self.assertTrue(Function("f", [Number(1)]).match("f", 1))
        self.assertFalse(Function("f", [Number(1), Number(2)]).match("f", 1))
        self.assertFalse(Number(1).match("f", 1))

    def test_number(self):
        """
        Test numbers.
        """
        n = Number(1)
        self.assertEqual(n.number, 1)
        self.assertEqual(n.type, SymbolType.Number)

    def test_function(self):
        """
        Test functions.
        """
        f = Function("f", [Number(1)], False)
        self.assertEqual(f.arguments, [Number(1)])
        self.assertFalse(f.positive)
        self.assertTrue(f.negative)
        self.assertEqual(f.name, "f")
        self.assertEqual(f.type, SymbolType.Function)
        self.assertEqual(Tuple_([]).type, SymbolType.Function)

    def test_infsup(self):
        """
        Test infimum and supremum.
        """
        self.assertEqual(Infimum.type, SymbolType.Infimum)
        self.assertEqual(Supremum.type, SymbolType.Supremum)

    def test_string(self):
        """
        Test strings.
        """
        s = String("blub")
        self.assertEqual(s.string, "blub")
        self.assertEqual(s.type, SymbolType.String)

Tests for the symbol class.

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Ancestors

  • unittest.case.TestCase

Methods

def test_cmp(self)
Expand source code
def test_cmp(self):
    """
    Test hashing and comparisons.
    """
    self.assertEqual(hash(Number(10)), hash(Number(10)))
    self.assertNotEqual(hash(Number(1)), hash(Number(2)))
    self.assertTrue(Number(10) == Number(10))
    self.assertTrue(Number(1) != Number(2))
    self.assertTrue(Number(1) < Number(2))
    self.assertFalse(Number(2) < Number(1))
    self.assertTrue(Number(2) > Number(1))
    self.assertFalse(Number(1) > Number(2))

Test hashing and comparisons.

def test_function(self)
Expand source code
def test_function(self):
    """
    Test functions.
    """
    f = Function("f", [Number(1)], False)
    self.assertEqual(f.arguments, [Number(1)])
    self.assertFalse(f.positive)
    self.assertTrue(f.negative)
    self.assertEqual(f.name, "f")
    self.assertEqual(f.type, SymbolType.Function)
    self.assertEqual(Tuple_([]).type, SymbolType.Function)

Test functions.

def test_infsup(self)
Expand source code
def test_infsup(self):
    """
    Test infimum and supremum.
    """
    self.assertEqual(Infimum.type, SymbolType.Infimum)
    self.assertEqual(Supremum.type, SymbolType.Supremum)

Test infimum and supremum.

def test_match(self)
Expand source code
def test_match(self):
    """
    Test symbol matching.
    """
    self.assertTrue(Function("f", [Number(1)]).match("f", 1))
    self.assertFalse(Function("f", [Number(1), Number(2)]).match("f", 1))
    self.assertFalse(Number(1).match("f", 1))

Test symbol matching.

def test_number(self)
Expand source code
def test_number(self):
    """
    Test numbers.
    """
    n = Number(1)
    self.assertEqual(n.number, 1)
    self.assertEqual(n.type, SymbolType.Number)

Test numbers.

def test_parse(self)
Expand source code
def test_parse(self):
    """
    Test term parsing.
    """
    self.assertEqual(str(parse_term("p(3)")), "p(3)")
    log = []
    self.assertRaises(
        RuntimeError,
        parse_term,
        "p(1/0)",
        lambda code, message: log.append((code, message)),
    )
    self.assertEqual(len(log), 0)

Test term parsing.

def test_repr(self)
Expand source code
def test_repr(self):
    """
    Test representation of symbols.
    """
    self.assertEqual(
        repr(
            Function("test", [Number(10), Infimum, Supremum, String("test")], False)
        ),
        "Function('test', [Number(10), Infimum, Supremum, String('test')], False)",
    )

Test representation of symbols.

def test_str(self)
Expand source code
def test_str(self):
    """
    Test string representation of symbols.
    """
    self.assertEqual(str(Number(10)), "10")

Test string representation of symbols.

def test_string(self)
Expand source code
def test_string(self):
    """
    Test strings.
    """
    s = String("blub")
    self.assertEqual(s.string, "blub")
    self.assertEqual(s.type, SymbolType.String)

Test strings.