예제 #1
0
 def test_circuit_editing(self):
     self.csv_cell.inputs['index_col'] << None
     c1 = QuCell('Quantum::PyCell::Custom::Column')
     c1.inputs['columns'] << 'year'
     c2 = QuCell('Quantum::PyCell::Custom::Eq')
     c2.inputs['b'] << 2
     c = QuCircuit()
     c.insert(self.csv_cell)
     c.insert(c1)
     c.insert(c2)
     c.connect(self.csv_cell, 'dataframe', c1, 'data')
     c.connect(c1, 'data', c2, 'a')
     s = QuScheduler(c)
     s.execute(1)
     out = c2.outputs['result'].value
     self.assertTrue(isinstance(out.df, pd.Series))
     c.remove(c2)
     c3 = QuCell('Quantum::PyCell::Custom::Eq')
     c3.inputs['b'] << 1
     c.insert(c3)
     c.connect(c1, 'data', c3, 'a')
     s2 = QuScheduler(c)
     s2.execute(1)
     out = c3.outputs['result'].value
     self.assertTrue(isinstance(out.df, pd.Series))
class Test_UtilityCells(unittest.TestCase):
    def setUp(self):
        self.sleeper = utility_cell.Sleep()
        self.sleeper_cell = QuCell("Quantum::PyCell::Custom::Sleep")
        self.starter_cell = QuCell("Quantum::PyCell::Custom::Start")
        self.starter_cell.process()
        self.tester = QuCircuit()
        self.tester.insert(self.sleeper_cell)
        self.tester.insert(self.starter_cell)
        self.tester.connect(self.starter_cell, '>>', self.sleeper_cell, '>>')

    def test_sleep(self):
        self.sleeper.inputs['seconds'] = 1
        self.sleeper.process()
        self.assertTrue(self.sleeper.outputs['done'])

    def test_sleep_cell(self):
        self.sleeper_cell.inputs['seconds'] << 1
        self.sleeper_cell.process()
        result = []
        self.sleeper_cell.outputs['done'] >> result
        self.assertTrue(result[-1])

    def test_starter_cell(self):
        result = self.starter_cell.process()
        self.assertEqual(result, QuReturnCode('OK').returncode)
예제 #3
0
 def setUp(self):
     self.iffer = logic_cell.If()
     self.iffer_cell = QuCell("Quantum::PyCell::Custom::If")
     self.starter_cell = QuCell("Quantum::PyCell::Custom::Start")
     self.starter_cell.process()
     self.tester = QuCircuit()
     self.tester.insert(self.iffer_cell)
     self.tester.insert(self.starter_cell)
     self.tester.connect(self.starter_cell, '>>', self.iffer_cell, '>>')
예제 #4
0
 def setUp(self):
     self.col = projection_cell.AstColumn()
     self.col_cell = QuCell("Quantum::PyCell::Custom::AstColumn")
     self.starter_cell = QuCell("Quantum::PyCell::Custom::Start")
     self.starter_cell.process()
     self.tester = QuCircuit()
     self.tester.insert(self.col_cell)
     self.tester.insert(self.starter_cell)
     self.tester.connect(self.starter_cell, '>>', self.col_cell, '>>')
 def setUp(self):
     self.sleeper = utility_cell.Sleep()
     self.sleeper_cell = QuCell("Quantum::PyCell::Custom::Sleep")
     self.starter_cell = QuCell("Quantum::PyCell::Custom::Start")
     self.starter_cell.process()
     self.tester = QuCircuit()
     self.tester.insert(self.sleeper_cell)
     self.tester.insert(self.starter_cell)
     self.tester.connect(self.starter_cell, '>>', self.sleeper_cell, '>>')
예제 #6
0
class Test_AstColumnCells(unittest.TestCase):
    def setUp(self):
        self.col = projection_cell.AstColumn()
        self.col_cell = QuCell("Quantum::PyCell::Custom::AstColumn")
        self.starter_cell = QuCell("Quantum::PyCell::Custom::Start")
        self.starter_cell.process()
        self.tester = QuCircuit()
        self.tester.insert(self.col_cell)
        self.tester.insert(self.starter_cell)
        self.tester.connect(self.starter_cell, '>>', self.col_cell, '>>')

    def test_astcolumn(self):
        self.col.inputs['f(t)'] = '2*t'
        self.col.inputs['t'] = [1, 2]
        self.col.process()
        self.assertTrue(self.col.outputs['ans'] == [2, 4])

    def test_astcolumn_cell(self):
        self.col_cell.inputs['f(t)'] << '2**t'
        self.col_cell.inputs['t'] << [1, 2, 3]
        self.col_cell.process()
        result = []
        self.col_cell.outputs['ans'] >> result
        self.assertTrue(result[-1], [2, 4, 16])
예제 #7
0
    def test_tail_cell(self):
        tail = QuCell('Quantum::PyCell::Custom::Tail')
        c = QuCircuit()
        c.insert(tail)
        c.insert(self.csv_cell)
        c.connect(self.csv_cell, 'dataframe', tail, 'data')
        s = QuScheduler(c)
        s.execute(1)
        # test default value
        self.assertEqual(len(tail.outputs['dataframe'].value.df), 5)

        # test using a value other than default
        tail.inputs['n'] << 10
        s.execute(1)
        self.assertEqual(len(tail.outputs['dataframe'].value.df), 10)

        # test using non-number input
        tail.inputs['n'] << 'a'
        s.execute(1)
        self.assertEqual(len(tail.outputs['dataframe'].value.df), 5)
