Пример #1
0
static void
test_reduce_different_currency() {
  Expression *two_franc = franc( 2 );
  Expression *one_dollar = dollar( 1 );

  add_rate( CHF, USD, 2 );
  Money *result = reduce( two_franc, USD );
  assert_true( equal( result, money_from( one_dollar ) ) );

  free_expression( two_franc );
  free_expression( one_dollar );
  free_money( result );
  delete_all_rates();
}
static gchar*
make_simple_trans_line (Account *acc, Transaction *trans, Split *split, CsvExportInfo *info)
{
    gboolean t_void = xaccTransGetVoidStatus (trans);

    gchar *result = begin_trans_string (trans, info);
    result = add_account_name (result, acc, NULL, TRUE, info);
    result = add_number (result, trans, info);
    result = add_description (result, trans, info);
    result = add_category (result, split, TRUE, info);
    result = add_reconcile (result, split, info);
    result = add_amount (result, split, t_void, TRUE, TRANS_SIMPLE, info);
    result = add_amount (result, split, t_void, FALSE, TRANS_SIMPLE, info);
    result = add_rate (result, split, t_void, info);
    return result;
}
Пример #3
0
static void
test_mixed_addition() {
  Expression *five_bucks = dollar( 5 );
  Expression *ten_francs = franc( 10 );
  Expression *ten_usd = dollar( 10 );

  add_rate( CHF, USD, 2 );
  Expression *exp = plus( five_bucks, ten_francs );
  Money *result = reduce( exp, USD );
  assert_true( equal( money_from( ten_usd ), result ) );

  free_expression( five_bucks );
  free_expression( ten_francs );
  free_expression( ten_usd );
  free_expression( exp );
  free_money( result );
  delete_all_rates();
}
Пример #4
0
static void
test_multiple_addition() {
  Expression *five_bucks = dollar( 5 );
  Expression *ten_francs = franc( 10 );
  Expression *fifteen_bucks = dollar( 15 );

  add_rate( CHF, USD, 2 );
  Expression *exp1 = plus( five_bucks, ten_francs );
  Expression *exp2 = plus( exp1, five_bucks );
  Money *result = reduce( exp2, USD );
  assert_true( equal( money_from( fifteen_bucks ), result ) );

  free_expression( five_bucks );
  free_expression( ten_francs );
  free_expression( fifteen_bucks );
  free_expression( exp1 );
  free_expression( exp2 );
  free_money( result );
  delete_all_rates();
}