Ejemplo n.º 1
0
def testhaltsViaPeano():
    # Since trueInPeano() is an oracle function that could never be
    # implemented, there is nothing reasonable to assert in this
    # test. We just run the code.
    inString = 'asdf'
    val = haltsViaPeano(inString)
    utils.tprint(inString, ':', val)
Ejemplo n.º 2
0
def testTspDirK():
    testvals = [
        (';1', 'no'),
        ('a,a,3;1', 3),
        ('a,a,3 ; 1 ', 3),
        ('a,a,3;2', 'no'),
        ('a,b,4;1', 'no'),
        ('a,b,4;2', 'no'),
        ('a,b,4;3', 'no'),
        ('a,b,4 b,a,9;1', 13),
        ('a,b,4 b,a,9;2', 13),
        ('a,b,4 b,a,9;3', 'no'),
        ('a,b,4 b,a,9 b,c,6 c,a,10;2', 13),
        ('a,b,4 b,a,9 b,c,6 c,a,10;3', 20),
        ('a,b,4 b,a,9 b,c,6 c,a,1;2', 11),
        ('a,b,4 b,a,9 b,c,6 c,a,10;4', 'no'),
        ('a,b,4 b,a,9 b,c,6 c,a,10 a,c,2 c,b,3;3', 14),
        ('a,b,4 b,a,9 b,c,6 c,a,10 a,c,2 c,b,3;4', 'no'),
    ]
    for (inString, solution) in testvals:
        val = tspDirK(inString)
        utils.tprint(inString.strip(), ':', val)
        if solution == 'no':
            assert val == solution
        else:
            (graphString, K) = inString.split(';')
            graph = Graph(graphString, directed=True)
            K = int(K)
            cycle = Path.fromString(val)
            dist = graph.cycleLength(cycle)
            assert graph.isCycle(cycle)
            assert len(cycle) >= K
            assert dist == solution
Ejemplo n.º 3
0
def testprovableInPeano():
    # isPeanoProof() works only for one particular string ('0=0') in our
    # artificial, skeletal implementation for testing purposes. So we test only that string.
    inString = '0=0'
    val = provableInPeano(inString)
    utils.tprint(inString, ':', val)
    assert val == 'yes'
Ejemplo n.º 4
0
 def train(self, max_iter: int = 200, tol: float = 1e-4, model_path: str = None) -> None:
     loss = np.exp(50)
     Ik   = np.eye(self.k, dtype=np.float32)
     if model_path is not None and os.path.isdir(model_path):
         self.import_embeddings(model_path)
     for it in range(max_iter):
         t1 = time.time()
         loss_old = loss
         loss     = 0
         Vr = self.fie[np.array(self.i_rated), :]
         XX = np.dot(Vr.T, Vr)*self.b + Ik*self.lu
         for i in self.usm:
             if len(self.usm[i]) > 0:
                 Vi = self.fie[np.array(self.usm[i]), :]
                 self.fue[i, :] = np.linalg.solve(np.dot(Vi.T, Vi)*(self.a-self.b)+XX, np.sum(Vi, axis=0)*self.a)
                 loss += 0.5 * self.lu * np.sum(self.fue[i,:]**2)
         Ur = self.fue[np.array(self.u_rated), :]
         XX = np.dot(Ur.T, Ur)*self.b
         for j in self.ism:
             if len(self.ism[j]) > 0:
                 Uj = self.fue[np.array(self.ism[j]), :]
                 B  = np.dot(Uj.T, Uj)*(self.a-self.b) + XX 
                 self.fie[j, :] = np.linalg.solve(B+Ik*self.lv, np.sum(Uj, axis = 0) * self.a)
                 loss += 0.5 * len(self.ism[j])*self.a
                 loss += 0.5 * np.linalg.multi_dot((self.fie[j, :], B, self.fie[j, :]))
                 loss -= np.sum(np.multiply(Uj, self.fie[j, :]))*self.a
                 loss += 0.5 * self.lv * np.sum(self.fie[j, :]**2)
         cond = np.abs(loss_old - loss) / loss_old
         tprint('Iter %3d, loss %.6f, converge %.6f, time %.2fs'%(it, loss, cond, time.time()-t1))
         if cond < tol:
             break
