cellxBench function

void cellxBench(
  1. ReactiveFramework framework
)

Implementation

void cellxBench(ReactiveFramework framework) {
  const expected = <int, _BenchmarkResults>{
    1000: ([-3, -6, -2, 2], [-2, -4, 2, 3]),
    2500: ([-3, -6, -2, 2], [-2, -4, 2, 3]),
    5000: ([2, 4, -1, -6], [-2, 1, -4, -4]),
  };

  final results = <int, _BenchmarkResults>{};
  for (final layers in expected.keys) {
    int total = 0;
    for (int i = 0; i < 10; i++) {
      final (elapsed, before, after) = _cellx(framework, layers);
      results[layers] = (before, after);
      total += elapsed;
    }

    final (before, after) = results[layers]!;
    final (expectedBefore, expectedAfter) = expected[layers]!;
    final first =
        _listEqual(before, expectedBefore) ? 'first: pass' : 'first: fail';
    final last = _listEqual(after, expectedAfter) ? 'last: pass' : 'last: fail';

    logPerfResult(PerfRowStrings(
      framework: framework.name,
      test: 'cellx$layers ($first, $last)',
      time: total.toString(),
    ));
  }
}