Esempio n. 1
0
    def testParseMultiple(self):
        self.mtd1.addReference(self.inv11)
        self.mtd1.addReference(self.inv12)
        self.mtd2.addReference(self.inv21)
        self.mtd2.addReference(self.inv22)

        rsf = iostr(self.line11 + self.line12 + self.line21 + self.line22)
        self.executeParseTest(rsf)

        # order of input shouldn't matter
        rsf = iostr(self.line12 + self.line11 + self.line22 + self.line21)
        self.executeParseTest(rsf)

        # idem
        rsf = iostr(self.line21 + self.line22 + self.line11 + self.line12)
        self.executeParseTest(rsf)
Esempio n. 2
0
    def testCloneInSelf(self):
        ''' A method where the first half is identical to the second'''
        self.lines1[3] = 'ComInvoke\t223\t11\t178\t10\tUut.a()\tMyTest.testOne()\tMyTest.java\n'
        self.lines1[4] = 'ComInvoke\t225\t11\t180\t11\tUut.b()\tMyTest.testOne()\tMyTest.java\n'
        self.lines1[5] = 'ComInvoke\t227\t11\t182\t13\tUut.c()\tMyTest.testOne()\tMyTest.java\n'
        self.inv1[3] = Reference(223, 10, 178, "Uut.a()")
        self.inv1[4] = Reference(225, 11, 180, "Uut.b()")
        self.inv1[5] = Reference(227, 13, 182, "Uut.c()")

        self.mtd1.addReferences(Sequence(self.inv1[0:6]))
        self.mtd2 = self.mtd1
        self.rsf = iostr("".join(self.lines1[0:6]))

        self.executeCloneTest(Sequence(self.inv1[0:3]), Sequence(self.inv1[3:6]))
Esempio n. 3
0
    def testTripleDuplication(self):
        self.setUpThirdMethod()

        self.rsf = iostr("".join(self.lines1[0:6]) +\
                         "".join(self.lines2[0:6]) +\
                         "".join(self.lines3[0:6]))

        mtds = self.reader.parse(self.rsf)
        cf = CloneFinder(4)
        dupli = cf.investigate(mtds)
        dupli = cf.squashCombinations(dupli)

        self.assertTrue(self.inv1.refStr == self.inv2.refStr == self.inv3.refStr)
        refStr = self.inv1.refStr
        self.assertEquals(1, len(dupli))
        self.assertTrue(refStr in dupli)
        self.assertTrue((self.mtd1, self.inv1.start, self.inv1.end) in dupli[refStr])
        self.assertTrue((self.mtd2, self.inv2.start, self.inv2.end) in dupli[refStr])
        self.assertTrue((self.mtd3, self.inv3.start, self.inv3.end) in dupli[refStr])
Esempio n. 4
0
    def initMthds(self, start1, end1, start2, end2):
        self.mtd1.addReferences(Sequence(self.inv1[start1:end1]))
        self.mtd2.addReferences(Sequence(self.inv2[start2:end2]))

        self.rsf = iostr("".join(self.lines1[start1:end1]) + \
                         "".join(self.lines2[start2:end2]))
Esempio n. 5
0
 def testParse(self):
     rsf = iostr(self.line11 + self.line21)
     self.mtd1.addReference(self.inv11)
     self.mtd2.addReference(self.inv21)
     self.executeParseTest(rsf)