Ejemplo n.º 5
0
def testEmptyOnEmpty():
    testvals = [('containsGAGA.py', 'no'), ('isEmpty.py', 'no'),
                ('onlyZs.py', 'yes')]
    for (progName, solution) in testvals:
        val = emptyOnEmpty(rf(progName))
        utils.tprint(progName, ":", val)
        assert val == solution
Ejemplo n.º 6
0
def testConvertSatTo3Sat():
    s0 = '(x1 OR x2 OR NOT x3 OR NOT x4 OR x5) AND (NOT x1 OR NOT x2 OR x3 OR x4) AND (x4 OR NOT x5)'
    s0soln = '(d1 OR d2 OR x1) AND (NOT d2 OR x2 OR NOT x3) AND (NOT d1 OR NOT x4 OR x5) AND (d3 OR NOT x1 OR NOT x2) AND (NOT d3 OR x3 OR x4) AND (x4 OR NOT x5)'
    s1 = ''
    s1soln = ''
    s2 = 'x1'
    s2soln = '(x1)'
    s3 = 'x1 AND NOT x2'
    s3soln = '(x1) AND (NOT x2)'
    s4 = 'x1 OR NOT x2'
    s4soln = '(x1 OR NOT x2)'

    testvals = [
        (s0, s0soln),
        (s1, s1soln),
        (s2, s2soln),
        (s3, s3soln),
        (s4, s4soln),
    ]

    for (inString, soln) in testvals:
        utils.tprint('**', inString, '**')
        converted = convertSatTo3Sat(inString)
        utils.tprint(converted, '\n\n')
        assert converted == soln
Ejemplo n.º 7
0
def testThreshToOpt():
    global FThresh
    FThresh = minThresh
    inStrings = [\
                 '13 18 16 35 23 19 42 73 4 13 8 22',\
                 '',\
                 '0',\
                 '0 1 2 3',\
                 '4',\
                 '4 4 4',\
                 '7 6 5 4',\
                 '4 5',\
                 '4 5 6',\
                 '5',\
                 '5 6',\
                 '5 6 7',\
                 '105 106 107',\
                 '100 105 106 107',\
                 ]
    upperBound = 100
    for inString in inStrings:
        val = threshToOpt(inString, upperBound)
        utils.tprint('with upper bound', upperBound, ', min of', inString, ':', val)
        nums = [int(x) for x in inString.split()]
        if len(nums)==0 or min(nums) > upperBound:
            solution = 'no'
        else:
            solution = str(min(nums))
        assert val == solution
Ejemplo n.º 8
0
def testConvertDHCtoUHC():
    from uhc import uhc
    from dhc import dhc
    from graph import Path
    instances = [
        '',
        'a,a',
        'a,b',
        'a,b b,a',
        'a,b b,c c,a',
        'a,b b,c a,c',
        'a,b b,c c,d',
        'a,b b,c c,d d,a',
        'a,b b,c c,d a,d',
        'a,b b,c c,d a,d d,b c,a',
    ]
    for instance in instances:
        convertedInstance = convertDHCtoUHC(instance)
        instanceSolution = dhc(instance)
        convertedInstanceSolution = uhc(convertedInstance)
        revertedSolution = revertSolution(convertedInstanceSolution)

        utils.tprint(instance, 'maps to', convertedInstance,\
              ' solutions were: ', instanceSolution, ';', convertedInstanceSolution)
        utils.tprint('revertedSolution', revertedSolution)

        if revertedSolution == 'no':
            assert instanceSolution == 'no'
        else:
            g = Graph(instance, weighted=False)
            path = Path.fromString(revertedSolution)
            # print('g', g, 'path', path)
            assert g.isHamiltonCycle(path) or g.isHamiltonCycle(path.reverse())
