Scarab  v2.9.1
Project 8 C++ Utility Library
test_chrono.cpp
Go to the documentation of this file.
1 /*
2  tests/test_chrono.cpp -- test conversions to/from std::chrono types
3 
4  Copyright (c) 2016 Trent Houliston <trent@houliston.me> and
5  Wenzel Jakob <wenzel.jakob@epfl.ch>
6 
7  All rights reserved. Use of this source code is governed by a
8  BSD-style license that can be found in the LICENSE file.
9 */
10 
11 #include "pybind11_tests.h"
12 #include <pybind11/chrono.h>
13 
15  using system_time = std::chrono::system_clock::time_point;
16  using steady_time = std::chrono::steady_clock::time_point;
17 
18  using timespan = std::chrono::duration<int64_t, std::nano>;
19  using timestamp = std::chrono::time_point<std::chrono::system_clock, timespan>;
20 
21  // test_chrono_system_clock
22  // Return the current time off the wall clock
23  m.def("test_chrono1", []() { return std::chrono::system_clock::now(); });
24 
25  // test_chrono_system_clock_roundtrip
26  // Round trip the passed in system clock time
27  m.def("test_chrono2", [](system_time t) { return t; });
28 
29  // test_chrono_duration_roundtrip
30  // Round trip the passed in duration
31  m.def("test_chrono3", [](std::chrono::system_clock::duration d) { return d; });
32 
33  // test_chrono_duration_subtraction_equivalence
34  // Difference between two passed in time_points
35  m.def("test_chrono4", [](system_time a, system_time b) { return a - b; });
36 
37  // test_chrono_steady_clock
38  // Return the current time off the steady_clock
39  m.def("test_chrono5", []() { return std::chrono::steady_clock::now(); });
40 
41  // test_chrono_steady_clock_roundtrip
42  // Round trip a steady clock timepoint
43  m.def("test_chrono6", [](steady_time t) { return t; });
44 
45  // test_floating_point_duration
46  // Roundtrip a duration in microseconds from a float argument
47  m.def("test_chrono7", [](std::chrono::microseconds t) { return t; });
48  // Float durations (issue #719)
49  m.def("test_chrono_float_diff", [](std::chrono::duration<float> a, std::chrono::duration<float> b) {
50  return a - b; });
51 
52  m.def("test_nano_timepoint", [](timestamp start, timespan delta) -> timestamp {
53  return start + delta;
54  });
55 }
def d(s)
Definition: mkdoc.py:69
test_initializer chrono("chrono", test_submodule_chrono)
#define TEST_SUBMODULE(name, variable)