Simon Bruder
1aae98c18b
u02: Add readme
2023-05-16 16:49:23 +02:00
Simon Bruder
2290a6314d
u02/tests: Fix inverted logic in comment
2023-05-16 16:49:22 +02:00
Simon Bruder
c5289609e5
flake: Build variants without tests
...
Tests set the C++ version to 17, however only up to 11 is allowed in the
other files.
2023-05-16 16:49:22 +02:00
Simon Bruder
085b8fcdb9
u02/tests: Fix edge case for invalid points
2023-05-16 16:49:22 +02:00
Simon Bruder
8f784ccf3e
u02/tests: Fix skipping behaviour
...
When the test runner only tests one case, it exits with a non-zero exit
code should that test invoke a skip (even if there are 1000+ successful
iterations).
This fixes this by falling back to a cheap message to stderr.
2023-05-16 16:49:22 +02:00
Simon Bruder
ad02a06db4
u02/tests: Fix floating point comparison
...
I didn’t really understand what WithinRel and WithinAbs do. Now I know
that for this use case WithinAbs is the better choice.
This also increases the allowed deviance for the average point of all
points of a star, because this would now fail for larger values.
2023-05-16 16:49:22 +02:00
Simon Bruder
d4794e1544
u02/tests: Add average point test for star
2023-05-16 16:49:22 +02:00
Simon Bruder
583f2ecd3e
u02: Implement preview for star
...
It is fixed to a star with 5 spikes, but better than a circle.
2023-05-16 16:49:22 +02:00
Simon Bruder
85e38a358d
u02/tests: Use floats for r/d in circle prop test
...
It does not improve the test’s accuracy, but it seems weird to first
convert the radius to an int and then save the distance as a double.
2023-05-16 16:49:22 +02:00
Simon Bruder
2226fb32af
u02: Implement star tool
2023-05-16 16:49:22 +02:00
Simon Bruder
7e06373aa1
u02: Add star tool skeleton
2023-05-10 17:07:03 +02:00
Simon Bruder
0d316d7aeb
Add note on filtering
2023-05-09 23:50:31 +02:00
Simon Bruder
a1f8720e74
Add filtering script
2023-05-09 23:50:31 +02:00
Simon Bruder
25e159d96b
u02/util: Simplify conditions
2023-05-09 23:50:31 +02:00
Simon Bruder
7e8dbfabea
u02: Implement sweep line tool
2023-05-09 23:50:31 +02:00
Simon Bruder
49cd0f201a
u02/tests: Lower target precision for barycentric coordinates
2023-05-09 23:47:47 +02:00
Simon Bruder
1f6f079edf
u02: Test edge case for barycentric coordinates
2023-05-09 23:47:47 +02:00
Simon Bruder
8822dbe7df
u02: Extract slope function
2023-05-09 23:47:47 +02:00
Simon Bruder
7de6c3cae3
u02: Implement sorting for 3 points
2023-05-09 23:47:47 +02:00
Simon Bruder
04527ef711
u02: Implement barycentric coordinates
2023-05-09 23:47:47 +02:00
Simon Bruder
2fd207f5f4
u02/tool_base: Add draw with three points
2023-05-09 23:47:47 +02:00
Simon Bruder
0de522004b
u02/tool_base: Add draw with no point
2023-05-09 23:47:47 +02:00
Simon Bruder
11da9a4d79
u02/tests: Add link to desmos for circle
2023-05-09 23:47:47 +02:00
Simon Bruder
e942c62ad6
u02: Implement bresenham circle tool
2023-05-09 23:47:47 +02:00
Simon Bruder
6b63595986
flake.{nix,lock}: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:nixos/nixpkgs/cd749f58ba83f7155b7062dd49d08e5e47e44d50' (2023-04-17)
→ 'github:nixos/nixpkgs/897876e4c484f1e8f92009fd11b7d988a121a4e7' (2023-05-06)
2023-05-09 23:47:47 +02:00
Simon Bruder
f81098f259
u02/tests: Use const where possible
2023-05-09 23:47:47 +02:00
Simon Bruder
b780d4b8c4
u02: Implement rectangle tool
2023-05-09 23:47:47 +02:00
Simon Bruder
5a1ba0ca93
u02: Replace fill test to use test shape
2023-05-09 23:47:47 +02:00
Simon Bruder
dfeb329a52
u02: Add property test for equality of fill tools
2023-05-09 23:47:47 +02:00
Simon Bruder
625c257f3f
u02: Implement non recursive fill tool
2023-05-09 23:47:47 +02:00
Simon Bruder
c851767445
u02: Implement recursive fill tool
2023-05-09 23:47:47 +02:00
Simon Bruder
649d5da18a
u02: Implement bresenham line tool
2023-05-09 23:47:47 +02:00
Simon Bruder
240d5435f2
u02: Improve test performance
2023-05-09 23:47:47 +02:00
Simon Bruder
8b88c14b02
u02: Make DDA incremental
2023-05-09 23:47:46 +02:00
Simon Bruder
708e501245
u02: Implement DDA line tool
2023-05-09 23:47:46 +02:00
Simon Bruder
fab356c308
u02: Implement transformation to standard case
2023-05-09 23:47:46 +02:00
Simon Bruder
18456541aa
u02: Implement transformation functions
2023-05-09 23:47:46 +02:00
Simon Bruder
837a1e5519
u02/CMake: Install built binary
2023-05-09 23:47:46 +02:00
Simon Bruder
d5340b315b
u02/CMake: Add vim modeline
2023-05-09 23:47:46 +02:00
Simon Bruder
60eb346e2c
u02: Convert latin1 to UTF-8
2023-05-09 23:47:46 +02:00
Simon Bruder
dfa6d381ca
u02: dos2unix
2023-05-09 23:47:46 +02:00
Simon Bruder
cc32e483e0
u02: Format
2023-05-09 23:47:46 +02:00
Simon Bruder
2c741916bf
u02: Add skeleton
2023-05-09 23:47:46 +02:00
Simon Bruder
60a8abfe34
u01: Accept reference for node::set_name
...
This harmonizes the signatures of set_name and the constructor.
2023-05-09 23:25:04 +02:00
Simon Bruder
63431b6824
u01: Add test case for very short loop
...
This actually worked, but it is nice to have it verified nonetheless.
2023-05-09 23:25:04 +02:00
Simon Bruder
8a07422a51
u01: Fix typo in comment
2023-05-09 23:25:04 +02:00
Simon Bruder
9db38c33f5
u01: Don’t call make_pair explicitly
2023-05-09 23:25:04 +02:00
Simon Bruder
f7e5769f8d
u01: Fix type of children count in one case
2023-05-09 23:25:04 +02:00
Simon Bruder
5ce178b914
u01/tests: Fix typo
2023-05-09 23:25:04 +02:00
Simon Bruder
db4d489ae8
u01: Consistently use size_t and unsigned int
...
size_t should only be used for indexing. For all other purposes,
unsigned int should be used.
2023-05-09 23:25:04 +02:00