MCPcopy Create free account
hub / github.com/pybind/pybind11 / TEST_SUBMODULE

Function TEST_SUBMODULE

tests/test_chrono.cpp:32–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30};
31
32TEST_SUBMODULE(chrono, m) {
33 using system_time = std::chrono::system_clock::time_point;
34 using steady_time = std::chrono::steady_clock::time_point;
35
36 using timespan = std::chrono::duration<int64_t, std::nano>;
37 using timestamp = std::chrono::time_point<std::chrono::system_clock, timespan>;
38
39 // test_chrono_system_clock
40 // Return the current time off the wall clock
41 m.def("test_chrono1", []() { return std::chrono::system_clock::now(); });
42
43 // test_chrono_system_clock_roundtrip
44 // Round trip the passed in system clock time
45 m.def("test_chrono2", [](system_time t) { return t; });
46
47 // test_chrono_duration_roundtrip
48 // Round trip the passed in duration
49 m.def("test_chrono3", [](std::chrono::system_clock::duration d) { return d; });
50
51 // test_chrono_duration_subtraction_equivalence
52 // Difference between two passed in time_points
53 m.def("test_chrono4", [](system_time a, system_time b) { return a - b; });
54
55 // test_chrono_steady_clock
56 // Return the current time off the steady_clock
57 m.def("test_chrono5", []() { return std::chrono::steady_clock::now(); });
58
59 // test_chrono_steady_clock_roundtrip
60 // Round trip a steady clock timepoint
61 m.def("test_chrono6", [](steady_time t) { return t; });
62
63 // test_floating_point_duration
64 // Roundtrip a duration in microseconds from a float argument
65 m.def("test_chrono7", [](std::chrono::microseconds t) { return t; });
66 // Float durations (issue #719)
67 m.def("test_chrono_float_diff",
68 [](std::chrono::duration<float> a, std::chrono::duration<float> b) { return a - b; });
69
70 m.def("test_nano_timepoint",
71 [](timestamp start, timespan delta) -> timestamp { return start + delta; });
72
73 // Test different resolutions
74 py::class_<different_resolutions>(m, "different_resolutions")
75 .def(py::init<>())
76 .def_readwrite("timestamp_h", &different_resolutions::timestamp_h)
77 .def_readwrite("timestamp_m", &different_resolutions::timestamp_m)
78 .def_readwrite("timestamp_s", &different_resolutions::timestamp_s)
79 .def_readwrite("timestamp_ms", &different_resolutions::timestamp_ms)
80 .def_readwrite("timestamp_us", &different_resolutions::timestamp_us);
81}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected