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
f31a344912
kmeans: add naive kmeans impl
2018-04-18 21:48:55 +10:00
dcd789a075
geom/ellipse: add naive covering ellipse impl
2018-04-18 21:48:55 +10:00
eb2b85c4f6
point: add query for furthest pair
2018-04-18 21:48:55 +10:00
8a2055abfc
WIP ellipse area
2018-04-17 17:11:41 +10:00
76c809f031
point/vector: homog no longer takes a size parameter
2018-04-17 14:26:23 +10:00
f21297cad5
geom/ellipse: add ray distance tests
2018-04-16 16:00:32 +10:00
1889a76e26
geom/sphere: add glancing ray test
2018-04-16 16:00:32 +10:00
a8b3737b8b
geom/ray: remove constructors so we have a POD
2018-04-16 16:00:32 +10:00
bef0aa4929
sphere: move ray tests into sphere's unit
2018-04-16 16:00:32 +10:00
56fdc7844e
geom/frustum: test projection should use radians
2018-04-11 19:28:18 +10:00
d7b36b0ee3
affine: add perspective matrix test cases
2018-04-11 18:26:30 +10:00
24a530e23e
maths: remove pow2 function
...
pow2 has been used enough times to mean 2^x and x^2 that it's not worth
the ambiguity. just use pow(b,e) directly.
2018-04-09 12:30:22 +10:00
665c8aa49e
tuple/value: add reversing operation
2018-04-05 16:06:09 +10:00
d69a567431
tuple/index: add some index sequence generators and manipulators
2018-04-05 15:18:30 +10:00
5f2b1a5c36
tuple: split tests into separate units
2018-04-05 13:54:42 +10:00
8f2f623520
tuple/value: add zip implementation
2018-04-05 12:23:12 +10:00
de247c7e7b
cpp: add basic C preprocessor emulator
2018-04-01 14:49:10 +10:00
a4634a771b
g/frustum: simplify aabb intersection test
2018-03-28 20:42:43 +11:00
47613c5ec2
string: remove unneeded rval-ref qualifier
2018-03-27 16:21:20 +11:00
473556f9ed
maths/fast: use relatively_equal for tests
2018-03-27 16:15:21 +11:00
1b023f7c8d
iterator: improve reference semantics
2018-03-27 15:49:47 +11:00
93185775e6
coord/simd: template on arity and type
2018-03-23 17:52:08 +11:00