Avatar for the kelsos user
kelsos
plainfp
BlogDocsChangelog

test: property-based tests for Result/Option/Arrays/pipe laws

#10Merged
Comparing
test/property-based
(
5153437
) with
main
(
a4b6d4f
)
CodSpeed Performance Gauge
0%
Untouched
48

Benchmarks

48 total
native property access
packages/plainfp/src/records/access.bench.ts::Records.get vs native property access
CodSpeed Performance Gauge
0%
11.9 µs11.8 µs
handwritten reduce (small)
packages/plainfp/src/records/transform.bench.ts::Records.mapValues vs handwritten reduce
CodSpeed Performance Gauge
0%
15.1 µs15.1 µs
getOr missing key (fallback used)
packages/plainfp/src/records/access.bench.ts::Records.getOr
CodSpeed Performance Gauge
0%
17.8 µs17.7 µs
Records.get missing key
packages/plainfp/src/records/access.bench.ts::Records.get vs native property access
CodSpeed Performance Gauge
0%
18.6 µs18.5 µs
manual: chained const
packages/plainfp/src/pipe.bench.ts::pipe vs manual chaining
CodSpeed Performance Gauge
0%
12.8 µs12.8 µs
manual: i(h(g(f(x))))
packages/plainfp/src/pipe.bench.ts::pipe vs manual chaining
CodSpeed Performance Gauge
0%
12.8 µs12.8 µs
map over err (short-circuit)
packages/plainfp/src/result/transform.bench.ts::Result.map — ok vs err paths
CodSpeed Performance Gauge
0%
13.3 µs13.3 µs
map over none (short-circuit)
packages/plainfp/src/option/transform.bench.ts::Option.map — some vs none paths
CodSpeed Performance Gauge
0%
13.4 µs13.3 µs
filter predicate passes
packages/plainfp/src/option/transform.bench.ts::Option.filter
CodSpeed Performance Gauge
0%
14 µs14 µs
filter predicate fails
packages/plainfp/src/option/transform.bench.ts::Option.filter
CodSpeed Performance Gauge
0%
15.4 µs15.3 µs
Result.map chain (5 deep, all ok)
packages/plainfp/src/result/transform.bench.ts::Result.map vs throw/catch
CodSpeed Performance Gauge
0%
17.4 µs17.4 µs
flatMap 5 deep, early none
packages/plainfp/src/option/transform.bench.ts::Option.flatMap pipeline
CodSpeed Performance Gauge
0%
17.6 µs17.5 µs
try/catch with throw (1 level)
packages/plainfp/src/result/transform.bench.ts::Result.map vs throw/catch
CodSpeed Performance Gauge
0%
69.1 µs69.2 µs
flatMap 5 deep, some path
packages/plainfp/src/option/transform.bench.ts::Option.flatMap pipeline
CodSpeed Performance Gauge
0%
18.8 µs18.7 µs
flatMap 5 deep, ok path
packages/plainfp/src/result/transform.bench.ts::Result.flatMap pipeline
CodSpeed Performance Gauge
0%
18.8 µs18.8 µs
map over some
packages/plainfp/src/option/transform.bench.ts::Option.map — some vs none paths
CodSpeed Performance Gauge
0%
37.6 µs37.6 µs
map over ok
packages/plainfp/src/result/transform.bench.ts::Result.map — ok vs err paths
CodSpeed Performance Gauge
0%
37.6 µs37.6 µs
getOr present key
packages/plainfp/src/records/access.bench.ts::Records.getOr
CodSpeed Performance Gauge
0%
21.8 µs21.8 µs
Object.keys native
packages/plainfp/src/records/access.bench.ts::Records.{keys, values, entries} vs native
CodSpeed Performance Gauge
0%
24.4 µs24.4 µs
Records.keys
packages/plainfp/src/records/access.bench.ts::Records.{keys, values, entries} vs native
CodSpeed Performance Gauge
0%
25.9 µs25.8 µs
map over ok
packages/plainfp/src/result-async/transform.bench.ts::ResultAsync.map — ok vs err paths
CodSpeed Performance Gauge
0%
32.5 µs32.6 µs
plainfp Arrays.map (small)
packages/plainfp/src/arrays/transform.bench.ts::Arrays.map vs native
CodSpeed Performance Gauge
0%
35.6 µs35.7 µs
map over err (short-circuit)
packages/plainfp/src/result-async/transform.bench.ts::ResultAsync.map — ok vs err paths
CodSpeed Performance Gauge
0%
57.8 µs57.8 µs
Records.mapValues (medium)
packages/plainfp/src/records/transform.bench.ts::Records.mapValues vs handwritten reduce
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
plainfp Arrays.flatMap
packages/plainfp/src/arrays/transform.bench.ts::Arrays.flatMap vs native
CodSpeed Performance Gauge
0%
5.3 ms5.3 ms

Commits

Click on a commit to change the comparison range
Base
main
a4b6d4f
+0.07%
test: property-based tests for Result/Option/Arrays/pipe laws
5153437
2 months ago
by kelsos
© 2026 CodSpeed Technology
Home Terms Privacy Docs