While the calculation was already basically under control, I just was not content with the achieved numeric precision -- and the fact that the test case in fact misses the bar, making it difficult do demonstrate that the calculation is not derailed. I just had the gut feeling that it must be somehow possible to achieve an absolute error level, not just a relative error level of 1e-6 Thus I reworked this part into a generic helper function, see #1262 The end result is: * partial failure. we can only ''guarantee'' the relative error margin of 1e-6 * but in most cases not out to the most extreme numbers, the sophisticated solution achieves much better results way below the absolute error level of 1µ-Tick Thus with using rational numbers, we have now a solution that is absolutely precise in the regular case, and gradually introduces errors at the domain bound but with an guaranteed relative error margin of 1e-6 (== Time::SCALE) |
||
|---|---|---|
| .. | ||
| ctrl | ||
| interact | ||
| model | ||
| test | ||
| abstract-tangible-test.cpp | ||
| bus-term-test.cpp | ||
| gen-node-location-query.hpp | ||
| README | ||
| session-structure-mapping-test.cpp | ||
| test-gui-test.cpp | ||
GUI backbone tests The tests in this subtree are a bit special: they cover the generic and backbone internals of the Lumiera GTK GUI. They are linked against the complete GUI-module (gui plugin), and thus may use all related ABIs. Yet these tests are *deliberately* compiled without any GTK, GTKmm or SigC includes. This effectively rules out the use, even indirectly, of any GTK widgets and APIs -- forcing the covered GUI backbone entities to stay clean and generic at API level. This is a decision done on purpose. The concrete GUI framework technology shall be treated as an implementation detail. There is no point in writing tests which click buttons in the GUI -- better delegate any significant logic or functionality to GUI agnostic components. GUI is meant to be a presentation layer and must not develop intelligence on its own.