123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*! ========================================================================
- ** Extended Template and Library Test Suite
- ** Clock Test
- **
- ** Copyright (c) 2002 Robert B. Quattlebaum Jr.
- **
- ** This package is free software; you can redistribute it and/or
- ** modify it under the terms of the GNU General Public License as
- ** published by the Free Software Foundation; either version 2 of
- ** the License, or (at your option) any later version.
- **
- ** This package is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- ** General Public License for more details.
- **
- ** === N O T E S ===========================================================
- **
- ** ========================================================================= */
- #include <ETL/clock>
- #include <stdio.h>
- using namespace etl;
- int basic_test(void)
- {
- int ret = 0;
- fprintf(stderr, "default etl::clock precision: %0.8f\n", etl::clock::precision());
- fprintf(stderr, "realtime etl::clock precision: %0.8f\n", etl::clock_realtime::precision());
- fprintf(stderr, "proctime etl::clock precision: %0.8f\n", etl::clock_proctime::precision());
- etl::clock_realtime timer;
- etl::clock::value_type amount, total;
- for (amount = 3.0; amount >= 0.00015; amount /= 2.0) {
- if (amount * 1000000.0 < 1000.0f) {
- fprintf(stderr, "waiting %f microseconds...\n", amount * 1000000.0);
- } else if (amount * 1000.0 < 400.0f) {
- fprintf(stderr, "waiting %f milliseconds...\n", amount * 1000.0);
- } else {
- fprintf(stderr, "waiting %f seconds...\n", amount);
- }
- timer.reset();
- etl::clock::sleep(amount);
- total = timer();
- if ((total - amount) * 1000000.0 < 1000.0f) {
- fprintf(stderr, " ** I waited %f seconds, error of %f microseconds\n", total, (total - amount) * 1000000);
- } else if ((total - amount) * 1000.0 < 400.0f) {
- fprintf(stderr, " ** I waited %f seconds, error of %f milliseconds\n", total, (total - amount) * 1000);
- } else {
- fprintf(stderr, " ** I waited %f seconds, error of %f seconds\n", total, total - amount);
- }
- }
- return ret;
- }
- int main()
- {
- int error = 0;
- error += basic_test();
- return error;
- }
|