Пример #1
0
def haltsOnString(progString, inString):
    # if it doesn't complete before timing out, assume it is in an infinite loop
    val = utils.runWithTimeout(None, universal, progString, inString)
    if val != None:
        return 'yes'
    else:
        return 'no'
Пример #2
0
def numStepsOnString(progString, inString):
    start = time.clock()
    # if it doesn't complete before timing out, assume it is in an infinite loop
    val = utils.runWithTimeout(None, universal, progString, inString)
    elapsed = time.clock() - start
    if val:
        return str(elapsed)
    else:
        return 'no'
Пример #3
0
def testAlterYesToHalt():
    for (progName, inString, solution) in [
        ('containsGAGA.py', 'GAGAGAGAG', 'halted'),
        ('containsGAGA.py', 'TTTTGGCCGGT', None),
    ]:
        combinedString = utils.ESS(rf(progName), inString)
        val = utils.runWithTimeout(None, alterYesToHalt, combinedString)
        utils.tprint((progName, inString), ":", val)
        assert val == solution
def testyesOnPosIntsViaYoS():
    testVals = [
        ('containsGAGA.py', 'no'),
        ('yes.py', None),
    ]
    for (filename, solution) in testVals:
        inString = rf(filename)
        val = utils.runWithTimeout(None, yesOnPosIntsViaYoS, inString)
        utils.tprint(inString, ':', val)
        assert val == solution
Пример #5
0
def testWeirdH():
    msg = 'finished already!'
    testvals = [
        ('factor.py', msg),
        ('multiply.py', msg),
        ('containsGAGA.py', None),
    ]
    for (filename, solution) in testvals:
        val = utils.runWithTimeout(None, weirdH, rf(filename))
        utils.tprint(filename, ':', val)
        assert val == solution
Пример #6
0
def testmaybeLoop():
    testVals = [('', None),
                ('sdfjkhask', None),
                ('secret sauce', 'yes'),
                ('xsecret sauce', 'no'),
                ('xsecret saucex', 'yes'),
                ]
    for (inString, solution) in testVals:
        val = utils.runWithTimeout(None, maybeLoop, inString)
        utils.tprint(inString, ':', val)
        assert val == solution
Пример #7
0
def computesF(progString):
    from F import F
    iters = 100
    for i in range(iters):
        inString = utils.randomAlphanumericString()
        val = utils.runWithTimeout(None, universal, progString, inString)
        if val: # returned a value, so check if it's the correct one
            if val != F(inString):
                return 'no'
        else: # timed out -- assume infinite loop
            return 'no'
    return 'yes'
def testAlterYesToComputesF():
    from F import F
    from G import G  # G is any computable function different to F
    F_input = 'xxxx'
    for (progName, inString,
         solution) in [('containsGAGA.py', 'GAGAGAGAG', F(F_input)),
                       ('containsGAGA.py', 'TTTTGGCCGGT', G(F_input))]:
        utils.writeFile('progString.txt', rf(progName))
        utils.writeFile('inString.txt', inString)
        val = utils.runWithTimeout(None, alterYesToComputesF, F_input)
        utils.tprint((progName, inString), ":", val)
        assert val == solution
Пример #9
0
def testBrokenSort():
    testvals = [
        ('here is no water but only rock', 'but here is no only rock water'),
        ('', ''),
        ('xxxx', 'xxxx'),
        ('apple banana apple',
         None),  # brokenSort enters infinite loop for duplicate values
    ]

    for (inString, solution) in testvals:
        val = utils.runWithTimeout(None, brokenSort, inString)
        utils.tprint(inString, ':', val)
        assert val == solution
Пример #10
0
def testrecognizeEvenLength():
    testVals = [('', 'yes'),
                ('xx', 'yes'),
                ('xxxx', 'yes'),
                (200*'x', 'yes'),
                ('x', None),
                ('xxx', None),
                (201*'x', None),
                ]
    for (inString, solution) in testVals:
        val = utils.runWithTimeout(None, recognizeEvenLength, inString)
        utils.tprint(inString, ':', val)
        assert val == solution
            
Пример #11
0
def testloopIfContainsGAGA():
    haltVal = 'halted'
    loopVal = 'loop'
    testvals = [
        ('', haltVal),
        ('GGGGGGGGACCCCC', haltVal),
        ('GAGA', loopVal),
        ('CCCATTTGAGAGGGGG', loopVal),
    ]
    for (inString, solution) in testvals:
        val = utils.runWithTimeout(None, loopIfContainsGAGA, inString)
        utils.tprint(inString, val)
        if val == None:
            assert solution == loopVal
        else:
            assert val == solution
Пример #12
0
def testLoop():
    inString = 'asdf'
    val = utils.runWithTimeout(None, loop, inString)
Пример #13
0
def testhaltsViaCompletePeano():
    # Since isPeanoProof() and convertHaltToPeano() are not
    # implemented, there is nothing reasonable to assert in this
    # test. We just run the code.
    inString = 'asdf'
    val = utils.runWithTimeout(None, haltsViaCompletePeano, inString)
Пример #14
0
def testinfiniteLoop():
    inString = 'asdf'
    val = utils.runWithTimeout(None, infiniteLoop, inString)
    assert val == None
Пример #15
0
def testSortTimings():
    val = utils.runWithTimeout(None, sortTimings, 5)
    utils.tprint(val)
Пример #16
0
def testGodel():
    # Since provableInPeano() and convertHaltToPeano() are not
    # implemented, there is nothing reasonable to assert in this
    # test. We just run the code.
    inString = 'asdf'
    val = utils.runWithTimeout(None, godel, inString)
Пример #17
0
def testMultiplyTimings():
    val = utils.runWithTimeout(None, multiplyTimings, 5)
    utils.tprint(val)