fad44bd1f7
format: allow %! specifier for all types
...
If we allow the %! specifier for all types it greatly simplifies
handling of format strings in templated code, or code with non-trivial
typedefs.
2016-09-27 15:23:33 +10:00
ede9b75bad
vector: fix hypot implementation
2016-09-21 22:24:02 +10:00
4544a594c3
vector: add hypot function
...
calculates the root of the sum of the squares. much like std::hypot, but
of arbitrary dimension.
2016-09-21 17:13:25 +10:00
d9713fe8b7
json/tree: fix signed min, unsigned max constraints
...
signed/unsigned casting issues prevented correct comparisons with the
min/max constraints. account for the source type's range before doing the
comparison.
2016-09-20 16:02:08 +10:00
e2b4e48315
test: add matrix/quaternion consistency checks
2016-09-14 17:56:27 +10:00
83484a6ea1
matrix: add look_at and euler tests
2016-09-14 17:56:27 +10:00
c917f264c4
quaternion: fix incorrect factorisation in as_matrix
...
One of the terms in m[0][0] and m[1][1] was incorrectly negated from an
incomplete factorisation when I transcribed the formula.
Also reintroduces the axis-rotation tests which inadvertantly had zero
magnitudes.
2016-09-14 16:49:26 +10:00
45795a1ae0
quaternion: compare test results using sum-of-differences
...
comparison of floating point values is inexact and there isn't an easy
way for providing an ULP delta via the TAP interface. morever, the
general expected error is too large to reliably express in ULPs.
2016-08-15 20:56:10 +10:00
28cd180c44
matrix: add expanded scalar operations
2016-08-15 20:56:10 +10:00
f6ceb5cdee
coord/ops: add element sum overload
2016-08-15 20:56:10 +10:00
1f86925237
matrix: add elementwise sum function overload
2016-08-15 20:56:10 +10:00
b809925396
vector: rename UNIT to ONES
...
unit isn't a normalised vector, so it's misleading to call it a 'unit'
vector
2016-08-15 20:56:10 +10:00
606a9c4eb8
coord/ops: use free functions for normalisations
2016-08-11 14:58:46 +10:00
974998cc48
quaternion: update to use coord framework
2016-08-10 17:42:52 +10:00
de48f75e96
format: fix transcription of zero values to strings
...
an iteration condition terminated the write when a value was zero rather
than when all numerals were written. instead, iterate over the remaining
numerals.
fixes printf("%zu", 0u)
2016-08-10 17:38:39 +10:00
c26c687912
format: set ostream precision as if for strings
...
ostream conversions are converted to strings anyway, so we should treat
them as such earlier in the process.
2016-07-28 16:13:23 +10:00
fad8181842
format: allow undersize integers for conversion
2016-07-28 16:13:23 +10:00
a40e09ed97
format: write c_str as %s by default, support c_str as %p
2016-07-28 14:18:47 +10:00
70170f4205
alloc/arena: disallow implicit copy constructor in test obj
...
fixes a build warning under clang
2016-07-28 13:39:27 +10:00
8cc4c1e82a
format: reimplement format rendering
...
requires literal string arrays, and implements more of the specifier
specification. does not implement 'n' or '$' specifiers. falls back to
snprintf for real arguments.
2016-07-28 13:39:27 +10:00
f9fb0873d3
build: tidy system headers
2016-07-28 13:39:27 +10:00
f793175fdf
json/schema: add 'integer' type support
2016-07-04 15:46:01 +10:00
2e700e6444
rand: add mwc64x generator
2016-06-30 18:20:57 +10:00
3b82757e5c
test/random: use a constant seed
2016-06-30 15:26:45 +10:00
642317f6a4
json: use templated iterator for parsing from views
2016-06-28 14:16:28 +10:00
a87e03de34
hash: move tests to hash directory
2016-06-24 13:08:19 +10:00
350dd96b2d
alloc: add base and offset methods
2016-06-22 19:51:18 +10:00
08536765b6
Merge branch 'crypto'
2016-06-20 18:08:46 +10:00
8d191fb2e1
hash/keccak: add initial sha3 base
2016-06-20 18:05:30 +10:00
a0d02c2fdb
crypto/ice: add implementation of ICE
2016-06-20 18:04:41 +10:00
8333cad8cc
WIP checksum test api
2016-06-20 16:53:56 +10:00
4b01f999c4
version: add comparator tests
2016-06-20 13:08:36 +10:00
f88958d17d
WIP checksum namespacing
2016-06-17 15:57:36 +10:00
c3e2e1ae44
exe: add trivial test case
2016-05-13 15:23:05 +10:00
950c5ba0d4
ip: avoid temporary in test
2016-05-12 18:00:12 +10:00
829bdc2767
m/b/paged: annotate segv trigger for asan's benefit
2016-05-12 17:59:33 +10:00
e7c547f764
tuple: note why RTTI test was skipped
2016-05-12 17:59:08 +10:00
27b1bfc1ce
hmac: print test number in logs
2016-05-12 17:58:52 +10:00
420e4215ef
backtrace: test doesn't actually require output
2016-05-12 17:44:44 +10:00
8142944139
json: store numbers natively as uint/sint/real
...
allows more accurate representations and better error checking.
2016-05-12 17:41:31 +10:00
e17158b0bb
build: add forgotten cxx headers
...
discovered testing clang 3.8 under freebsd
2016-05-12 17:31:33 +10:00
b814c83e21
test/json: run tests through a line wine/crlf wrapper
...
unit tests rely on AWKs record seperator being LF which presents issues
when running windows tests. rather than modify the tap-driver provided
by autotools (which would be extremely annoying to maintain) we run all
tests through wine-crlf.sh which will perform line ending transforms as
required.
it's a pretty braindead script, so don't do anything terrifically
extreme under it.
2016-04-27 17:13:36 +10:00
df9d0ce432
format: add invalid_specifier exception
2016-04-27 16:12:24 +10:00
9bbcfa6e63
make header paths more explicit
2016-04-05 11:06:35 +10:00
eacd2f6072
string: allow cstring tokenisers
2016-03-18 11:08:12 +11:00
6a1ea8ff29
string: add tokeniser
2016-03-17 18:14:40 +11:00
28d44593d8
view: add make_view, ref-qualifiers, comparators
2016-03-17 18:14:40 +11:00
f13c4487c6
cmdopt: add positional argument support
2016-03-15 13:56:13 +11:00
9e9477858b
coord: add trivial operation tests
2016-03-14 22:32:52 +11:00
a59844be98
don't pull in namespace std
2016-03-11 13:28:56 +11:00
379e652e83
build: update for standalone pkgconfig deployment
2016-02-24 11:55:08 +11:00
817eb50efc
image: move buffer into image directory
2016-02-19 13:56:12 +11:00
bbc06efa24
alloc/dynamic: add virtual allocator interface
2016-02-10 14:05:09 +11:00
d81b9f12fd
pool: rename remain as size for consistency
2016-02-04 12:41:23 +11:00
5a3165d233
roots/bisection: add bisection root finder
2016-02-03 13:57:18 +11:00
c8afad1e5b
rand/lcg: add naive LCG RNG
2016-02-03 12:13:03 +11:00
9248c2f379
format: test invalid specifier with unused specifier
...
we are using '!' as a specifier now, so don't test invalid specifiers
with this value...
2016-02-03 12:02:56 +11:00
f6fa44f54f
random: rename test from rand to random
2016-02-02 11:32:04 +11:00
0fd72f0893
format: test case whitespace
2016-01-20 16:39:20 +11:00
c877192cfc
format: add test case for char[]
2016-01-20 16:38:54 +11:00
d9a0649acb
test: convert remaining tests to TAP
2016-01-19 18:31:49 +11:00
d232f1c871
alloc: rename 'size' to 'used'
2015-11-30 16:08:07 +11:00
ffe219748a
alloc/arena: add simple test cases
2015-11-24 16:52:47 +11:00
4556745d77
memory/deleter: add trivial test case
2015-11-19 16:46:44 +11:00
99d025af4d
strongdef: actually use tagging for disambiguation...
2015-11-19 15:06:52 +11:00
38678cc78e
strongdef: add specialisation of numeric_limits
2015-11-18 14:46:43 +11:00
4599b11197
strongdef: add trivial instantiation test
2015-11-18 14:44:08 +11:00
791f8b2bcd
maths: remove rootsquare, use std::hypot instead
2015-11-16 13:18:29 +11:00
b1bc54ac8c
maths: move remaining operations into util namespace
2015-11-16 11:44:07 +11:00
1ec9582240
alloc: add initial allocator stubs
2015-11-13 17:18:10 +11:00
7b083df977
maths: tighten up type requirements for almost_equal
...
almost_equal only operates on two reals, or two integers (and even then
only on the same signedness).
2015-11-13 17:18:10 +11:00
32ca27abdf
memory: add paged and circular buffers
2015-11-11 16:56:35 +11:00
a73fb9307c
matrix: extract size dependant operations
2015-11-04 23:23:46 +11:00
176b33604b
matrix: parameterise on dimension
2015-10-30 23:40:13 +11:00
fe7e3e9c6f
test/maths: remove debug print statement
2015-10-29 18:23:07 +11:00
003685ce2b
image: templatise on component count
2015-10-20 16:54:15 +11:00
c2770a266b
maths: split normalise functions
2015-10-20 16:54:15 +11:00
b5929b7b4a
image: remove access to w/h/s members
2015-10-19 17:43:48 +11:00
20bafa2cfb
geom: move geometry primitives to own namespace
2015-10-13 18:19:47 +11:00
0283c6b0f9
build: disable rtti for release builds
2015-10-08 12:20:56 +11:00
2653a8ecee
maths/fast: remove, it's broken
2015-09-29 17:42:20 +10:00
464c703ffd
extent: add range-for adapter for extent points
2015-09-29 17:32:11 +10:00
b58dd7a880
extent: fix double negative for contraction
2015-09-22 17:23:54 +10:00
37f9390ef8
view: template on arbirtrary iterator types
2015-09-21 15:36:05 +10:00
ec42319224
coord: test for proper packing
2015-09-21 15:27:36 +10:00
9445b29bd3
test/json_types: use new style parse signature
2015-09-09 18:45:23 +10:00
08b6cbacea
float: lower ULPs threshold for almost_equal
...
we weren't detecting differences with 4 decimal point differences
2015-08-20 15:34:20 +10:00
eb155d5bb0
m/fast: add some fast maths approximations
2015-07-29 16:11:48 +10:00
86b36afc49
image: add simple offset test
2015-07-23 21:19:15 +10:00
785a9e08f6
tap: remove default format strings
2015-07-21 03:17:20 +10:00
3b97f56ead
polynomial: rename solve as roots
2015-07-21 02:59:14 +10:00
74d7f9c717
vector: add {to,from}_euler
2015-07-21 02:56:37 +10:00
7396057508
vector: use TAP in tests
2015-07-21 02:55:11 +10:00
f451e5555e
format: add trivial printf wrapper
2015-07-21 01:37:45 +10:00
abf88710b4
test: use TAP on more tests
2015-07-13 16:30:54 +10:00
8840bae7b0
rational: update with more operators
2015-07-13 16:30:54 +10:00
991558fc7f
build: remove unused options code
2015-07-02 17:25:04 +10:00
536284a56d
cmdopt: add TAP testing
2015-07-02 17:03:56 +10:00
75af292340
cmdopt: transfer test cases from option tests
2015-06-30 22:24:44 +10:00
e8d3cf8eb1
maths: remove deprecated maths objects
2015-06-05 16:07:03 +10:00