Ejemplo n.º 9
0
def testMultiply():
    testVals = [('4 5', 4 * 5), ('100 10000', 100 * 10000),
                ('1024 256', 1024 * 256)]
    for (inString, solution) in testVals:
        val = multiply(inString)
        utils.tprint(inString, val)
        assert int(val) == solution
Ejemplo n.º 10
0
def testHasSameTransitions():
    s1 = '''
q0->q0:f;x,R
q0->q1:abc;x,R
q0->q1:d;x,S
q0->q1:e;y,R
'''

    s2 = '''
q0->q0:!abcde;x,R
q0->q1:ab;x,R
q0->q1:c;x,R
q0->q1:d;x,S
q0->q1:e;y,R
q1->q2:~;R
'''
    testVals = [
        ( rf('containsGAGA.tm'), rf('containsGAGA.tm'), True),
        ( rf('binaryIncrementer.tm'), rf('binaryIncrementer.tm'), True),
        ( s1, s2, True),
        ( s2, s1, False),
    ]
    for (tm1str, tm2str, result) in testVals:
        tm1 = TuringMachine(tm1str)
        tm2 = TuringMachine(tm2str)
        val = tm1.hasSameTransitions(tm2)
        utils.tprint(val, result)
        assert val == result
Ejemplo n.º 11
0
def testhaltsOnString():
    for (progName, inString, solution) in [
            ('loopIfContainsGAGA.py', 'GAGAGAGAG', 'no'), \
            ('loopIfContainsGAGA.py', 'TTTTGGCCGGT', 'yes') ]:
        val = haltsOnString(rf(progName), inString)
        utils.tprint((progName, inString), ":", val)
        assert val == solution
Ejemplo n.º 12
0
def testNdFindNANADivConq():
    testVals = [
        ('1000Ts', 1000 * 'T', 'no'),
        ('1000Ts1GAGA', 1000 * 'T' + 'GAGA', 'yes'),
        ('1millionTs', 1000000 * 'T', 'no'),
        ('1millionTs1GAGA', 1000000 * 'T' + 'GAGA', 'yes'),
        ('10millionTs', 10000000 * 'T', 'no'),
        ('10millionTs1GAGA', 10000000 * 'T' + 'GAGA', 'yes'),
        ('10000CACAs10000TATAs', 10000 * 'CACA' + 10000 * 'TATA', 'yes'),
        ('10000CACAs10000TATAs', 10000 * 'CACA' + 10000 * 'TATA', 'yes'),
        ('10000CACAs10000TATAs', 10000 * 'CACA' + 10000 * 'TATA', 'yes'),
        ('10000CACAs10000TATAs', 10000 * 'CACA' + 10000 * 'TATA', 'yes'),
        ('10000CACAs10000TATAs', 10000 * 'CACA' + 10000 * 'TATA', 'yes'),
    ]
    for (desc, inString, solution) in testVals:
        val = ndFindNANADivConq(inString)
        utils.tprint(desc, ':', val)
        if val == 'no':
            assert val == solution
        else:
            assert val in ['GAGA', 'CACA', 'AAAA', 'TATA']
            assert val in inString
        utils.NonDetSolution.printLock.acquire()
        utils.tprint(desc, ':', val)
        utils.NonDetSolution.printLock.release()
Ejemplo n.º 13
0
 def export_model(self, model_path: str) -> None:
     if os.path.exists(
             model_path
     ) and self.__sess is not None and self.__saver is not None:
         file_path = os.path.join(model_path, 'weights')
         tprint('Saving tensorflow graph to path %s' % (file_path))
         self.__saver.save(self.__sess, file_path)
