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
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
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
plainfp Arrays.flatMap
packages/plainfp/src/arrays/transform.bench.ts::Arrays.flatMap vs native
CodSpeed Performance Gauge
0%
5.3 ms5.3 ms
Records.values
packages/plainfp/src/records/access.bench.ts::Records.{keys, values, entries} vs native
CodSpeed Performance Gauge
0%
78.2 µs78.2 µs
Records.entries
packages/plainfp/src/records/access.bench.ts::Records.{keys, values, entries} vs native
CodSpeed Performance Gauge
0%
123 µs123 µs
rename prefix
packages/plainfp/src/records/transform.bench.ts::Records.mapKeys (medium)
CodSpeed Performance Gauge
0%
2.1 ms2.1 ms
Records.get present key
packages/plainfp/src/records/access.bench.ts::Records.get vs native property access
CodSpeed Performance Gauge
0%
56.3 µs56.3 µs
ResultAsync.map chain (5 deep, all ok)
packages/plainfp/src/result-async/transform.bench.ts::ResultAsync.map vs bare Promise.then
CodSpeed Performance Gauge
0%
31.8 µs31.8 µs
Records.mapValues (small)
packages/plainfp/src/records/transform.bench.ts::Records.mapValues vs handwritten reduce
CodSpeed Performance Gauge
0%
28.5 µs28.5 µs
handwritten reduce (medium)
packages/plainfp/src/records/transform.bench.ts::Records.mapValues vs handwritten reduce
CodSpeed Performance Gauge
0%
1.2 ms1.2 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
4 days ago
by kelsos
© 2026 CodSpeed Technology
Home Terms Privacy Docs