feat(frontend): add submission performance distribution previews
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
import type { DistributionPoint } from '../lib/performance'
|
||||
import type { Submission } from './preview'
|
||||
|
||||
interface PerformancePreview {
|
||||
problemId: string
|
||||
language: string
|
||||
time: DistributionPoint[]
|
||||
memory: DistributionPoint[]
|
||||
}
|
||||
|
||||
// Fixed display fixtures, independent of real judge results. Memory values use KiB.
|
||||
const previews: PerformancePreview[] = [
|
||||
{
|
||||
problemId: '1001',
|
||||
language: 'Rust',
|
||||
time: [
|
||||
{ value: 0, count: 8 },
|
||||
{ value: 4, count: 12 },
|
||||
{ value: 8, count: 25 },
|
||||
{ value: 12, count: 16 },
|
||||
{ value: 16, count: 34 },
|
||||
{ value: 20, count: 46 },
|
||||
{ value: 24, count: 29 },
|
||||
{ value: 28, count: 18 },
|
||||
{ value: 32, count: 13 },
|
||||
{ value: 40, count: 9 },
|
||||
{ value: 48, count: 6 },
|
||||
{ value: 64, count: 4 },
|
||||
],
|
||||
memory: [
|
||||
{ value: 1024, count: 7 },
|
||||
{ value: 1536, count: 19 },
|
||||
{ value: 2048, count: 58 },
|
||||
{ value: 2560, count: 41 },
|
||||
{ value: 3072, count: 34 },
|
||||
{ value: 3584, count: 22 },
|
||||
{ value: 4096, count: 15 },
|
||||
{ value: 5120, count: 13 },
|
||||
{ value: 6144, count: 7 },
|
||||
{ value: 8192, count: 4 },
|
||||
],
|
||||
},
|
||||
{
|
||||
problemId: '1002',
|
||||
language: 'Python',
|
||||
time: [
|
||||
{ value: 24, count: 3 },
|
||||
{ value: 32, count: 8 },
|
||||
{ value: 40, count: 16 },
|
||||
{ value: 48, count: 28 },
|
||||
{ value: 56, count: 39 },
|
||||
{ value: 64, count: 31 },
|
||||
{ value: 72, count: 24 },
|
||||
{ value: 80, count: 18 },
|
||||
{ value: 96, count: 11 },
|
||||
{ value: 112, count: 6 },
|
||||
{ value: 128, count: 4 },
|
||||
],
|
||||
memory: [
|
||||
{ value: 5120, count: 6 },
|
||||
{ value: 6144, count: 18 },
|
||||
{ value: 7168, count: 46 },
|
||||
{ value: 8192, count: 53 },
|
||||
{ value: 9216, count: 31 },
|
||||
{ value: 10240, count: 19 },
|
||||
{ value: 12288, count: 9 },
|
||||
{ value: 14336, count: 6 },
|
||||
],
|
||||
},
|
||||
{
|
||||
problemId: '1003',
|
||||
language: 'C++',
|
||||
time: [
|
||||
{ value: 16, count: 8 },
|
||||
{ value: 24, count: 16 },
|
||||
{ value: 34, count: 21 },
|
||||
{ value: 40, count: 32 },
|
||||
{ value: 48, count: 41 },
|
||||
{ value: 56, count: 28 },
|
||||
{ value: 64, count: 19 },
|
||||
{ value: 80, count: 12 },
|
||||
{ value: 96, count: 7 },
|
||||
{ value: 120, count: 4 },
|
||||
],
|
||||
memory: [
|
||||
{ value: 2048, count: 9 },
|
||||
{ value: 3072, count: 24 },
|
||||
{ value: 4096, count: 51 },
|
||||
{ value: 5120, count: 47 },
|
||||
{ value: 6144, count: 29 },
|
||||
{ value: 8192, count: 17 },
|
||||
{ value: 10240, count: 8 },
|
||||
{ value: 12288, count: 3 },
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
export function findPerformancePreview(submission: Submission) {
|
||||
if (submission.verdict !== 'AC') return undefined
|
||||
return previews.find(
|
||||
(preview) =>
|
||||
preview.problemId === submission.problemId && preview.language === submission.language,
|
||||
)
|
||||
}
|
||||
@@ -264,7 +264,7 @@ export const verdictLabels: Record<Verdict, string> = {
|
||||
CE: 'Compile Error',
|
||||
Pending: '等待评测',
|
||||
}
|
||||
export const submissions: {
|
||||
export interface Submission {
|
||||
id: string
|
||||
problemId: string
|
||||
username: string
|
||||
@@ -273,7 +273,8 @@ export const submissions: {
|
||||
time: number | null
|
||||
memory: number | null
|
||||
created: string
|
||||
}[] = [
|
||||
}
|
||||
export const submissions: Submission[] = [
|
||||
{
|
||||
id: '10248',
|
||||
problemId: '1001',
|
||||
|
||||
Reference in New Issue
Block a user