def testDeleteOne(self): r = pythonSource(lotsOfPythonCode) x = r.pop(1) self.assertEquals(x.value, 'def') r.check() r.pop(6) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check() r.pop(1) r.check()
def testWindowedQuery(self): r = self.sm.windowedQuery(pythonSource(somePythonCodeFromProject)) debug(type(r)) debug(type(r[0])) debug(type(r[0][0])) self.assertLess(r[0][1], 70.0) self.assertGreater(r[0][1], 0.1)
def testDeleteOneTwo(self): r = pythonSource(codeWithDeleteFailure) x = r.pop(2) r.check() r.pop(2) r.check() r.pop(2) r.check()
def testLexExpectedToken(self): r = pythonSource(somePythonCode) self.assertEquals(r[0].end[0], 1) self.assertEquals(r[0].end[1], 5) self.assertEquals(r[0].start[0], 1) self.assertEquals(r[0].start[1], 0) self.assertEquals(r[0].type, 'NAME') self.assertEquals(r[0].value, 'print')
def testLexExpectedFormat(self): r = pythonSource(somePythonCode) self.assertTrue(isinstance(r, ucSource)) self.assertTrue(isinstance(r[0], ucLexeme)) self.assertTrue(isinstance(r[0].end, tuple)) self.assertTrue(isinstance(r[0].end.l, int)) self.assertTrue(isinstance(r[0].end.c, int)) self.assertTrue(isinstance(r[0].start, tuple)) self.assertTrue(isinstance(r[0].start[0], int)) self.assertTrue(isinstance(r[0].start[1], int)) self.assertTrue(isinstance(r[0].type, str)) self.assertTrue(isinstance(r[0].value, str))
def testPopBug(self): # AssertionError: [('OP', '=', (76, 44), (76, 45)), ('NEWLINE', '\n', (76, 3), (76, 4))] r = pythonSource("a=1+2\na") r.pop(4) r.check() r = pythonSource("a=1+2\na") r.pop(5) r.check() r = pythonSource("a=1+2\n\n") r.pop(4) r.check() r = pythonSource("a=1\n\n") r.pop(2) r.check() r = pythonSource("for _ in range(0, x):\n\ta=1\n\n") x = r.pop(14) r.check() self.assertEquals(x.value, '1') r = pythonSource("for _ in range(0, x):\n\ta=1\n\n") x = r.pop(9) r.check() self.assertEquals(x.value, ':')
def testColumns(self): r = pythonSource(lotsOfPythonCode) self.assertEquals(r[1].columns(), 3) # this should be the "def" token self.assertEquals(r[0].lines(), 0)
def testPoppin(self): r = pythonSource("1+2") r.pop(0) r.pop(0) r.pop(0)
def testExclusiveEnd(self): r = pythonSource("1+2") self.assertTrue(r[0].start.c + 1 == r[0].end.c) # First token is r[0] self.assertTrue(r[2].start.c + 1 == r[2].end.c)
def testLexDeLex(self): self.assertEquals(lotsOfPythonCode, (pythonSource(lotsOfPythonCode).deLex())) self.assertEquals(codeWithComments, (pythonSource(codeWithComments).deLex()))
def testLexExpectedLength(self): r = pythonSource(somePythonCode) self.assertEquals(len(r), 9)
def testCorpify(self): sm = sourceModel(cm=mitlmCorpus()) self.assertEquals(sm.corpify(pythonSource(someLexemes)), 'print ( 1 + 2 ** 2 ) <ENDMARKER>')
def testWorst(self): r = self.sm.worstWindows(pythonSource(somePythonCodeFromProject)) for i in range(0, len(r) - 2): self.assertTrue(r[i][1] >= r[i + 1][1])
def testWorst(self): r = self.sm.worstWindows(pythonSource(somePythonCodeFromProject)) for i in range(0, len(r)-2): self.assertGreater(r[i][1], r[i+1][1])
def testStringify1(self): self.assertEquals(str(pythonSource(someLexemes)[0]), 'print') self.assertEquals(str(pythonSource(someLexemes)[8]), '<ENDMARKER>') self.assertEquals(str(pythonLexeme.fromDict(indentLexeme)), '<INDENT>')