4 #include <glib/gprintf.h>
9 #include "test-stuff.h"
10 #include <unittest-support.h>
17 gboolean ok, print_ok;
19 gchar *msg =
"[PrintAmountInternal()] Bad numeric from rounding: GNC_ERROR_OVERFLOW.";
20 gchar *log_domain =
"gnc.gui";
21 guint loglevel = G_LOG_LEVEL_WARNING, hdlr;
25 hdlr = g_log_set_handler (log_domain, loglevel,
26 (GLogFunc)test_checked_handler, &check);
27 s = xaccPrintAmount (n, print_info);
28 print_ok = (s && s[0] !=
'\0');
32 ok = xaccParseAmount (s, print_info.monetary, &n_parsed, NULL);
33 g_log_remove_handler (log_domain, hdlr);
36 do_test_args (ok,
"parsing failure", __FILE__, __LINE__,
40 do_test_args (ok,
"not equal", __FILE__, __LINE__,
41 "start: %s, string %s, finish: %s (line %d)",
54 print_info.commodity = NULL;
55 print_info.min_decimal_places = 0;
56 print_info.use_locale = 1;
57 print_info.use_symbol = 0;
59 for (i = 1, fraction = 10; i < 9; i++, fraction *= 10)
63 print_info.use_separators = 1;
64 print_info.monetary = 1;
65 print_info.max_decimal_places = i;
66 print_info.force_fit = 0;
73 "BAD NUMERIC CONVERSION", __FILE__, __LINE__,
78 test_num_print_info (n1, print_info, __LINE__);
80 print_info.monetary = 0;
81 test_num_print_info (n1, print_info, __LINE__);
83 print_info.use_separators = 0;
84 test_num_print_info (n1, print_info, __LINE__);
87 test_num_print_info (n1, print_info, __LINE__);
90 print_info.force_fit = 1;
91 test_num_print_info (n1, print_info, __LINE__);
94 test_num_print_info (n1, print_info, __LINE__);
98 #define IS_VALID_NUM(n,m) \
99 if (gnc_numeric_check(n)) { \
100 do_test_args(gnc_numeric_check(n) == GNC_ERROR_OVERFLOW, \
101 "BAD NUMERIC", __FILE__, __LINE__, \
102 "num: %s (from %s)", \
103 gnc_numeric_to_string(n), \
104 gnc_numeric_to_string(m)); \
113 for (i = 0; i < 50; i++)
133 main (
int argc,
char **argv)
136 print_test_results ();
gboolean gnc_numeric_equal(gnc_numeric a, gnc_numeric b)
utility functions for the GnuCash UI
An exact-rational-number library for gnucash. (to be renamed qofnumeric.h in libqof2) ...
gchar * gnc_numeric_to_string(gnc_numeric n)
gnc_numeric gnc_numeric_convert(gnc_numeric n, gint64 denom, gint how)
gnc_numeric gnc_numeric_mul(gnc_numeric a, gnc_numeric b, gint64 denom, gint how)
GNCNumericErrorCode gnc_numeric_check(gnc_numeric a)