Ejemplo n.º 14
0
    def evaluate(self):
        """
        + example:
        >> pipeline = Pipeline()
        >> pipeline.prepare_data()
        >> pipeline.build_network()
        >> pipeline.evaluate()
        """
        self.load_model()
        self.network.eval()
        error_count = 0
        psnr_list = []
        for step, (img, target, path) in enumerate(self.dataloader_inference):
            if config.device == "cuda":
                img, target = [item.cuda() for item in (img, target)]

            new_img = self.network(img)

            output_img = new_img.squeeze().permute(1, 2, 0).detach().cpu().numpy()
            plt.imsave(os.path.join(self.config.DATA_ROOT_PATH, "inference_generated", path[0]), output_img)

            if target.shape != new_img.shape:
                error_count += 1
                continue
            psnr_list.append(get_batch_PSNR(target.float(), new_img.float()))

            tprint("Processed %.2f%% samples...\r" % (step / self.dataloader_inference.__len__() * 100), end="")
        print("error: %s" % error_count)
        print("\n")
        return np.mean(psnr_list)
Ejemplo n.º 15
0
 def export_model(self, model_path: str) -> None:
     if os.path.exists(model_path):
         if hasattr(self, 'E'):
             tprint('Saving content projection matrix to %s' %
                    os.path.join(model_path, 'final-E.dat'))
             export_embed_to_file(os.path.join(model_path, 'final-E.dat'),
                                  self.E)
def testConvertPartitionToPacking():
    from packing import packing
    from partition import partition
    instances = [
        '5',
        '5 6',
        '5 6 7',
        '5 6 7 8',
        '',
        '5 7',
        '6 6',
        '6 6 7 7',
        '10 20 30 40 11 21 31 41',
    ]
    for instance in instances:
        convertedInstance = convertPartitionToPacking(instance)
        instanceSolution = partition(instance)
        convertedInstanceSolution = packing(convertedInstance)
        revertedSolution = convertedInstanceSolution
        utils.tprint(instance, 'maps to', convertedInstance,\
              ' solutions were: ', instanceSolution, ';', convertedInstanceSolution)

        if revertedSolution == 'no':
            assert instanceSolution == 'no'
        else:
            total = sum([int(x) for x in instance.split()])
            solutionTotal = sum([int(x) for x in revertedSolution.split()])
            assert solutionTotal * 2 == total
Ejemplo n.º 17
0
 def import_model(self, model_path: str) -> None:
     file_path = os.path.join(model_path, 'weights')
     if os.path.exists(
             model_path
     ) and self.__sess is not None and self.__saver is not None:
         tprint('Restoring tensorflow graph from path %s' % (file_path))
         self.__saver.restore(self.__sess, file_path)
Ejemplo n.º 18
0
    def get_example_keys(self):
        tprint(
            'Converting micrographs to tiles of %d pixels, particle diameter %d pixels ...'
            % (cfg.PICK_WIN, cfg.PART_D_PIXELS))
        micros = self.allmicros.keys()
        # random.shuffle(micros)
        # convert each micro into a set of tiles of cfg.PICK_WIN size
        # the training will run on one tile per record
        keys = []
        for m in micros:
            D = self.allmicros[m]['part_diameter']
            sz, bn = calc_micro_pick_shape(m, D)
            xs, ys = image.tile2D(sz, (cfg.PICK_WIN, ) * 2, 0.0)
            # create keys using tile coordinates
            for x in xs:
                for y in ys:
                    tcoords = self.calc_tile_coords(m, x, y, bn)
                    # see how many particles of each class
                    lens = [len(tcoords[k]) for k in tcoords]
                    if np.sum(np.array(lens)) < 1:
                        # skip empty tile
                        continue
                    else:
                        keys.append('%s:%d,%d' % (m, x, y))

        # shuffle all example records to sit randomly in shards
        random.shuffle(keys)
        return keys
Ejemplo n.º 19
0
def testTwoTDCM():
    for (filename, inString, tapeSoln, outputSoln) in [
        ('containsGAGA.tm', 'CCCCCCCCCAAAAAA', 'no', ''),
        ('containsGAGA.tm', 'CCCGAGACCAAAAAA', 'yes', ''),
        ('loop.tm', 'x', TuringMachine.exceededMaxStepsMsg, ''),
        ('alternating01.tm', '', TuringMachine.exceededMaxStepsMsg,
         '010101010101010101010101'),
        ('unarySequence.tm', '', TuringMachine.exceededMaxStepsMsg,
         '0010110111011110111110111111011111110111111110'),
    ]:
        tm = TwoTDCM(rf(filename), inString)
        try:
            tape = tm.run()
        except utils.WcbcException as e:
            if str(e).startswith(TuringMachine.exceededMaxStepsMsg):
                tape = TuringMachine.exceededMaxStepsMsg
            else:
                raise

        output = tm.getOutput()

        utils.tprint('filename:', filename, 'inString:', inString, 'tape:',
                     tape, 'output:', output)
        assert tape == tapeSoln
        if outputSoln == '':
            assert output == outputSoln
        else:
            assert output.startswith(outputSoln)
