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)
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 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, '>>')
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])
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)
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)
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'))
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)
def setUp(self): self.csv = 'titles.csv' self.csv_cell = QuCell('Quantum::PyCell::Custom::Read_CSV') self.csv_cell.inputs['csv'] << self.csv