aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-06-08 16:39:45 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2011-06-08 16:39:45 -0400
commit7374b7e9e264cd231f1e2bba44e776533938d41a (patch)
treeb8a24ee54eeb4b0a5bc2ed451a5ef297e787464a
parent3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f (diff)
downloadlibrambutan-7374b7e9e264cd231f1e2bba44e776533938d41a.tar.gz
librambutan-7374b7e9e264cd231f1e2bba44e776533938d41a.zip
Update test-print.cpp to exercise new behavior.
Changes make sure that base arithmetic applies correctly for various integral types, and that floating point numbers can be printed at various precisions.
-rw-r--r--examples/test-print.cpp71
1 files changed, 37 insertions, 34 deletions
diff --git a/examples/test-print.cpp b/examples/test-print.cpp
index ff3c219..5477512 100644
--- a/examples/test-print.cpp
+++ b/examples/test-print.cpp
@@ -56,7 +56,7 @@ void loop() {
void test_numbers(void) {
SerialUSB.println("Numeric types:");
- SerialUSB.println("unsigned char: ");
+ SerialUSB.print("unsigned char: ");
// prevent Print from treating it as an (extended) ASCII character:
SerialUSB.println((uint32)numeric_limits<unsigned char>::max());
@@ -83,28 +83,37 @@ void test_numbers(void) {
SerialUSB.println(numeric_limits<unsigned long long>::max());
}
+void base_test(int base) {
+ SerialUSB.print("\tuint8: ");
+ SerialUSB.println(numeric_limits<uint8>::max(), base);
+ SerialUSB.print("\tint: ");
+ SerialUSB.print(numeric_limits<int>::max(), base);
+ SerialUSB.print(", unsigned int: ");
+ SerialUSB.println(numeric_limits<unsigned int>::max(), base);
+ SerialUSB.print("\tlong: ");
+ SerialUSB.print(numeric_limits<long>::max(), base);
+ SerialUSB.print(", unsigned long: ");
+ SerialUSB.println(numeric_limits<unsigned long>::max(), base);
+ SerialUSB.print("\tlong long: ");
+ SerialUSB.print(numeric_limits<long long>::max(), base);
+ SerialUSB.print(", unsigned long long: ");
+ SerialUSB.println(numeric_limits<unsigned long long>::max(), base);
+}
+
void test_base_arithmetic(void) {
SerialUSB.println("Base arithmetic:");
- SerialUSB.print("Binary: ");
- SerialUSB.print(numeric_limits<unsigned long>::max(), BIN);
- SerialUSB.print(", ");
- SerialUSB.println(numeric_limits<unsigned long long>::max(), BIN);
+ SerialUSB.println("Binary:");
+ base_test(BIN);
- SerialUSB.print("Octal: ");
- SerialUSB.print(numeric_limits<unsigned long>::max(), OCT);
- SerialUSB.print(", ");
- SerialUSB.println(numeric_limits<unsigned long long>::max(), OCT);
+ SerialUSB.println("Octal:");
+ base_test(OCT);
- SerialUSB.print("Decimal: ");
- SerialUSB.print(numeric_limits<unsigned long>::max(), DEC);
- SerialUSB.print(", ");
- SerialUSB.println(numeric_limits<unsigned long long>::max(), DEC);
+ SerialUSB.println("Decimal:");
+ base_test(DEC);
- SerialUSB.print("Hexadecimal: ");
- SerialUSB.print(numeric_limits<unsigned long>::max(), HEX);
- SerialUSB.print(", ");
- SerialUSB.println(numeric_limits<unsigned long long>::max(), HEX);
+ SerialUSB.println("Hexadecimal:");
+ base_test(HEX);
}
void test_floating_point(void) {
@@ -112,30 +121,30 @@ void test_floating_point(void) {
SerialUSB.println("Floating point:");
- SerialUSB.print("sizeof double: ");
- SerialUSB.println(sizeof(double));
SerialUSB.print("println(-5.67): ");
- SerialUSB.println(-5.67);
+ SerialUSB.print(-5.67);
+ SerialUSB.print(". println(5.67, 5): ");
+ SerialUSB.println(5.67, 5);
SerialUSB.print("println((double)(LLONG_MAX - 10)): ");
- SerialUSB.println((double)(numeric_limits<long long>::max() - 10));
- SerialUSB.print("println((double)(LLONG_MAX - 10)) from snprintf(): ");
+ SerialUSB.print((double)(numeric_limits<long long>::max() - 10));
+ SerialUSB.print("; from snprintf(): ");
snprintf(buf, BUF_SIZE, "%.2f",
(double)(numeric_limits<long long>::max() - 10));
SerialUSB.println(buf);
SerialUSB.print("println((double)LLONG_MAX / 2): ");
- SerialUSB.println((double)(numeric_limits<long long>::max()) / 2);
- SerialUSB.print("println((double)LLONG_MAX / 2) from snprintf(): ");
+ SerialUSB.print((double)(numeric_limits<long long>::max()) / 2);
+ SerialUSB.print("; from snprintf(): ");
snprintf(buf, BUF_SIZE, "%.2f",
(double)(numeric_limits<long long>::max()) / 2);
SerialUSB.println(buf);
SerialUSB.print("DBL_MAX: ");
- SerialUSB.println(dmax);
- SerialUSB.print("DBL_MAX from snprintf(): ");
+ SerialUSB.print(dmax);
+ SerialUSB.print("; from snprintf(): ");
snprintf(buf, BUF_SIZE, "%g", dmax);
SerialUSB.println(buf);
SerialUSB.print("-DBL_MAX / 2: ");
- SerialUSB.println(-dmax / 2.0);
- SerialUSB.print("-DBL_MAX / 2 from snprintf(): ");
+ SerialUSB.print(-dmax / 2.0);
+ SerialUSB.print("; from snprintf(): ");
snprintf(buf, BUF_SIZE, "%g", -dmax / 2.0);
SerialUSB.println(buf);
SerialUSB.print("Double epsilon, round error: ");
@@ -147,16 +156,10 @@ void test_floating_point(void) {
float fmax = numeric_limits<float>::max();
- SerialUSB.print("sizeof float: ");
- SerialUSB.println(sizeof(float));
SerialUSB.print("println(-5.67f): ");
SerialUSB.println(-5.67f);
SerialUSB.print("Float max: ");
SerialUSB.println(fmax);
- SerialUSB.print("Float epsilon, round error: ");
- SerialUSB.print(numeric_limits<float>::epsilon());
- SerialUSB.print(", ");
- SerialUSB.println(numeric_limits<float>::round_error());
}
void print_separator(void) {