Ejemplo n.º 20
0
def testOnlyZs():
    for (inString, solution) in [('', ''), ('aassdc', ''), ('ZZZ', 'ZZZ'),
                                 ('Z', 'Z'),
                                 ('ascZsfaasZZsacscaZZZ', 'ZZZZZZ')]:
        val = onlyZs(inString)
        utils.tprint(inString, ":", val)
        assert val == solution
Ejemplo n.º 21
0
def testRecYesOnString():
    for (progName, inString, solution) in [('containsGAGA.py', 'GAGAGAGAG', 'yes'), \
                                 ('containsGAGA.py', 'TTTTGGCCGGT', 'no') ]:
        combinedString = utils.ESS(rf(progName), inString)
        val = recYesOnString(combinedString)
        utils.tprint( (progName, inString), ":", val )
        assert val == solution
Ejemplo n.º 22
0
    def fit(self, X, y):
        y = y.flatten()
        if len(y) != X.shape[0]:
            raise ValueError('Data has {} samples and {} labels.'.format(
                X.shape[0], len(y)))

        if self.verbose_:
            tprint('Fitting MLP ensemble with {} regressors'.format(
                self.n_regressors_))

        self._create_models(X, y)

        if self.backend_ == 'sklearn':
            [model.fit(X, y) for model in self.models_]

        elif self.backend_ == 'keras':
            [
                model.fit(X,
                          y,
                          batch_size=self.batch_sizes_[model_idx],
                          epochs=self.max_iters_[model_idx],
                          verbose=self.verbose_)
                for model_idx, model in enumerate(self.models_)
            ]

        if self.verbose_:
            tprint('Done fitting MLP ensemble.')

        return self
Ejemplo n.º 23
0
def testPathContains():
    p1 = Path([])
    p2 = Path(['a'])
    p4 = Path(['a', 'b'])
    p6 = Path(['a', 'b', 'c'])
    e5 = Edge(['a123', 'b123'])

    testvals = [
        (p1, 'a', False),
        (p2, 'a', True),
        (p4, 'a', True),
        (p4, 'b', True),
        (p4, 'c', False),
        (e5, 'a123', True),
        (e5, 'b123', True),
        (e5, 'c123', False),
        (p6, 'a', True),
        (p6, 'b', True),
        (p6, 'c', True),
        (p6, 'd', False),
    ]
    for (path, node, solution) in testvals:
        val = (node in path)
        utils.tprint(path, node, ':', val)
        assert val == solution
Ejemplo n.º 24
0
def testGraphCycleLength():
    graphStr = 'a,b,1 b,c,2 c,d,3 d,e,4 e,a,5 c,c,6 z'
    g1 = Graph(graphStr)
    g2 = Graph(graphStr, directed=False)

    testvals = [
        ( (Graph(''), ''), 0),
        ( (Graph('a'), ''), 0),
        ( (Graph('a'), 'a'), 'exception'),
        ( (Graph('a,a,1'), 'a'), 1),
        ( (Graph('a,a,1'), 'a,a'), 'exception'),
        ( (g1, 'a,d'), 'exception'),
        ( (g1, 'a,b'), 'exception'),
        ( (g1, 'c'), 6),
        ( (g1, 'a,b,c,d,e'), 15),
        ( (g2, 'a,b,c,d,e'), 15),
    ]
    for ( args, solution) in testvals:
        g, pathStr = args
        path = Path.fromString(pathStr)
        try:
            val = g.cycleLength(path)
        except utils.WcbcException as e:
            if solution != 'exception':
                raise e
            else:
                val = 'exception'
        utils.tprint(args, ':', val)
        assert val == solution
