Commit Graph

671 Commits

Author SHA1 Message Date
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
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