Commit graph

33 commits

Author SHA1 Message Date
Simon Bruder 1bd2d3a2a5 u02: Fix warnings by -Wall
This actually found one logic bug.
2023-05-20 11:39:26 +02:00
Simon Bruder e64cbfdcf2 u02: Make star preview more variable 2023-05-16 16:49:59 +02:00
Simon Bruder 18da3567cc u02/star_tool: Allow setting spikes in ctor 2023-05-16 16:49:23 +02:00
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 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 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 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 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 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