/ concept-collection / ephys_compression_tests
Sign in
concept-collection / ephys_compression_tests
ephys_compression_tests / web-ui / src / hooks / useBenchmarkChartData.ts
47 lines · 1.6 KBCodeBlameHistory
552a4baadd web-uiJeremy Magland 1import { useMemo } from "react";
5be77d1dev lossyJeremy Magland 2import { Algorithm, BenchmarkResult } from "../types";
552a4baadd web-uiJeremy Magland 3
4export function useBenchmarkChartData(
5 results: BenchmarkResult[],
5be77d1dev lossyJeremy Magland 6 algorithms: Algorithm[],
552a4baadd web-uiJeremy Magland 7 selectedDataset?: string | null,
8 selectedAlgorithm?: string | null,
9) {
10 return useMemo(() => {
11 if (selectedDataset) {
12 return results
13 .filter((row) => row.dataset === selectedDataset)
5be77d1dev lossyJeremy Magland 14 .map((row) => {
15 const algorithm = algorithms.find((a) => a.name === row.algorithm);
16 return {
17 algorithmOrDataset: row.algorithm,
18 compression_ratio: row.compression_ratio,
19 reference_compression_ratio: null,
20 encode_speed: row.encode_mb_per_sec,
21 decode_speed: row.decode_mb_per_sec,
22 rmse: row.rmse,
721e8d8error metricJeremy Magland 23 max_error: row.max_error,
5be77d1dev lossyJeremy Magland 24 tags: algorithm?.tags || [],
25 };
26 });
552a4baadd web-uiJeremy Magland 27 } else if (selectedAlgorithm) {
28 return results
29 .filter((row) => row.algorithm === selectedAlgorithm)
30 .map((row) => ({
31 algorithmOrDataset: row.dataset,
32 compression_ratio: row.compression_ratio,
33 reference_compression_ratio: Math.max(
34 ...results
35 .filter((r) => r.dataset === row.dataset)
36 .map((r) => r.compression_ratio),
37 ),
38 encode_speed: row.encode_mb_per_sec,
39 decode_speed: row.decode_mb_per_sec,
5be77d1dev lossyJeremy Magland 40 rmse: row.rmse,
721e8d8error metricJeremy Magland 41 max_error: row.max_error,
5be77d1dev lossyJeremy Magland 42 tags: [],
552a4baadd web-uiJeremy Magland 43 }));
44 }
45 return [];
5be77d1dev lossyJeremy Magland 46 }, [results, algorithms, selectedDataset, selectedAlgorithm]);
552a4baadd web-uiJeremy Magland 47}
moveopenescclose