def test_digest(self): self.assertEqual(self._get_digest(1), self._get_digest(1)) self.assertEqual( self._get_digest(1, locn=SourceLocation('path', line=2, column=3)), self._get_digest(1, locn=SourceLocation('path', line=2, column=3))) self.assertNotEqual(self._get_digest(1), self._get_digest(2)) self.assertNotEqual( self._get_digest(1, locn=SourceLocation('path', line=2, column=3)), self._get_digest(1, locn=SourceLocation('path', line=200, column=3)))
def _make_body(self, srcfile, first): return [ Number(1.0, locn=SourceLocation(srcfile, line=first + 1, column=1)), Number(2.0, locn=SourceLocation(srcfile, line=first + 1, column=9)), Number(3.0, locn=SourceLocation(srcfile, line=first + 2, column=3)), Number(4.0, locn=SourceLocation(srcfile, line=first + 3, column=1)), ]
def test_equal(self): self.assertEqual(Number(13), Number(13)) self.assertEqual( Number(17, locn=SourceLocation('path', line=2, column=3)), Number(17, locn=SourceLocation('path', line=2, column=3))) # Differ by value self.assertNotEqual(Number(13), Number(27)) # Differ only by source location self.assertNotEqual( Number(23, locn=SourceLocation('path', line=2, column=3)), Number(23, locn=SourceLocation('path', line=2, column=432)))
def test_equal(self): self.assertEqual(String('string'), String('string')) self.assertEqual( String('string', locn=SourceLocation('path', line=2, column=3)), String('string', locn=SourceLocation('path', line=2, column=3))) # Differ by value self.assertNotEqual(String('op1'), String('op2')) self.assertNotEqual(String('string'), String('String')) # Differ only by source location self.assertNotEqual( String('op', locn=SourceLocation('path', line=2, column=3)), String('op', locn=SourceLocation('path', line=2, column=432)))
def test_empty_procedure(self): filename = 'filename' first = 47 locn = SourceLocation(srcfile=filename, line=first, column=7) proc = Procedure([], locn=locn) result = rebase.rebase_source_info(proc) expected_proc = Procedure([], locn=SourceLocation(srcfile=filename, line=0, column=7)) self.assertEqual(result.procedure, expected_proc) self.assertEqual(result.line_base, first)
def test_equal(self): self.assertEqual(Operator('operator'), Operator('operator')) self.assertEqual( Operator('operator', locn=SourceLocation('path', line=2, column=3)), Operator('operator', locn=SourceLocation('path', line=2, column=3))) # Differ by value self.assertNotEqual(Operator('op1'), Operator('op2')) # Differ only by source location self.assertNotEqual( Operator('op', locn=SourceLocation('path', line=2, column=3)), Operator('op', locn=SourceLocation('path', line=2, column=432)))
def test_procedure_with_contents(self): filename = 'filename' first = 16 proc = Procedure(self._make_body(srcfile=filename, first=first), locn=SourceLocation(srcfile=filename, line=first, column=1)) result = rebase.rebase_source_info(proc) expected_proc = Procedure(self._make_body(srcfile=filename, first=0), locn=SourceLocation(srcfile=filename, line=0, column=1)) self.assertEqual(result.procedure, expected_proc) self.assertEqual(result.line_base, first)
def test_digest(self): self.assertEqual(self._get_digest('a'), self._get_digest('a')) self.assertEqual( self._get_digest('a', locn=SourceLocation('path', line=2, column=3)), self._get_digest('a', locn=SourceLocation('path', line=2, column=3))) # Differ by value self.assertNotEqual(self._get_digest('a'), self._get_digest('b')) # Differs only by source location self.assertNotEqual( self._get_digest('a', locn=SourceLocation('path', line=2, column=3)), self._get_digest('a', locn=SourceLocation('path', line=200, column=3)))
def test_equal(self): self.assertEqual(Procedure([]), Procedure([])) self.assertEqual(Procedure([Boolean(True)]), Procedure([Boolean(True)])) self.assertNotEqual(Procedure([Boolean(True)]), Procedure([Boolean(False)])) self.assertNotEqual(Procedure([]), Procedure([Boolean(False)])) self.assertNotEqual( Procedure([]), Procedure([], locn=SourceLocation('path', line=1, column=1)))
def test_digest(self): self.assertEqual(self._get_digest([]), self._get_digest([])) self.assertEqual( self._get_digest([], locn=SourceLocation('path', line=2, column=3)), self._get_digest([], locn=SourceLocation('path', line=2, column=3))) self.assertNotEqual( self._get_digest([]), self._get_digest([], locn=SourceLocation('path', line=2, column=3))) self.assertNotEqual( self._get_digest([], locn=SourceLocation('path', line=2, column=3)), self._get_digest([], locn=SourceLocation('path', line=200, column=3))) self.assertNotEqual(self._get_digest([]), self._get_digest([Boolean(False)])) self.assertNotEqual(self._get_digest([Boolean(True)]), self._get_digest([Boolean(False)]))
def test_procedure_round_trip(self) -> None: Procedure([ Number(value=42.0, locn=SourceLocation(srcfile="foo.toy", line=23, column=29)), Number(value=68.0, locn=SourceLocation(srcfile="foo.toy", line=24, column=31)) ], locn=SourceLocation(srcfile="foo.toy", line=22, column=1)).write(self.__sections) self.__reset() n2 = Instruction.read(self.__sections) self.assertIsInstance(n2, Procedure) expected = [Number(value=42.0), Number(value=68.0)] instructions = n2.instructions() self.assertSequenceEqual(expected, instructions) n2.read_debug(binary=self.__sections[SectionType.debug_line], line_base=0) self.assertEqual(SourceLocation(srcfile="foo.toy", line=23, column=29), instructions[0].locn()) self.assertEqual(SourceLocation(srcfile="foo.toy", line=24, column=31), instructions[1].locn())
def test_number_round_trip(self) -> None: Number(value=42.0, locn=SourceLocation(srcfile="foo.toy", line=23, column=29)).write(self.__sections) self.__reset() n2 = Instruction.read(self.__sections) self.assertIsInstance(n2, Number) self.assertEqual(42.0, n2.value()) self.assertIsNone(n2.locn()) # No debug line information yet. n2.read_debug(binary=self.__sections[SectionType.debug_line], line_base=0) l = n2.locn() self.assertEqual("foo.toy", l.srcfile) self.assertEqual(23, l.line) self.assertEqual(29, l.column)