aboutsummaryrefslogtreecommitdiffstats
path: root/examples
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 /examples
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.
Diffstat (limited to 'examples')
-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) {