077ecf5682
typeidx: add type tagged namespacing to queries
2019-09-04 08:06:46 +10:00
3866249607
types/description: add underlying_comparator for enum descriptions
2019-08-30 15:30:45 +10:00
fd64ca6bce
region: correct the point-region distance2 calculation
2019-08-30 13:45:08 +10:00
458654c9a3
parse/enum: add lookup-by-function
2019-08-29 13:33:18 +10:00
ad92254554
parse/enum: add support fro enum classes
2019-08-26 12:18:37 +10:00
f551e48ddb
geom/sample/edge: correct the test's include paths
2019-08-20 15:20:49 +10:00
b6d1b74bc4
geom/sample: add edge sampling routines for extent2i
2019-08-20 15:00:26 +10:00
4e7e2c812d
scoped: rename disabling methods for consistency
2019-08-12 12:58:44 +10:00
928cdb4e8b
backtrace: give consistent outputs for backtrace
2019-07-02 16:39:40 +10:00
01094611eb
thread: add minimal thread primitives for win32
...
This allows us to get around the lack of these types under MinGW
2019-06-22 15:46:34 +10:00
f4438831a6
build: update the meson build configuration
2019-06-19 17:28:01 +10:00
f86989bc67
rand/rdrand: add rdrand generator
2019-06-19 12:02:50 +10:00
3a83851e90
rand/system: add system generator for Linux
2019-06-19 12:02:40 +10:00
822243f86d
parse/enum: return a cookie we could use for cleanup on setup
2019-06-01 10:06:15 +10:00
cc7d4eb0a9
parse/enum: allow translation of enum string to integer with typeidx
2019-05-30 12:33:28 +10:00
5e3af7f8fb
parse/enum: add basic typeid enum parsing
2019-05-30 11:54:56 +10:00
41edd3cebe
types/description: add initial enum support
2019-05-30 10:43:28 +10:00
e4ce92454c
parse/value: add bool specialisation
2019-05-30 10:42:25 +10:00
25746b2036
test/introspection: add more templated type_name tests
2019-05-28 13:48:45 +10:00
f3e0744e18
test/pool: make allocation tests more robust against allocator issues
2019-05-24 10:57:35 +10:00
e033cb2e4f
parallel/stack: Add a trivial thread safe stack
2019-05-23 15:21:07 +10:00
4b3e04ccd6
test/pool: spelling
2019-05-23 12:38:49 +10:00
afd601940c
pool: initial attempts at clear
2019-05-23 12:36:52 +10:00
8beada1646
debug: split debug headers into components
2019-05-17 12:26:08 +10:00
6d48e5a8e5
types/description: add arity and alignment variables
2019-05-09 10:32:39 +10:00
654f391cba
string: add upper
comparator
2019-05-02 11:03:22 +10:00
95c5fc5b1d
bitwise: remove tests that perform a full rotate
...
Full rotation is undefined on x86 so it's caught be assertions now.
2019-05-01 13:17:35 +10:00
46c2153434
string: add string_less comparator
2019-05-01 12:39:19 +10:00
174bd62a29
bitwise: add ctz, aka count trailing zeroes
2019-04-24 13:25:44 +10:00
209a6800c4
hash/buzhash: add a trivial buzhash implementation
2019-04-22 13:59:48 +10:00
81715c1602
hash/table: add a trivial table lookup 'hash'
2019-04-22 09:51:04 +10:00
0683f80903
registrar: add skeleton of plugin registry
2019-04-16 11:02:26 +10:00
71c44b3293
introspection: use __FUNCTION__ parsing method for type_name queries
2019-04-16 10:17:53 +10:00
6fba251a38
pool: avoid unsigned/signed type conversion warnings
2019-04-15 10:36:53 +10:00
c718c9bff4
maths/fast: avoid size_t/float precision warnings
2019-04-15 10:36:18 +10:00
70a16c7d47
scoped: add optional reset modifier
2019-04-12 16:40:17 +10:00
9926179e7f
map/fixed: add static sized flat map
2019-03-28 14:28:08 +11:00
9b994b12ae
utf8: workaround gcc8's lack of char8_t
2019-03-26 12:20:40 +11:00
382e093f57
geom/segment: add bresenham iterator
2019-03-22 15:11:01 +11:00
0d9374d3dd
coord/base: add indices
query using supplemental values
2019-03-22 11:54:29 +11:00
39bbaa5a80
geom/segment: add segment/region intersection test
2019-03-21 17:10:52 +11:00
48b04765d7
geom/segment: extract point distance unit test
2019-03-21 16:26:00 +11:00
065daa96c6
strongdef: don't expose the raw data directly
2019-03-20 15:39:24 +11:00
83cd6074b8
parse/time: add consuming and non-consuming parsers
2019-03-19 17:09:03 +11:00
fdcab4eafd
parse/time: add duration parsing
2019-03-19 16:02:39 +11:00
48c4866705
parse: move test binaries into a single directory
2019-03-19 16:01:55 +11:00
e5e47ffb24
parse: move si and value parsing into common namespace
2019-03-19 12:38:22 +11:00
340d873d3a
iterator: move each iterator to their own unit
2019-03-18 16:18:27 +11:00
020d3c0aaf
si: change the SI code to a parser
2019-03-18 14:09:29 +11:00
4d91db760c
iterator: flesh out the iota container
2019-03-18 14:09:29 +11:00
87457c25b7
job/dispatch: avoid system include style in tests for local headers
2019-03-14 17:05:30 +11:00
b1076d07ce
signal: reduce templating complexity
2019-03-13 12:08:57 +11:00
fe031378fe
signal: use more descriptive template parameter names
2019-03-12 15:43:47 +11:00
4a73a3cea7
job/dispatch: add index uniqueness test
2019-03-08 09:42:15 +11:00
976d44b1d9
region: use half-open range for region::step
2019-03-08 09:41:37 +11:00
0d27694a51
coord/comparator: add a trivial ordering comparator
2019-03-08 09:37:48 +11:00
35916e2854
rand/pcg: add pcg_xsh_rr generator
2019-02-21 20:53:58 +11:00
8f88569f61
rand: conform to the std generator concept
2019-02-21 20:53:07 +11:00
2f6c845409
string: fixup tokeniser::contains
2019-02-20 15:51:54 +11:00
2ce92cb2c8
string: add stub 'contains' query
2019-02-20 14:45:57 +11:00
3d8acbf9cc
ascii: fix hex2u08 name in tests
2019-02-09 14:59:42 +11:00
fc252ee209
expected: add trivial expected implementation
2019-02-07 17:12:59 +11:00
5d76fb7792
bitwise: add bitfield tests
2019-02-03 14:03:38 +11:00
41c9b504dc
pool: add 'full' query
2019-01-21 17:13:47 +11:00
c533b4103e
utf8: avoid wraparound warning for view construction
2019-01-18 17:18:31 +11:00
b61d55ee3c
build: satiate clang-tidy somewhat
2019-01-03 15:48:34 +11:00
bce481db0e
buffer: move buffer code out of 'memory' namespace
2018-12-19 20:22:18 +11:00
4e25f6e3e2
alloc: eliminate 'raw' allocator distinction
2018-12-19 17:55:24 +11:00
39ed7b27e8
alloc: remove unused allocators
2018-12-19 17:34:35 +11:00
10d5c141f2
alloc: rationalise the 'arena' allocator
2018-12-19 17:16:57 +11:00
37d68d5586
m/b/simple: add simple buffer implementation
2018-12-17 15:20:55 +11:00
043dd73677
pointer: rename align as align_up, and add align_down
2018-12-17 14:45:54 +11:00
78f746c21e
pool: use std::size_t in preference to unsigned for capacity
2018-12-17 13:01:54 +11:00
825d359b9d
io: test that mapped_file satisfies is_container_v
2018-12-17 12:50:05 +11:00
b4c8190054
array/parray: assert parray is a container
2018-12-17 12:50:05 +11:00
a7786f04b9
array: move sarray and parray into array directory
2018-12-17 12:50:05 +11:00
1bb566fcda
encode/number: add base36 encode
2018-12-16 16:47:08 +11:00
8047bf0f83
encode/number: add number decoding for base36
2018-12-16 16:24:45 +11:00
5fedbdbdfe
parse: change parsing functions to modify the data view
2018-12-16 13:26:48 +11:00
e1e036e776
hton: avoid using type names as variables
2018-12-15 15:38:01 +11:00
1a82e4fe76
build: transition from experimental filesystem
2018-12-05 19:12:03 +11:00
c7cc0dbf4c
random: add a trivial test of the default generator
...
This allows us to ensure some level of coverage using tools like ASan.
2018-11-28 15:24:28 +11:00
38906862a3
test: use local style includes where possible
...
This removes some assumptions that break building the library in
isolation.
2018-11-19 16:45:19 +11:00
f75c8f6c6d
types/tagged: use relative paths for test headers
2018-11-19 16:27:02 +11:00
e26165cea9
algo/search: return the score and the object in minimises
2018-11-19 15:35:56 +11:00
3625a92977
algo: add minimises
linear search
2018-11-14 10:21:51 +11:00
6b00668692
types: add 'tagged' union type
2018-11-13 12:57:19 +11:00
84ef2c1117
tuple/type: add 'nth' accessor for tuples
2018-11-13 12:56:48 +11:00
8c0c374a53
darray: correct the empty condition
2018-11-09 15:01:35 +11:00
26edf25b82
darray: add insert_n overload
2018-11-08 14:11:14 +11:00
79edea8f2d
darray: add a static capacity, dynamic sized array
2018-11-05 21:31:30 +11:00
dca92e2199
preprocessor: use local include directives for TAP header
2018-10-30 22:08:32 +11:00
bfe0a92eec
preprocessor: build the header out of tree
...
This avoids unnecessary rebuilds when we have parallel configurations
being built.
2018-10-30 21:41:15 +11:00
e2eaa1a7af
string: add tests for character_position
2018-10-17 11:48:03 +11:00
98e935d4d7
string: extract tokeniser tests into a function
2018-10-16 18:06:45 +11:00
edc245e2d1
iterator: add dereference_adapter for iterators
2018-10-15 17:15:27 +11:00
0e5a084a9b
iterator: add counting_output_iterator
2018-10-05 14:57:44 +10:00
fdbe909fb8
view: prefer construction using explicit size over pointer arithmetic
...
This simplifies step through debugging on some containers.
2018-10-04 14:52:35 +10:00
483c43c732
algo: remove doubly qualified root namespace
2018-09-21 12:25:02 +10:00
c2f203b5a7
stringid: add query-or-insert indexing operator
2018-09-17 14:50:23 +10:00
6c5a7cc5fa
thread/semaphore: specalise the implementation for win32
2018-08-15 17:00:29 +10:00
9a929353d6
build; account for newlines in win32 tests
2018-08-13 23:29:14 +10:00
75a3572fdd
exe: defend test case against msys2 paths
2018-08-13 16:12:11 +10:00
4fd68aef55
build; remove inadvertently added debug code
2018-08-13 16:03:20 +10:00
ce67836e8e
format: disable hexfloat tests under msys2
...
These conversions appear to be broken under msys2.
2018-08-13 16:02:18 +10:00
b60aaccf6f
build; fix compilation errors under win32
...
win32 builds are still totally unsupported, untested, and functionally
broken.
2018-08-13 14:52:40 +10:00
f6056153e3
rename root namespace from util to cruft
...
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87
relicense under MPL-2.0
2018-08-04 15:14:06 +10:00
3aaddd1d2b
json: move json code to external module
...
This module can now be found at git://git.nerdcruft.net/libcruft-json.git
2018-08-04 15:02:06 +10:00
bcb4d7569f
types/traits: add is_same_basic_type trait
2018-08-01 18:39:01 +10:00
79409eb6fe
avoid push_back in loops
...
Detected by clang-tidy.
2018-07-24 15:49:11 +10:00
799768641f
prefer passing by reference over value
2018-07-24 15:46:28 +10:00
49d39c4ede
json/compare: change to useful exit codes in test suite
2018-07-13 16:08:48 +10:00
33dc5c7053
json/pointer: add a trivial parser for json-pointer
2018-07-13 16:08:24 +10:00
a2e2d59c98
json/schema: add multipleOf test cases
2018-07-12 16:21:56 +10:00
0629ba07cd
json/schema: add exclusiveMin/Max
2018-07-12 16:08:36 +10:00
d48e36ffd5
json/schema: add additionaProperties tests
2018-07-12 15:56:03 +10:00
8c222300ca
json/schema: add pattern_properties and associated tests
2018-07-12 15:10:41 +10:00
85b5853f7f
json/schema: delete intermediate test files
2018-07-12 15:10:04 +10:00
647af5504b
json/schema: reimplement enum support
2018-07-12 13:06:11 +10:00
bb9d390cf4
json/schema: correct the truth data for min/max tests
2018-07-11 19:30:30 +10:00
8ea762bff8
json/schema: add object test cases
2018-07-09 14:13:51 +10:00
04249a8320
json/schema: fall back to identity test for .result.json
...
result.json test cases are only really required when we have default
properties that need to be filled. Fall back to using the input.json
file for other cases.
2018-07-09 14:13:51 +10:00
59f42de23f
json/schema: use symlinks to identical test result files
2018-07-06 14:21:28 +10:00
8e07e8152b
json/schema: rename schema dirs
2018-07-06 13:21:59 +10:00
19fdbaefb7
json/schema: move validation test cases to own directory
2018-07-06 13:19:10 +10:00
195616f563
json/schema: number the test groups for sorting
2018-07-06 12:43:20 +10:00
1658347573
json-schema: add schema test suite
2018-07-05 19:08:58 +10:00
4c0f129a37
json-compare: add a json comparison tool and test suite
2018-07-05 17:46:43 +10:00
94640d00f0
json: rearrange schema test to allow for modified output
...
Schemas can insert default values, so we need to be able to test the
resultant files.
2018-07-05 15:02:14 +10:00
30c35b2101
json: move validation test data to dedicated directory
2018-07-05 15:00:47 +10:00
74568d1c2d
test/json-parse: add json parsing test
2018-07-05 13:45:10 +10:00
0df16bb9ee
strongdef: swap template params, move to dedicated namespace
2018-06-27 17:58:45 +10:00
279af4c796
strongdef: significantly tighten restrictions on usage
...
It turns out that equality in particular was triggering implicit
construction of strongdef types. We make it much harder for these types
to spontaneously emerge.
2018-06-22 17:41:56 +10:00
3722c8aaa3
region: add union operator for region/region
2018-06-14 15:07:25 +10:00
22b25221b2
coord/base: add std::array conversion operator
2018-06-12 10:54:08 +10:00
d70d06468e
tuple/type: add entuple, cat, remove, and unique types
2018-06-06 19:13:17 +10:00
fc58ec8e0f
build: prefer local to system include directives
2018-05-12 14:28:23 +10:00
38e1a19e37
alloc: all allocators should take a type for alloc/dealloc
2018-05-10 13:53:06 +10:00
2620e2ed33
alloc: return views rather than raw pointers
2018-05-10 12:54:45 +10:00
6042d9ab76
geom/ellipse: remove spurious print from test case
2018-05-10 12:54:45 +10:00
ec44c68ce6
view: require fully named types for casting
2018-05-10 12:54:45 +10:00
c33a679e81
geom/ray: make ray intersections more robust
2018-05-04 17:10:51 +10:00
b01173d82b
maths: rename limit to clamp
2018-05-03 21:43:48 +10:00
497d3ca970
build: update for gcc-8.1 warnings
2018-05-03 18:32:08 +10:00
c0af2df2c8
hash/fasthash: print result of each test case
2018-05-03 17:34:19 +10:00
dcf87a7c17
geom/aabb: add ray-aabb distance tests
2018-05-03 17:33:42 +10:00
aab066593b
geom/segment: add trivial segment representation
2018-04-20 15:08:06 +10:00
56a73275c1
geom/line: add basic line class
2018-04-20 15:08:06 +10:00
443112b33c
geom/plane: add trivial plane tests
2018-04-20 15:08:06 +10:00