Ejemplo n.º 25
0
def testGraphIsHamiltonCycle():
    graphStr = 'a,b,1 b,c,2 c,d,3 d,e,4 c,c,6'
    g1 = Graph(graphStr)
    g2 = Graph(graphStr, directed=False)
    g3 = g1.clone(); g3.addEdge(Edge(['e','a']))
    g3b = g1.clone(); g3b.addEdge(Edge(['a','e']))
    g4 = g2.clone(); g4.addEdge(Edge(['a','e']))

    testvals = [
        ( (Graph(''), ''), True),
        ( (Graph('a'), ''), False),
        ( (Graph('a'), 'a'), False),
        ( (Graph('a,a', weighted=False), 'a'), True),
        ( (Graph('a,a,1'), 'a'), True),
        ( (Graph('a,a,1'), 'a,a'), False),
        ( (g1, 'a,b'), False),
        ( (g1, 'a,b,c'), False),
        ( (g2, 'a,b,c'), False),
        ( (g1, 'a,b,c,d,e'), False),
        ( (g2, 'a,b,c,d,e'), False),
        ( (g3, 'a,b,c,d,e'), True),
        ( (g3b, 'a,b,c,d,e'), False),
        ( (g4, 'a,b,c,d,e'), True),
        ( (g3, 'a,b,c,c,d,e'), False),
        ( (g4, 'a,b,c,c,d,e'), False),
    ]
    for ( args, solution) in testvals:
        g, pathStr = args
        path = Path.fromString(pathStr)
        val = g.isHamiltonCycle(path)
        utils.tprint(args, ':', val)
        assert val == solution
Ejemplo n.º 26
0
def testPathStr():
    testvals = [
        ([], ''),
        ([''], 'exception'),
        ('', 'exception'),
        ('asdf', 'exception'),
        ([1,2,3,4], 'exception'),
        (['a1'], 'a1'),
        (['ab1'], 'ab1'),
        (['ab1', 'zxy'], 'ab1,zxy'),
        ('a,b,c'.split(','), 'a,b,c'),
        ('a,b,,c'.split(','), 'exception'),
        ('a1,b1,c1'.split(','), 'a1,b1,c1'),
    ]
    for (nodes, solution) in testvals:
        try:
            p = Path(nodes)
        except utils.WcbcException as e:
            if solution != 'exception':
                raise e
            else:
                val = 'exception, as expected'
        utils.tprint(nodes,':',solution)
        s = str(p)
        if solution != 'exception':
            assert s == solution
Ejemplo n.º 27
0
def testGraphRemoveEdge():
    testvals = [
        ( ('',), Edge(['a','b']), 'exception'),
        ( ('a',), Edge(['a','a']), 'exception'),
        ( ('a,a b', False), Edge(['a','a']), 'a b'),
        ( ('a,a', False), Edge(['a','a']), 'a'),
        ( ('a,b', False), Edge(['a','b']), 'a b'),
        ( ('a,b', False), Edge(['b','a']), 'exception'),
        ( ('b,a,3 a,a,4 a,ccc,5 b,d,6',), Edge(['a','ccc']), 'ccc b,a,3 a,a,4 b,d,6'),
        ( ('b,a,3 a,a,4 a,ccc,5 b,d,6',), Edge(['ccc','a']), 'exception'),
        ( ('b,a,3 a,a,4 a,ccc,5 b,d,6', True, False), Edge(['d','b']), 'd b,a,3 a,a,4 a,ccc,5'),
    ]
    for ( args, edge, solution) in testvals:
        g = Graph(*args)

        try:
            g.removeEdge(edge)
        except utils.WcbcException as e:
            if solution != 'exception':
                raise e
            else:
                g = 'exception'

        solnArgs = list(args)
        solnArgs[0] = solution
        if solution != 'exception':
            solution = Graph(*solnArgs)
        utils.tprint(args, edge, ':', g)
        assert g == solution