예제 #8
0
    def test_head_cell(self):
        head = QuCell('Quantum::PyCell::Custom::Head')
        c = QuCircuit()
        c.insert(head)
        c.insert(self.csv_cell)
        c.connect(self.csv_cell, 'dataframe', head, 'data')
        s = QuScheduler(c)
        s.execute(1)
        # test default value
        self.assertEqual(len(head.outputs['dataframe'].value.df), 5)

        # test using a value other than default
        head.inputs['n'] << 10
        s.execute(1)
        self.assertEqual(len(head.outputs['dataframe'].value.df), 10)

        # test using non-number input
        head.inputs['n'] << 'a'
        s.execute(1)
        self.assertEqual(len(head.outputs['dataframe'].value.df), 5)
예제 #9
0
class Test_LogicCells(unittest.TestCase):
    def setUp(self):
        self.iffer = logic_cell.If()
        self.iffer_cell = QuCell("Quantum::PyCell::Custom::If")
        self.starter_cell = QuCell("Quantum::PyCell::Custom::Start")
        self.starter_cell.process()
        self.tester = QuCircuit()
        self.tester.insert(self.iffer_cell)
        self.tester.insert(self.starter_cell)
        self.tester.connect(self.starter_cell, '>>', self.iffer_cell, '>>')

    def test_if(self):
        self.iffer.inputs['condition'] = True
        self.iffer.process()
        self.assertEqual(self.iffer.outflows['true >>'], QuReturnCode('OK'))
        self.assertEqual(self.iffer.outflows['false >>'],
                         QuReturnCode('UNKNOWN'))

        self.iffer.inputs['condition'] = False
        self.iffer.process()
        self.assertEqual(self.iffer.outflows['false >>'], QuReturnCode('OK'))
        self.assertEqual(self.iffer.outflows['true >>'],
                         QuReturnCode('UNKNOWN'))

    def test_if_cell(self):
        self.iffer_cell.inputs['condition'] << False
        self.iffer_cell.process()
        result = []
        self.iffer_cell.outputs['true >>'] >> result
        self.assertEqual(result[-1], QuReturnCode('UNKNOWN'))
        self.iffer_cell.outputs['false >>'] >> result
        self.assertEqual(result[-1], QuReturnCode('OK'))

        self.iffer_cell.inputs['condition'] << True
        self.iffer_cell.process()
        self.iffer_cell.outputs['true >>'] >> result
        self.assertEqual(result[-1], QuReturnCode('OK'))
        self.iffer_cell.outputs['false >>'] >> result
        self.assertEqual(result[-1], QuReturnCode('UNKNOWN'))
예제 #10
0
class Test_DataFrameCells(unittest.TestCase):
    def setUp(self):
        self.csv = 'titles.csv'
        self.csv_cell = QuCell('Quantum::PyCell::Custom::Read_CSV')
        self.csv_cell.inputs['csv'] << self.csv

    def test_read_csv_cell(self):
        self.csv_cell.process(0)
        self.assertTrue(
            isinstance(self.csv_cell.outputs['dataframe'].value.df,
                       pd.DataFrame))

    def test_circuit_editing(self):
        self.csv_cell.inputs['index_col'] << None
        c1 = QuCell('Quantum::PyCell::Custom::Column')
        c1.inputs['columns'] << 'year'
        c2 = QuCell('Quantum::PyCell::Custom::Eq')
        c2.inputs['b'] << 2
        c = QuCircuit()
        c.insert(self.csv_cell)
        c.insert(c1)
        c.insert(c2)
        c.connect(self.csv_cell, 'dataframe', c1, 'data')
        c.connect(c1, 'data', c2, 'a')
        s = QuScheduler(c)
        s.execute(1)
        out = c2.outputs['result'].value
        self.assertTrue(isinstance(out.df, pd.Series))
        c.remove(c2)
        c3 = QuCell('Quantum::PyCell::Custom::Eq')
        c3.inputs['b'] << 1
        c.insert(c3)
        c.connect(c1, 'data', c3, 'a')
        s2 = QuScheduler(c)
        s2.execute(1)
        out = c3.outputs['result'].value
        self.assertTrue(isinstance(out.df, pd.Series))

    def test_head_cell(self):
        head = QuCell('Quantum::PyCell::Custom::Head')
        c = QuCircuit()
        c.insert(head)
        c.insert(self.csv_cell)
        c.connect(self.csv_cell, 'dataframe', head, 'data')
        s = QuScheduler(c)
        s.execute(1)
        # test default value
        self.assertEqual(len(head.outputs['dataframe'].value.df), 5)

        # test using a value other than default
        head.inputs['n'] << 10
        s.execute(1)
        self.assertEqual(len(head.outputs['dataframe'].value.df), 10)

        # test using non-number input
        head.inputs['n'] << 'a'
        s.execute(1)
        self.assertEqual(len(head.outputs['dataframe'].value.df), 5)

    def test_tail_cell(self):
        tail = QuCell('Quantum::PyCell::Custom::Tail')
        c = QuCircuit()
        c.insert(tail)
        c.insert(self.csv_cell)
        c.connect(self.csv_cell, 'dataframe', tail, 'data')
        s = QuScheduler(c)
        s.execute(1)
        # test default value
        self.assertEqual(len(tail.outputs['dataframe'].value.df), 5)

        # test using a value other than default
        tail.inputs['n'] << 10
        s.execute(1)
        self.assertEqual(len(tail.outputs['dataframe'].value.df), 10)

        # test using non-number input
        tail.inputs['n'] << 'a'
        s.execute(1)
        self.assertEqual(len(tail.outputs['dataframe'].value.df), 5)
예제 #11
0
 def setUp(self):
     self.csv = 'titles.csv'
     self.csv_cell = QuCell('Quantum::PyCell::Custom::Read_CSV')
     self.csv_cell.inputs['csv'] << self.csv