Chrysalis - Pattern Test Coverage


pattern/
File: pattern/include/arguments/OptionalArgument.h
Date: 2026-08-27 18:35:18
Lines:
9/9
100.0%
Functions:
16/16
100.0%
Branches:
2/2
100.0%
Decisions:
0/0
-%
Calls:
15/15
100.0%

Line Branch Decision Call Exec Source
1 #ifndef CHRYSALIS_OPTIONALARGUMENT_H
2 #define CHRYSALIS_OPTIONALARGUMENT_H
3
4 #include "serialization.h"
5
6 /** @defgroup Arguments Arguments
7 * @{
8 */
9 namespace Chrysalis {
10 template<typename T>
11 class OptionalArgument {
12
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
432 SERIALIZE(argument_)
13 public:
14 explicit OptionalArgument() = default;
15
1/1
✓ Call 0 invoked.
2 explicit OptionalArgument(const T* argument): argument_(argument) {}
16 303 ~OptionalArgument() {
17
2/2
✓ Branch 1 taken 6 times.
✓ Branch 2 taken 156 times.
8/8
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
303 delete argument_;
18 303 }
19 156 [[nodiscard]] bool hasArgument() const {
20
1/1
✓ Call 0 invoked.
156 return argument_;
21 }
22 15 const T* argument() const {
23
1/1
✓ Call 0 invoked.
15 return argument_;
24 }
25 private:
26 const T* argument_;
27 };
28 namespace args {
29 template<typename T>
30 using optional = OptionalArgument<T>;
31 }
32 }
33 /**@}*/
34
35 #endif //CHRYSALIS_OPTIONALARGUMENT_H
36