ZeroErr
δΈ/En
Loading...
Searching...
No Matches
in_range.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
zeroerr/domains/domain.h
"
4
#include "
zeroerr/internal/config.h
"
5
6
ZEROERR_SUPPRESS_COMMON_WARNINGS_PUSH
7
8
namespace
zeroerr
{
9
27
template
<
typename
T>
28
class
InRange
:
public
DomainConvertable
<T> {
29
public
:
30
using
ValueType
= T;
31
using
CorpusType
= T;
32
33
ValueType
min
,
max
;
34
35
InRange
(T
min
, T
max
) :
min
(
min
),
max
(
max
) {}
36
37
CorpusType
GetRandomCorpus
(
Rng
& rng)
const override
{
38
ValueType
offsize =
max
-
min
+ 1;
39
ValueType
v = rng.
bounded
(offsize);
40
v =
min
+ v;
41
return
v;
42
}
43
44
void
Mutate
(
Rng
& rng,
CorpusType
& v,
bool
only_shrink)
const override
{
45
CorpusType
offsize =
max
-
min
+ 1;
46
v = rng.
bounded
(offsize);
47
v =
min
+ v;
48
}
49
};
50
51
}
// namespace zeroerr
52
53
ZEROERR_SUPPRESS_COMMON_WARNINGS_POP
zeroerr::DomainConvertable
DomainConvertable is a base class for domains that can be converted to and from a ValueType.
Definition
domain.h:48
zeroerr::InRange
InRange is a domain that generates random values within a specified range.
Definition
in_range.h:28
zeroerr::InRange::max
ValueType max
Definition
in_range.h:33
zeroerr::InRange::InRange
InRange(T min, T max)
Definition
in_range.h:35
zeroerr::InRange::min
ValueType min
Definition
in_range.h:33
zeroerr::InRange::CorpusType
T CorpusType
Definition
in_range.h:31
zeroerr::InRange::GetRandomCorpus
CorpusType GetRandomCorpus(Rng &rng) const override
Definition
in_range.h:37
zeroerr::InRange::ValueType
T ValueType
Definition
in_range.h:30
zeroerr::InRange::Mutate
void Mutate(Rng &rng, CorpusType &v, bool only_shrink) const override
Definition
in_range.h:44
zeroerr::Rng
Definition
rng.h:30
zeroerr::Rng::bounded
uint32_t bounded(uint32_t range) noexcept
Definition
rng.h:126
config.h
ZEROERR_SUPPRESS_COMMON_WARNINGS_POP
#define ZEROERR_SUPPRESS_COMMON_WARNINGS_POP
Definition
config.h:265
ZEROERR_SUPPRESS_COMMON_WARNINGS_PUSH
#define ZEROERR_SUPPRESS_COMMON_WARNINGS_PUSH
Definition
config.h:218
domain.h
zeroerr
Definition
benchmark.cpp:17
include
zeroerr
domains
in_range.h
Generated by
1.9.8