Hegel 0.3.5
Property-based testing for C++
Loading...
Searching...
No Matches
strings.h
1#pragma once
2
3#include <cstdint>
4#include <string>
5#include <vector>
6
7#include "hegel/core.h"
8
9namespace hegel::generators {
10
14 struct TextParams {
15 size_t min_size = 0;
16 std::optional<size_t>
18
19 // Character filtering options
20 std::optional<std::string> codec;
21 std::optional<uint32_t> min_codepoint;
22 std::optional<uint32_t> max_codepoint;
23 std::optional<std::vector<std::string>>
25 std::optional<std::vector<std::string>>
27 std::optional<std::string>
29 std::optional<std::string>
31 std::optional<std::string>
33 };
34
42 std::optional<std::string> codec;
43 std::optional<uint32_t> min_codepoint;
44 std::optional<uint32_t> max_codepoint;
45 std::optional<std::vector<std::string>>
47 std::optional<std::vector<std::string>>
49 std::optional<std::string>
51 std::optional<std::string>
53 };
54
58 struct BinaryParams {
59 size_t min_size = 0;
60 std::optional<size_t>
62 };
63
66
73
80
87
115 Generator<std::string> from_regex(const std::string& pattern,
116 bool fullmatch = false);
117
119
120} // namespace hegel::generators
The base class of all generators.
Definition core.h:157
Hegel generators.
Definition core.h:16
Generator< std::string > text(TextParams params={})
Generate random text strings.
Generator< std::string > characters(const CharactersParams &params={})
Generate single-character UTF-8 strings.
Generator< std::vector< uint8_t > > binary(BinaryParams params={})
Generate random binary data (byte sequences).
Generator< std::string > from_regex(const std::string &pattern, bool fullmatch=false)
Generate strings matching a regular expression.
Parameters for binary() generator.
Definition strings.h:58
size_t min_size
Minimum size in bytes.
Definition strings.h:59
std::optional< size_t > max_size
Maximum size in bytes. Default: no limit.
Definition strings.h:61
Parameters for characters() generator.
Definition strings.h:41
std::optional< std::string > include_characters
Always include these characters.
Definition strings.h:50
std::optional< uint32_t > min_codepoint
Minimum Unicode codepoint.
Definition strings.h:43
std::optional< std::vector< std::string > > categories
Whitelist of Unicode categories.
Definition strings.h:46
std::optional< uint32_t > max_codepoint
Maximum Unicode codepoint.
Definition strings.h:44
std::optional< std::string > codec
Restrict to this codec.
Definition strings.h:42
std::optional< std::string > exclude_characters
Always exclude these characters.
Definition strings.h:52
std::optional< std::vector< std::string > > exclude_categories
Blacklist of Unicode categories.
Definition strings.h:48
Parameters for text() generator.
Definition strings.h:14
std::optional< std::string > include_characters
Always include these characters.
Definition strings.h:28
std::optional< std::vector< std::string > > categories
Whitelist of Unicode categories.
Definition strings.h:24
std::optional< std::vector< std::string > > exclude_categories
Blacklist of Unicode categories.
Definition strings.h:26
std::optional< std::string > codec
Restrict to this codec.
Definition strings.h:20
std::optional< uint32_t > max_codepoint
Maximum Unicode codepoint.
Definition strings.h:22
size_t min_size
Minimum string length.
Definition strings.h:15
std::optional< uint32_t > min_codepoint
Minimum Unicode codepoint.
Definition strings.h:21
std::optional< std::string > exclude_characters
Always exclude these characters.
Definition strings.h:30
std::optional< std::string > alphabet
Fixed set of allowed characters.
Definition strings.h:32
std::optional< size_t > max_size
Maximum string length. Default: no limit.
Definition strings.h:17