Ejemplo n.º 28
0
def testGraphAddEdge():
    testvals = [
        ( ('',), Edge(['a','b']), 'exception'),
        ( ('a',), Edge(['a','a']), 'a,a,1'),
        ( ('a,a b', False), Edge(['b','a']), 'a,a b,a'),
        ( ('a,a', False), Edge(['a','a']), 'exception'),
        ( ('a,b', False), Edge(['a','b']), 'exception'),
        ( ('a,b', False), Edge(['b','a']), 'a,b b,a'),
        ( ('b,a,3 a,a,4 a,ccc,5 b,d,6',), (Edge(['a','ccc']),9), 'exception'),
        ( ('b,a,3 a,a,4 a,ccc,5 b,d,6',), (Edge(['ccc','a']),9), 'ccc,a,9 b,a,3 a,a,4 a,ccc,5 b,d,6'),
        ( ('b,a,3 a,a,4 a,ccc,5 b,d,6', True, False), (Edge(['b','ccc']),9), 'b,ccc,9 b,a,3 a,a,4 a,ccc,5 b,d,6'),
        ( ('b,a,3 a,a,4 z a,ccc,5 b,d,6',), Edge(['z','z']), 'b,a,3 a,a,4 z,z,1 a,ccc,5 b,d,6'),
    ]
    for ( args, edgeArgs, solution) in testvals:
        g = Graph(*args)
        if isinstance(edgeArgs, Edge):
            edgeArgs = tuple(edgeArgs,)

        try:
            g.addEdge(*edgeArgs)
        except utils.WcbcException as e:
            if solution != 'exception':
                raise e
            else:
                g = 'exception'

        solnArgs = list(args)
        solnArgs[0] = solution
        if solution != 'exception':
            solution = Graph(*solnArgs)
        utils.tprint(args, edgeArgs, ':', g)
        assert g == solution
Ejemplo n.º 29
0
def testNeighbors():
    testvals = [
                ( ('',), 'a', 'exception'),
                ( ('a',),'a', []),
                ( ('', False), 'a', 'exception'),
                ( ('', False, False), 'a', 'exception'),
                ( ('a,a', False), 'a', ['a']),
                ( ('a,b', False), 'a', ['b']),
                ( ('a,b', False), 'b', []),
                ( ('b,a,3 a,a,4', True, False), 'a', ['a', 'b']),
                ( ('b,a,3 a,a,4 a,ccc,5 b,d,6 e',), 'e', []),
                ( ('b,a,3 a,a,4 a,ccc,5 b,d,6 e a,d,3',), 'a', ['a', 'ccc', 'd']),
                ( ('b,a,3 a,a,4 a,ccc,5 b,d,6 e a,d,3',), 'b', ['a', 'd']),
    ]
    for ( args, node, solution) in testvals:
        g = Graph(*args)
        try:
            val = g.neighbors(node)
        except utils.WcbcException as e:
            if solution != 'exception':
                raise e
            else:
                val = 'exception'
        utils.tprint(args, node, ':', val)
        if solution != 'exception':
            solution = set(solution)
            val = set(val)
        assert val == solution
Ejemplo n.º 30
0
def testGraphAddNode():
    testvals = [
                ( ('',), 'a', 'a'),
                ( ('a',), 'a', 'exception'),
                ( ('', False), 'a', 'a'),
                ( ('', False, False), 'a', 'a'),
                ( ('a,a', False), 'b', 'a,a b'),
                ( ('a,a', False), 'a', 'exception'),
                ( ('a,b', False), 'a', 'exception'),
                ( ('b,a,3 a,a,4', True, False), 'c', 'a,a,4 b,a,3 c'),
                ( ('b,a,3 a,a,4 a,ccc,5 b,d,6',), 'aaa', 'aaa a,a,4 a,ccc,5 b,a,3 b,d,6'),
                ( ('b,a,3 a,a,4', True, False), 'c', 'a,a,4 a,b,3 c'),
    ]
    for ( args, node, solution) in testvals:
        graphString = args[0]
        try:
            g = Graph(*args)
            g.addNode(node)
        except utils.WcbcException as e:
            if solution != 'exception':
                raise e
            else:
                g = 'exception'
        utils.tprint(args, node, ':', g)
        if solution != 'exception':
            solution = Graph(solution, *args[1:])
        assert g == solution
