units
Use physical dimensions at compile-time or run-time.
Typedefs | Functions
statdim-base-test.cpp File Reference

Test-cases for vnix::units::statdim_base. More...

#include "../vnix/units/statdim-base.hpp"
#include "catch.hpp"
Include dependency graph for statdim-base-test.cpp:

Go to the source code of this file.

Typedefs

using dim = vnix::units::dim
 
template<uint64_t D>
using statdim_base = vnix::units::statdim_base< D >
 
using dyndim_base = vnix::units::dyndim_base
 

Functions

 TEST_CASE ("Check dimension on statdim_base from dim.","[statdim-base]")
 
 TEST_CASE ("Sum & diff require same dimension for statdim.","[statdim-base]")
 
 TEST_CASE ("Prod & quot change dimension for statdim.","[statdim-base]")
 
 TEST_CASE ("Pow and sqrt change dimension for statdim.","[statdim-base]")
 

Detailed Description

Test-cases for vnix::units::statdim_base.

License: BSD three-clause; see LICENSE.

Definition in file statdim-base-test.cpp.

Typedef Documentation

Definition at line 9 of file statdim-base-test.cpp.

Definition at line 11 of file statdim-base-test.cpp.

template<uint64_t D>
using statdim_base = vnix::units::statdim_base<D>

Definition at line 10 of file statdim-base-test.cpp.

Function Documentation

TEST_CASE ( "Check dimension on statdim_base from dim."  ,
""  [statdim-base] 
)

Definition at line 14 of file statdim-base-test.cpp.

14  {
15  dim constexpr d(-1, 1, 0, 0, 0);
16  dim e(1, 0, 0, 0, 0);
17  REQUIRE_NOTHROW(statdim_base<d.encode()>(d));
18  REQUIRE_THROWS(statdim_base<d.encode()>(e));
19 }
Base-type for a dimensioned value whose dimension is specified statically at compile-time by way of a...

Here is the call graph for this function:

TEST_CASE ( "Sum & diff require same dimension for statdim."  ,
""  [statdim-base] 
)

Definition at line 22 of file statdim-base-test.cpp.

22  {
23  dim constexpr d1(-1, 1, 1, 0, 0);
24  dim constexpr d2(+1, 0, 0, 0, 0);
25 
26  statdim_base<d1.encode()> sdb;
27  dyndim_base ddb1(d1), ddb2(d2);
28 
29  REQUIRE_NOTHROW(sdb.sum(sdb));
30  REQUIRE_NOTHROW(sdb.sum(ddb1));
31  REQUIRE_NOTHROW(sdb.diff(sdb));
32  REQUIRE_NOTHROW(sdb.diff(ddb1));
33 
34  REQUIRE(sdb.sum(sdb).d() == d1);
35  REQUIRE(sdb.sum(ddb1).d() == d1);
36  REQUIRE(sdb.diff(sdb).d() == d1);
37  REQUIRE(sdb.diff(ddb1).d() == d1);
38 
39  REQUIRE_THROWS(sdb.sum(ddb2));
40  REQUIRE_THROWS(sdb.diff(ddb2));
41 }
Base-type for a dimensioned value whose dimension is specified, perhaps dynamically at run-time...
Definition: dyndim-base.hpp:24
Base-type for a dimensioned value whose dimension is specified statically at compile-time by way of a...

Here is the call graph for this function:

TEST_CASE ( "Prod & quot change dimension for statdim."  ,
""  [statdim-base] 
)

Definition at line 44 of file statdim-base-test.cpp.

44  {
45  dim constexpr d1(-1, +1, +1, 0, 0);
46  dim constexpr d2(+1, +0, +0, 0, 0);
47  dim constexpr d3(+0, +1, +1, 0, 0);
48  dim constexpr d4(-2, +1, +1, 0, 0);
49  dim constexpr d5(+1, -1, -1, 0, 0);
50 
51  statdim_base<d1.encode()> sdb1;
52  statdim_base<d2.encode()> sdb2;
53  dyndim_base ddb2(d2);
54 
55  REQUIRE(sdb1.prod(sdb2).d() == d3);
56  REQUIRE(sdb1.quot(sdb2).d() == d4);
57  REQUIRE(sdb1.prod(ddb2).d() == d3);
58  REQUIRE(sdb1.quot(ddb2).d() == d4);
59  REQUIRE(sdb1.recip().d() == d5);
60 }
Base-type for a dimensioned value whose dimension is specified, perhaps dynamically at run-time...
Definition: dyndim-base.hpp:24
Base-type for a dimensioned value whose dimension is specified statically at compile-time by way of a...

Here is the call graph for this function:

TEST_CASE ( "Pow and sqrt change dimension for statdim."  ,
""  [statdim-base] 
)

Definition at line 63 of file statdim-base-test.cpp.

63  {
64  dim constexpr d1(-1, +1, +1, 0, 0);
65  dim constexpr d2(-2, +2, +2, 0, 0);
66 
67  statdim_base<d1.encode()> sdb1;
68 
69  REQUIRE(sdb1.pow<2>().d() == d2);
70  REQUIRE(sdb1.pow(2).d() == d2);
71 
72  dim constexpr d3(dim::rat(-1, 2), dim::rat(1, 2), dim::rat(1, 2), 0, 0);
73  REQUIRE(sdb1.sqrt().d() == d3);
74 }
Base-type for a dimensioned value whose dimension is specified statically at compile-time by way of a...
Model of a fixed-precision rational number.
Definition: rational.hpp:27

Here is the call graph for this function: