35e3f69ad2
maths, view: rationalise equal,almost_equal,==
...
views should not do elementwise comparisons for equality operators.
they are pairs of iterators and are only equal if their iterators are
equal.
instead, use `equal` for elementwise equality. we update the name of
exactly_equal to perform this operation too.
2018-01-31 19:33:42 +11:00
c4e0cd31f9
string: move tokeniser into the header
...
This allows more varied template parameters to be used.
2018-01-30 12:53:43 +11:00
32a4aa23e5
view: add slicing operation, stolen from python
2018-01-30 12:53:43 +11:00
6f51b82f65
siphash: add initial implementation
2018-01-23 18:57:04 +11:00
bc4a0c3179
xxhash: rewrite for safety and accurate tests
...
there were a few potential buffer overflows, inaccurate test data, and
the 64 bit path wasn't correct.
fixes buffer overflow from clang-analyze
2018-01-23 18:57:04 +11:00
dda3a4a8e7
ascii: add UDL for vector and array conversions
2018-01-23 18:51:37 +11:00
82a8446e10
build: silence various type conversion warnings
2018-01-18 11:56:42 +11:00
d037e71bba
encode/base: correct decode table indexing
2018-01-17 20:10:26 +11:00
c7ce526383
vector: use separate cartesian/spherical tests
...
some tests aren't uniquely invertible, so it's more reliable to use test
data that doesn't suffer from this issue.
2018-01-17 17:45:21 +11:00
a8b4c93ccd
coord: mitigate gcc ICE when using redim
2018-01-17 13:28:44 +11:00
65cea4afd1
point: style
2018-01-16 13:29:58 +11:00
09aa86f55f
crypto: remove cryptography primitives
...
This code can now be found in libcruft-crypto. It was removed to prevent
people relying on it, and to improve test iteration times in unoptimised
builds.
2018-01-14 17:13:21 +11:00
681768093e
hash: use a consistency, less flexible, interface
2018-01-13 15:24:12 +11:00
ad02c94511
view: return unsigned types for size
2018-01-10 18:50:02 +11:00
9bb2bdbaba
Merge remote-tracking branch 'origin/master'
2018-01-10 17:19:39 +11:00
2713da45f4
format: rework parser for currying support
2018-01-09 16:28:46 +11:00
2af828e82d
time: add iso8601 parsing
2018-01-01 15:50:48 +11:00
9fbfba580a
maths: allow digits10 for 64 bit integers
2018-01-01 15:46:29 +11:00
4bd693a799
maths: allow any integral exponent for pow()
2018-01-01 15:45:56 +11:00
27a93c0780
traits: add is_contiguous query for containers
2017-12-28 17:50:37 +11:00
dc51fa2ed0
view: char constructor shouldn't include null characters
2017-12-26 17:34:08 +11:00
e437913746
encode/base: add initial base64 experiments
2017-12-22 12:37:04 +11:00
202c22eee8
view: simplify logical comparator implementation
...
we remove some duplicate and specific logical comparator specialisations
and instead rely on a base view/view comparator implementation by way of
make_view.
2017-12-20 12:31:52 +11:00
b4175e4593
uri: add more data fields
...
we now provide more fine grained field extraction from URIs, focusing
primarily on the utility of URLs.
2017-12-15 18:57:10 +11:00
a8088d03cd
matrix: use vector for the row storage
2017-11-24 17:19:32 +11:00
59240ce83a
matrix: move implementation from ipp to hpp
2017-11-24 17:19:32 +11:00
0351313c36
Merge branch 'master' into coord
2017-11-23 17:24:11 +11:00
d3f434b523
coord: make template parameters more flexible
...
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.
We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.
The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
34788756d2
build: don't use './' as an include prefix
...
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
3ad0339474
WIP vector: spherical/cartesian conversion
2017-11-02 18:11:16 +11:00
28ec0bd48e
maths: add forgotten header to test suite
2017-11-02 18:02:53 +11:00
d8bb00c9c3
endian: add float byteswap specialisation
2017-10-12 17:38:40 +11:00
aff4786409
traits: add bodies to test objects for ODR-used symbols
2017-10-11 17:15:47 +11:00
32f3240186
json2: initial 'jsonish' support
2017-10-05 11:44:37 +11:00
340981dac2
json2: initial import
2017-10-03 17:49:08 +11:00
35db5f0a7a
utf8: add forgotten headers
2017-10-02 15:41:20 +11:00
7ecaaacd93
utf8: add a trivial utf8 decoder
2017-10-02 15:25:59 +11:00
220e499681
view: make equality consistent
2017-09-15 15:22:51 +10:00
cfa272a80a
string: allow tokenisation of c arrays
2017-09-15 15:22:29 +10:00
9c5b471b24
iterator: modify to allow iteration over c arrays
2017-09-15 15:21:25 +10:00
4050754ab4
preprocessor: use a script to create map/reduce
...
We need over 300 arguments for some projects and I'm not going to code
that shit by hand.
2017-09-12 14:17:30 +10:00
8e7f23c4dd
traits: add trivial type_traits tests
2017-09-08 14:20:01 +10:00
0e97044adf
allow/raw: rename base as begin
2017-08-31 13:48:33 +10:00
9d5e599246
alloc: seperate out the raw allocators from the adapters
2017-08-29 16:53:11 +10:00
3799135236
coord: add general vector comparison function
2017-08-27 12:32:00 +10:00
9aa0ba8f55
test: use constexpr for test data where possible
2017-08-27 12:28:56 +10:00
3c9dcba2fb
coord/ops: add rshift coord operation
...
shifts each element to the right `num' places and fills the left space
with a constant or elements from another vector.
2017-08-25 13:05:45 +10:00
e9ef2ae316
sarray: add assignment operator for completeness in test
2017-08-24 17:53:46 +10:00
56444b4a50
geom/aabb: add (minimally) more thorough test data
2017-08-24 17:02:18 +10:00
1cea1600d3
geom/aabb: change contract/expand semantics to mirror region
2017-08-24 17:01:16 +10:00
f77cdabaee
geom/aabb: dont use mutating function naming convention
2017-08-24 16:47:02 +10:00
cd1bb730f2
geom/aabb: rename AABB to aabb
2017-08-24 16:43:54 +10:00
359702fb86
geom/aabb: remove mutating operators
2017-08-24 16:25:57 +10:00
6e32ad84a7
coord: use consistent naming for point coverage tests
...
use inclusive for tests that include all borders, and exclusive for
tests that do not accept the bottom right borders.
2017-08-24 15:56:58 +10:00
efb719b822
coord/base: add indices method
2017-08-24 14:39:54 +10:00
84963aacf8
coord/ops: make 'all' and 'any' constexpr
2017-08-24 14:39:54 +10:00
14718594c9
coord: add tests for vec/num/num overload of util::limit
2017-08-24 12:50:17 +10:00
2576061b26
ray: extract make member function as free function
...
for consistency with other make_foo functions. to be replaced with
deduction guides in the future.
2017-08-22 15:46:49 +10:00
a016e98b12
region: add make_range for regions
...
introduces an object that provides iterators suitable for row-major
scanning of points covering a region object. mostly a wrapper for the
equivalent extent_range.
2017-08-21 18:48:52 +10:00
31d2e6bfd8
region: remove duplicate point/region coverage tests
2017-08-11 15:15:44 +10:00
01f6e5a1e8
region: add make_union function
2017-07-31 15:44:01 +10:00
0016c83dab
coord: add the select function
2017-07-31 15:41:57 +10:00
f39f7d7362
parse: add throwing native type parsers
2017-07-26 15:26:56 +10:00
d29276a427
region: add "has" point query
2017-07-25 17:10:16 +10:00
b18feb8bc4
maths: use bit patterns for tests float values
...
this makes some of the tests more robust in the face of (potentially
stanard breaking) optimisations.
2017-07-25 17:08:52 +10:00
a27869d1c8
region: commenting and style for test cases
2017-07-19 17:19:20 +10:00
3460d5edbe
crypto/salsa: add initial skeleton for salsa20
2017-07-11 16:49:49 +10:00
320fe6c378
job/queue: add trivial job queuing system
2017-07-03 17:05:01 +10:00
96c80ecea5
comparator: add test for self equality failure
2017-06-29 15:27:16 +10:00
6065aa9933
comparator: add comparator for indexed compound types
...
compares each index of the two parameters in sequence, returning true if
the first parameter has the first value that compares less than the
second.
2017-06-19 15:28:10 +10:00
046a369f55
coord: don't use kahan summation for sum(coord)
...
Our kahan summation algorithm has issues with infinities so we just
avoid using it in coordinates where speed and simplicity are more
important.
2017-06-16 17:38:55 +10:00
061088467f
coord: add structured bindings support
2017-06-15 16:32:40 +10:00
ca63485d12
sarray: add a simple static storage/dynamic size array
2017-06-14 17:45:43 +10:00
b15914cf9a
iterator: add make_indices, zip, and izip
2017-06-13 17:01:06 +10:00
2bc7e3e449
point: work around GCC ICE in test case
...
GCC experiences an ICE when comparing the components of a redim'd to
lower dimension point. The test case is too complex to reasonably reduce
and submit for fixing/workaround so we add a bit more explicit work here
for this test case only.
2017-06-13 14:19:27 +10:00
606a46a128
typeidx: add lightweight runtime type id call
2017-05-29 17:21:11 +10:00
da00e77e7e
maths: add signed overloads for renormalise
2017-05-24 15:15:25 +10:00
30fa4a378d
colour: add html-style colour parsing
2017-05-22 16:20:21 +10:00
813600e774
ascii: add hex conversion and unit tests
2017-05-22 16:11:31 +10:00
9471b9eae7
test: ensure all tests return a useful status code
...
These tests were all assumed to execute correctly because CTest is not
capable of parsing the TAP output and instead relies entirely on status
codes.
2017-05-22 13:55:21 +10:00
1ad3e0bde0
algo/sort: add SOA sorting helper
...
sort::soa applies a permutation to multiple value arrays such that the
first value array is sorted
2017-05-18 18:24:48 +10:00
436df2952f
view: add make_view specialisations for std::string
2017-03-17 18:06:02 +11:00
bec24535fc
hash/crc: parameterise crc for reflection, and 64 bits
2017-02-14 19:47:12 +11:00
5a25f07f8e
hash/crc: adapt implementation from png appendix
2017-01-25 16:12:12 +11:00
ca7f4b739a
exe: test image query against argv, not constants
2017-01-25 15:07:14 +11:00
845c8dd14d
cmake: avoid recursive cmake lists for tests
2017-01-25 15:06:47 +11:00
d937bb2ece
backtrace: convert from CRLF terminators to LF
2017-01-23 15:33:47 +11:00
dd23d4a347
build: cmake tests
2017-01-17 19:20:30 +11:00
c0f3983ca8
stream: add minimal scoped flag test case
2017-01-09 15:54:47 +11:00
98dc992473
build: avoid integer length warnings
2017-01-05 19:50:28 +11:00
b770e5f370
fixed: add integer logical operators
2017-01-04 22:38:41 +11:00
2e0fa64494
range: convert static members to constexpr methods
2016-12-21 16:44:48 +11:00
2dcb315ce6
region: prefer constexpr functions over static variables
2016-12-12 17:07:53 +11:00
4bf160934c
vector: prefer constexpr functions over static variables
2016-12-12 17:04:39 +11:00
d2ba672a30
colour: remove static constants
2016-12-12 17:03:36 +11:00
6d079554a6
format: fix escaped percent before value specifier
2016-12-06 13:37:54 +11:00
cb32823248
hash: add xxhash implementation
2016-11-17 18:38:09 +11:00
246357e279
random: remove typed randomisers without generators
2016-11-17 18:38:08 +11:00
a93dd90da9
types: remove elems function, prefer std::size
...
Now that std::size is part of our supported compilers we can remove the
old elems function.
2016-11-17 18:06:39 +11:00
e549f3d554
matrix: move identity and zeroes into constexpr funcs
2016-10-17 22:34:53 +11:00
e96ef7af32
quaternion: move out of coord infrastructure
2016-10-17 22:30:16 +11:00
9cff1e9c85
test/affine: add trivial origin rotation test
2016-10-17 16:51:06 +11:00
1d53c32de0
quaternion: add trivial from_to tests
2016-10-12 23:03:33 +11:00
db076ad6f4
quaternion: update look, from_to, rotate
2016-10-12 23:03:33 +11:00
1af6ed4ca8
matrix: fix look_at multiply ordering
2016-10-12 23:03:33 +11:00
9a798446b5
build: remove unnecessary includes
...
discovered with include-what-you-use
2016-10-12 15:08:22 +11:00
2d31cf9537
matrix: add tranposition test case
2016-10-11 20:57:03 +11:00
3dc31a9d10
alloc/aligned: add allocator with forced alignment
2016-10-10 18:19:09 +11:00
254a63ca90
exe: split into platform units
2016-10-10 16:23:07 +11:00
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
fd319d579b
build: make single argument constructors explicit
2015-06-04 22:18:43 +10:00
9b548e56d9
point: convert distance member functions to functions
2015-06-01 15:29:24 +10:00
3a4fed804a
fasthash: add initial implementation
2015-05-28 12:17:25 +10:00
a61ea32228
murmurhash: add initial translation
2015-05-25 16:12:45 +10:00
054dfa918e
crypto: add XXTEA {en,de}cryption.
2015-05-15 18:27:24 +10:00
7f0c7466e4
crypto: encrypt in-place where it suits
2015-05-15 18:26:45 +10:00
ddaca2f453
XTEA: add extended TEA encryption
2015-05-07 00:18:01 +10:00
dd05d677dd
TEA: use static sized storage for tests
2015-05-07 00:17:20 +10:00
9d3c058873
TEA: add "Tiny Encryption Algorithm"
2015-05-06 23:49:45 +10:00
717644acde
arc4: add initial implementation
2015-05-06 21:38:56 +10:00
70c65c2bb2
introspection: map tuples to themselves in type_tuple
2015-05-01 02:49:19 +10:00
358f2ddb60
tuple: test tuple mapping with template src types
...
Added complexity in the test to help diagnose issues with the
introspection code.
2015-05-01 02:43:27 +10:00
7bc96bd60f
maths: explicitly instantiate PI for float, double
2015-05-01 02:42:32 +10:00
bb1e87bb47
options: don't import util and std namespaces
2015-04-30 21:03:18 +10:00
c052d7df4b
maths: use templated PI and E constants
2015-04-29 17:45:39 +10:00
33401becbd
tuple: add type mapping template
2015-04-21 14:21:01 +10:00
199be3213a
introspection: add simple static introspection types
2015-04-20 17:51:00 +10:00
fa8387252e
tuple: add tuple iteration helpers
2015-04-20 17:48:11 +10:00
e939cca6fd
ray: return NaN for negative aabb intersection
2015-04-15 14:20:59 +10:00
ffaf10de21
extent: silence unused variable warning in test
2015-04-15 14:06:30 +10:00
6f1278767f
vector: add is_normalised
2015-04-15 13:52:37 +10:00
8863ebafe9
ray: add ray-sphere intersection test
2015-04-13 21:47:51 +10:00
7e2baf6751
ray: convert test to TAP format
2015-04-13 21:47:37 +10:00
7ae57730f0
whitespace
2015-04-13 18:06:08 +10:00
bbbbb675a6
test: move tests to TAP output
2015-04-13 16:45:56 +10:00
e9c0ed3f5f
tap: use an object for logging
2015-04-13 16:43:49 +10:00
a7f96a127d
colour: add hsv/rgb conversions
2015-04-09 21:50:42 +10:00
7307d73bbc
colour: add html and x11 string lookup
2015-04-09 20:46:55 +10:00
ef4475949d
colour: specialise the cast function
2015-04-09 20:46:24 +10:00
bd88832df3
coord: move cast/redim operations to coord
2015-04-09 17:58:47 +10:00
9f6c17d6cf
maths: add renormalise function
2015-04-09 17:44:50 +10:00
afad51db9d
aabb: add expand call
2015-04-09 14:05:01 +10:00
a300f99b87
vector: add polar_to_cartesian
2015-04-02 15:01:17 +11:00
5674f2a2e9
json: add basic json-schema draft 4 support
2015-03-19 00:25:50 +11:00
4e3d67185c
rename line to ray
2015-03-11 22:31:35 +11:00
daa492ce07
signal: add return value combiners
2015-03-10 22:52:38 +11:00
2cd7ce0aca
maths: use qualified min/max functions
2015-03-07 03:21:06 +11:00
994121f2bf
line: add aabb intersection test
2015-03-07 03:20:50 +11:00
439bb19679
coord: move operators out of subclasses
2015-03-06 01:09:58 +11:00
31d1d741e9
extent/region: update to use size parameters
2015-03-03 04:13:29 +11:00
e5d99b3370
coord: use stricter member variable names
...
use tags for the core coordinate structures to specify what names should
be used for the data variables (in the data union)
2015-03-03 04:11:30 +11:00
29a148e2e5
hash/hotp: add simple HOTP implementation
2015-03-02 02:55:54 +11:00
cedcf90c3f
hash/hmac: add HMAC-SHA1 support
2015-03-02 01:21:52 +11:00
e52b8368f2
hash/hmac: add rfc 2202 test data
2015-03-02 00:41:52 +11:00
f4fe636cb0
hash/hmac: add simple HMAC-MD5
2015-03-02 00:07:50 +11:00
ebfa147cd2
line: add trivial line type
2015-02-19 13:29:16 +11:00
c8f067bf60
signal: add value wrapper signal
2015-02-19 13:29:16 +11:00
509d9a1582
matrix: remove debug print in test
2015-02-19 13:29:16 +11:00
6ac02a9920
point: add homogenous redim
2015-02-19 13:29:16 +11:00
38d3fc1961
signal: simplify unneeded signal elements
...
* use function syntax for template type
* remove non-scoped cookie
* simplify many type names
2015-02-18 02:35:05 +11:00
6bd9ad333c
region: try to use unsigned types for extent
2015-02-17 16:23:54 +11:00
ecc40f2315
build: fold test makefile into primary makefile
...
Moving the subdir makefile into the main one lets us more easily track
dependencies for reliable builds. Previously we tended to build against
old versions of the static library when running the tests.
2015-02-13 18:02:09 +11:00
331f185160
extent: add trivial validity instantiation test
2015-02-13 17:32:31 +11:00
d7e3683417
uri: check component values in unit test
2015-02-11 16:43:27 +11:00
4245785005
uri: add simple uri parser
2015-02-09 17:43:24 +11:00
81ccdcf8ef
fixed: add signed supported
2015-02-06 20:01:26 +11:00
4f19a35b7d
fixed: add trivial tests
2015-02-06 16:35:40 +11:00
9a6c4572fa
float: correctly handle double comparisons
2015-02-03 15:54:55 +11:00
3d53ee5eb1
bezier: add region query
2015-02-03 12:58:41 +11:00
e5b85b559b
point: fix float warning on test instantiation
2015-02-03 02:21:58 +11:00
60787655b3
json: split json impl files into tree and flat
2015-02-03 00:15:07 +11:00
81a7ff5db5
json: use raw string literals for test data
2015-02-02 23:02:26 +11:00
f3f969c8cb
json: rewrite test data for rfc7159 compliance
2015-02-02 23:01:57 +11:00
cfc0f8ecd0
json: move tree parsing code to json::tree
2015-02-02 21:26:56 +11:00
7a5e26ffc2
options: reset processor for each test
...
eliminates errors when CHECK macros are disabled in release builds
2015-01-30 16:46:47 +11:00
cae7a80ec1
test: move tests to flat directory structure
...
removes complications when srcpath/dstpath or child/parent directories
have naming collisions (in particular the json directories).
2015-01-30 16:45:57 +11:00
6bf011efa4
float: tighten up almost_equal tolerance
2015-01-29 15:49:57 +11:00
cf5a682959
bezier: add intersection count test
2015-01-29 15:49:57 +11:00
54cb3c2153
tap: add rudimentary TAP helpers
2015-01-29 15:49:57 +11:00
c841aadda0
float: fix negative-zero/zero almost_equal
2015-01-29 15:49:57 +11:00
52f53caee5
debug: drop support for CHECK_HARD
...
HARD vs SOFT assertions were never very well defined or supported.
Currently they just imply a level of functionality that isn't present;
it's better to remove them instead of expending the effort at this
point.
2015-01-28 14:49:34 +11:00
7934ae865b
bezier: add straight line tests for order 1-3
2015-01-22 14:57:57 +11:00
b9f38eb4a9
polynomial: use correct degree in template param
2015-01-22 14:57:38 +11:00
bd12519d94
polynomial: use newtons method after cubic solve
2015-01-22 00:27:46 +11:00
5469fdf06b
polynomial: initial degree 1-3 solvers
2015-01-21 23:40:45 +11:00
0a2d163bb1
maths: seperate float and double PI
2015-01-21 23:40:13 +11:00
fe143717c5
region: style, comments, namespacing
2015-01-21 23:40:13 +11:00
75156cedc3
colour: remove redundant rgba member variables
2015-01-15 14:03:44 +11:00
bb0271ab2b
point: add simple redim with fill test
2015-01-13 18:41:51 +11:00
f309c5dbd0
maths: add float overload of to_radians
2015-01-13 18:41:51 +11:00
7c8562407f
rand: remove narrowing cast warning in test
2014-12-16 15:29:26 +11:00
557842441f
matrix: remove unneeded cast warning in test
2014-12-16 15:28:59 +11:00
5956d0421e
parameterise point, vector, region, matrix on type
2014-12-15 20:10:56 +11:00
a198aa1cba
matrix: add trivial matrix-mul test
2014-12-15 13:32:17 +11:00
6a6933ea70
build: update test to use only static libraries
2014-12-15 13:32:17 +11:00
733f16d1c8
build: add json test data to dist
2014-10-26 18:55:24 +11:00
cf6fc87c9f
options: use range based for in some tests
2014-10-21 21:48:13 +11:00
bb3cbb584c
maths: add log2up
2014-09-17 16:41:38 +10:00
b3e72051d6
maths: fix log2
2014-09-17 16:41:19 +10:00
37ed0fc5fd
hash: cleanup fletcher
2014-09-11 15:44:03 +10:00
9bd80ab85c
test: remove indirect script for json.test
2014-09-03 18:35:28 +10:00
61ee601df1
bitwise: use lookup table for byte reverse
...
When used across large buffers an iterative reverse scheme is lesss
efficient. The small cache cost for single reverses is good enough to
just eat here.
2014-09-01 16:23:46 +10:00
34f5036616
build: ignore built matrix test
2014-08-22 19:08:34 +10:00
3ab2e8ed57
matrix: add analytical 4x4 inverse
2014-08-19 20:45:28 +10:00
c086e2c9d7
test: move maths-matrix test to maths dir
2014-08-18 22:16:50 +10:00
39617fb471
test: move maths namespace checks into own dir
2014-08-18 22:16:50 +10:00
523d5efd05
test: build tests against static libraries
2014-08-18 22:16:50 +10:00
f6894fabc8
whitespace
2014-08-18 22:16:50 +10:00
8a400f7fe9
test: add stringid to gitignore
2014-08-01 21:37:31 +10:00
226500cb83
test: hack to make json.test executable
2014-08-01 21:37:04 +10:00
aa52f440bc
test: use absolute paths for json.test
2014-05-26 17:34:23 +10:00
6cce50cd1b
Merge branch 'master' of ssh://nerdcruft.net/var/git/libgim
2014-05-26 17:11:29 +10:00
eb05c7622e
add stringid for mapping between strings and ints
2014-05-26 17:11:07 +10:00
228421d974
test: run all checks through the TAP driver
...
This will allow more natural checking of hashes and json as they expand.
2014-05-23 17:11:28 +10:00
61634286d3
hash: call finish before comparing in tests
2014-05-20 13:33:08 +10:00
5c0ac60e2f
json: use new tool path for tests
2014-05-09 13:14:13 +10:00
1b96816bd3
matrix: debug build fix for braces and defines
2014-05-09 13:13:18 +10:00
513b09c1c9
sha2: rename SHA2 class to SHA256
...
temporary rename for clarity in existing algorithm code. revisit when/if
we get implementations for each bit length.
2014-05-09 13:01:02 +10:00
a88379bf36
hash: add sha2 implementation
2014-04-16 19:17:56 +10:00
028dee034a
bitwise: add rotater
2014-04-16 19:16:25 +10:00
fc935863ef
sha1: cleanup and fix test cases
2014-04-16 18:35:09 +10:00
21b2b2368c
Increase rand test iterations
...
Sometimes we get test errors when running the rand test. Obviously this
is expected a little based on the implementation, but we can reduce the
chance by increasing the iterations for the test.
2014-04-10 21:04:56 +10:00
6074ccdd21
Remove useless extension protection from gitignore
2014-04-10 21:04:32 +10:00
b33cb706c8
Add RIPEMD160 implementation
2014-04-10 21:04:07 +10:00
9cc47a05bd
Add point::redim implementation
2014-02-18 15:28:28 +11:00
ca2493f811
Add top include path to test programs
2013-08-26 15:10:23 +10:00
e67e0329fa
Remove dependency on system netlibs for ip test
2013-08-05 21:46:31 +10:00
1fac4bff06
Simplify test case CPPFLAGS
2013-08-05 21:46:31 +10:00
a072f97ffe
Rename random test to avoid #including built test
2013-08-05 21:43:01 +10:00
bb19448ee9
Fix missing headers in tests for windows
2013-08-05 16:45:03 +10:00
0c4f9cb275
Fix headers and linking for network tests
2013-08-05 16:43:52 +10:00
8de0495b8a
Add basic randomness checks for random generators
2013-07-30 15:10:10 +10:00
d74b8ad40f
Simplify the test binary cxx/ld flag specification
...
Rather than set the flags for each binary we can use global flags for
this file and cut down on redundancy.
2013-07-30 14:25:38 +10:00
db18432f1c
Move all hash implementations to hash subdir
2013-07-13 14:40:13 +10:00
9bdc50df3c
Add SHA1 implementation
2013-03-11 20:47:48 +11:00
7099c9bc50
Add MD5 implementation
2013-03-11 20:45:53 +11:00
905a2236a2
Add MD4 implementation
2013-03-11 20:44:32 +11:00
8df03fae81
Add MD2 implementation
2013-03-11 20:43:15 +11:00
990d5ab806
Rename rotate_left to the more friendly rotatel
2013-03-11 20:41:19 +11:00
886a36ad5c
Fix floating comparison warnings in json test
2013-02-27 15:17:33 +11:00
d17f55cba8
Use unique_ptr rather than plain pointer
2013-02-27 15:10:17 +11:00
d482f1fde4
Whitespace and minor c++11 fixups
2013-02-26 18:56:25 +11:00
0b30b56c58
Add straggling files to ignore list
2013-02-26 18:32:36 +11:00
6f4d899c0b
Imported libcmdopt option parsing
2013-02-26 18:31:14 +11:00
baf8ded43d
Add UNIT and MAX region objects
2012-06-15 16:38:57 +10:00
c0dcdd89d9
Add MAX range object
2012-06-15 16:38:24 +10:00
94189e5b58
Rename json test data to aid 'make clean'
2012-06-12 13:03:50 +10:00
9098ea408d
Add contains vs includes region tests
2012-06-08 16:48:33 +10:00
71576c9e7b
Fix test case headers for new types.hpp
2012-05-26 18:01:54 +10:00
ea9d6c175d
Support initial NaN range with range::expand
2012-05-23 20:42:05 +10:00
83a30c9d94
Uppercase usage of check in json tests
2012-05-14 16:10:32 +10:00