Ejemplo n.º 31
0
 def __init__(self):
     tprint("HomeState")
     tprint("== Pizaid ==")
     tprint(time.strftime("%H:%M:%S"))
     tprint("\033[3A")
     send_clr()
     send_str("  == Pizaid ==")
     send_newline()
     send_str(time.strftime("%H:%M:%S") + " 30% AC")
Ejemplo n.º 32
0
 def updateDisplay(self):
     tprint("HomeState: update        ")
     tprint(time.strftime("%H:%M:%S"))
     tprint("\033[3A")
     send_newline()
     send_str(time.strftime("%H:%M:%S"))
     return self
Ejemplo n.º 33
0
 def updateDisplay(self):
     tprint("NetworkState: update        ")
     tprint(self.network.get_ipv4() + "        ")
     tprint("\033[3A")
     send_newline()
     send_str(self.network.get_ipv4() + "        ")
     return self
Ejemplo n.º 34
0
 def __init__(self):
     tprint("Battery State        ")
     tprint(" "*30)
     tprint("\033[3A")
     send_clr()
     send_str("Battery State")
     send_newline()
     send_str("100% Ganbaru ZOI")
Ejemplo n.º 35
0
 def __init__(self):
     tprint("Storage State        ")
     tprint(" "*30)
     tprint("\033[3A")
     send_clr()
     send_str("Storage State")
     send_newline()
     send_str("XXX GB / YYY GB")
Ejemplo n.º 36
0
 def __init__(self):
     tprint("Storage Detail        ")
     tprint(" "*30)
     tprint("\033[3A")
     send_clr()
     send_str("Storage Detail")
     send_newline()
     send_str("1:TOSHIBA,Main")
Ejemplo n.º 37
0
 def run(self):
     tprint("start ioserver")
     self.timer.start()
     lcd = self.lcd
     while True:
         c = getch()
         if (c == 'w'):
             lcd.up()
         elif (c == 'a'):
             lcd.left()
         elif (c == 's'):
             lcd.down()
         elif (c == 'd'):
             lcd.right()
         elif (c == ' '):
             lcd.center()
         elif (c == 'u'):
             lcd.updateDisplay()
         elif (c == 'q'):
             self.quit = True
             break
         else:
             tprint("Unknown Command")
Ejemplo n.º 38
0
 def __init__(self):
     tprint("NetworkState        ")
     self.network = get_controllercomm().network()
     tprint(self.network.get_ipv4() + "        ")
     tprint("\033[3A")
     send_clr()
     send_str("Network")
     send_newline()
     send_str(self.network.get_ipv4() + "        ")
Ejemplo n.º 39
0
 def run(self):
     self.ioserver = IOServer()
     self.ioserver.start()
     tprint("Run io and dbus server")
     tprint("Wait to stop ioserver")
     self.ioserver.join()
Ejemplo n.º 40
0
 def up(self):
     tprint("NetworkState: up        ")
     tprint("\033[2A")
     return HomeState()
Ejemplo n.º 41
0
 def down(self):
     tprint("NetworkState: down        ")
     tprint("\033[2A")
     return StorageState()
Ejemplo n.º 42
0
 def up(self):
     tprint("HomeState: up        ")
     tprint(time.strftime("%d/%m/%Y %H:%M:%S"))
     tprint("\033[3A")
     return BatteryState()
Ejemplo n.º 43
0
 def down(self):
     tprint("HomeState: down        ")
     tprint(time.strftime("%d/%m/%Y %H:%M:%S"))
     tprint("\033[3A")
     return NetworkState()
Ejemplo n.º 44
0
def start():
    tprint("Hello Pizaid!")
    tprint("This program is a server to display the status of RaspberryPi.")
    server = create_lcdserver()
    server.run()