示例#1
0
    def test_uses_balance_column(self):
        c_simple = qe.BalanceColumn()
        self.assertTrue(qx.uses_balance_column(c_simple))

        c_simple_not = qe.AccountColumn()
        self.assertFalse(qx.uses_balance_column(c_simple_not))

        c_subexpr = qc.EvalEqual(qe.BalanceColumn(), qc.EvalConstant(2012))
        self.assertTrue(qx.uses_balance_column(c_subexpr))

        c_subexpr_not = qc.EvalEqual(qe.AccountColumn(),
                                     qc.EvalConstant('Assets'))
        self.assertFalse(qx.uses_balance_column(c_subexpr_not))
示例#2
0
 def test_expr_binaryop(self):
     self.assertEqual(
         qc.EvalEqual(qe.DateColumn(),
                      qc.EvalConstant(datetime.date(2014, 1, 1))),
         qc.compile_expression(
             qp.Equal(qp.Column('date'),
                      qp.Constant(datetime.date(2014, 1, 1))),
             qe.TargetsEnvironment()))
示例#3
0
    def test_is_aggregate_derived(self):
        columns, aggregates = qc.get_columns_and_aggregates(
            qc.EvalAnd(
                qc.EvalEqual(qe.PositionColumn(), qc.EvalConstant(42)),
                qc.EvalOr(
                    qc.EvalNot(
                        qc.EvalEqual(
                            qe.DateColumn(),
                            qc.EvalConstant(datetime.date(2014, 1, 1)))),
                    qc.EvalConstant(False))))
        self.assertEqual((2, 0), (len(columns), len(aggregates)))

        columns, aggregates = qc.get_columns_and_aggregates(
            qc.EvalAnd(
                qc.EvalEqual(qe.PositionColumn(), qc.EvalConstant(42)),
                qc.EvalOr(
                    qc.EvalNot(
                        qc.EvalEqual(
                            qe.DateColumn(),
                            qc.EvalConstant(datetime.date(2014, 1, 1)))),
                    # Aggregation node deep in the tree.
                    qe.Sum([qc.EvalConstant(1)]))))
        self.assertEqual((2, 1), (len(columns), len(aggregates)))
示例#4
0
    def test_print_with_filter(self):
        statement = qc.EvalPrint(
            qc.EvalFrom(
                qc.EvalEqual(qe.YearEntryColumn(), qc.EvalConstant(2012)),
                None, None, None))
        oss = io.StringIO()
        qx.execute_print(statement, self.entries, self.options_map, oss)

        self.assertEqualEntries(
            """

          2012-02-02 * "Dinner with Dos"
            Assets:Bank:Checking                                                   102.00 USD
            Expenses:Restaurant                                                   -102.00 USD

        """, oss.getvalue())
示例#5
0
 def test_print_from(self):
     self.assertCompile(
         qc.EvalPrint(
             qc.EvalFrom(
                 qc.EvalEqual(qe.YearEntryColumn(), qc.EvalConstant(2014)),
                 None, None, None)), "PRINT FROM year = 2014;")
示例#6
0
 def test_compile_EvalEqual(self):
     c_equal = qc.EvalEqual(qc.EvalConstant(17), qc.EvalConstant(18))
     self.assertEqual(bool, c_equal.dtype)