mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-07-04 09:20:53 +00:00
refactor(run): rename trim to isTrim and simplify output comparison
- Change boolean parameter name from 'trim' to 'isTrim' for better clarity - Simplify output comparison logic by inlining ternary expression
This commit is contained in:
parent
7f79b901b7
commit
0b9c338de4
@ -0,0 +1,9 @@
|
|||||||
|
/*
|
||||||
|
Warnings:
|
||||||
|
|
||||||
|
- You are about to drop the column `trim` on the `Problem` table. All the data in the column will be lost.
|
||||||
|
|
||||||
|
*/
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Problem" DROP COLUMN "trim",
|
||||||
|
ADD COLUMN "isTrim" BOOLEAN NOT NULL DEFAULT false;
|
@ -80,18 +80,15 @@ model Problem {
|
|||||||
displayId Int @unique
|
displayId Int @unique
|
||||||
difficulty Difficulty @default(EASY)
|
difficulty Difficulty @default(EASY)
|
||||||
isPublished Boolean @default(false)
|
isPublished Boolean @default(false)
|
||||||
trim Boolean @default(false)
|
isTrim Boolean @default(false)
|
||||||
timeLimit Int @default(1000)
|
timeLimit Int @default(1000)
|
||||||
memoryLimit Int @default(134217728)
|
memoryLimit Int @default(134217728)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
localizations ProblemLocalization[]
|
localizations ProblemLocalization[]
|
||||||
templates Template[]
|
templates Template[]
|
||||||
testcases Testcase[]
|
testcases Testcase[]
|
||||||
submissions Submission[]
|
submissions Submission[]
|
||||||
|
|
||||||
|
|
||||||
userId String?
|
userId String?
|
||||||
|
|
||||||
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
|
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
|
||||||
|
@ -41,7 +41,7 @@ const problemData: Prisma.ProblemCreateInput[] = [
|
|||||||
displayId: 1000,
|
displayId: 1000,
|
||||||
difficulty: "EASY",
|
difficulty: "EASY",
|
||||||
isPublished: true,
|
isPublished: true,
|
||||||
trim: true,
|
isTrim: true,
|
||||||
localizations: {
|
localizations: {
|
||||||
create: [
|
create: [
|
||||||
{
|
{
|
||||||
@ -735,7 +735,7 @@ int main() {
|
|||||||
displayId: 1001,
|
displayId: 1001,
|
||||||
difficulty: "MEDIUM",
|
difficulty: "MEDIUM",
|
||||||
isPublished: true,
|
isPublished: true,
|
||||||
trim: true,
|
isTrim: true,
|
||||||
localizations: {
|
localizations: {
|
||||||
create: [
|
create: [
|
||||||
{
|
{
|
||||||
@ -1263,7 +1263,7 @@ int main() {
|
|||||||
displayId: 1002,
|
displayId: 1002,
|
||||||
difficulty: "HARD",
|
difficulty: "HARD",
|
||||||
isPublished: true,
|
isPublished: true,
|
||||||
trim: true,
|
isTrim: true,
|
||||||
localizations: {
|
localizations: {
|
||||||
create: [
|
create: [
|
||||||
{
|
{
|
||||||
|
@ -29,7 +29,7 @@ const startRun = (
|
|||||||
timeLimit: number,
|
timeLimit: number,
|
||||||
memoryLimit: number,
|
memoryLimit: number,
|
||||||
expectedOutput: string,
|
expectedOutput: string,
|
||||||
trim: boolean,
|
isTrim: boolean,
|
||||||
): Promise<Status> => {
|
): Promise<Status> => {
|
||||||
return new Promise<Status>((resolve, reject) => {
|
return new Promise<Status>((resolve, reject) => {
|
||||||
runExec.start({ hijack: true }, async (error, stream) => {
|
runExec.start({ hijack: true }, async (error, stream) => {
|
||||||
@ -72,10 +72,7 @@ const startRun = (
|
|||||||
const exitCode = (await runExec.inspect()).ExitCode;
|
const exitCode = (await runExec.inspect()).ExitCode;
|
||||||
const timeUsage = Date.now() - startTime;
|
const timeUsage = Date.now() - startTime;
|
||||||
if (exitCode === 0) {
|
if (exitCode === 0) {
|
||||||
let isCorrect = stdout === expectedOutput;
|
const isCorrect = isTrim ? stdout.trim() === expectedOutput.trim() : stdout === expectedOutput;
|
||||||
if (trim) {
|
|
||||||
isCorrect = stdout.trim() === expectedOutput.trim();
|
|
||||||
}
|
|
||||||
await prisma.testcaseResult.create({
|
await prisma.testcaseResult.create({
|
||||||
data: {
|
data: {
|
||||||
isCorrect,
|
isCorrect,
|
||||||
@ -136,7 +133,7 @@ const executeRun = async (
|
|||||||
timeLimit: number,
|
timeLimit: number,
|
||||||
memoryLimit: number,
|
memoryLimit: number,
|
||||||
testcases: Testcase[],
|
testcases: Testcase[],
|
||||||
trim: boolean
|
isTrim: boolean
|
||||||
): Promise<Status> => {
|
): Promise<Status> => {
|
||||||
for (const testcase of testcases) {
|
for (const testcase of testcases) {
|
||||||
const inputs = await prisma.testcaseInput.findMany({
|
const inputs = await prisma.testcaseInput.findMany({
|
||||||
@ -175,7 +172,7 @@ const executeRun = async (
|
|||||||
timeLimit,
|
timeLimit,
|
||||||
memoryLimit,
|
memoryLimit,
|
||||||
testcase.expectedOutput,
|
testcase.expectedOutput,
|
||||||
trim
|
isTrim
|
||||||
);
|
);
|
||||||
|
|
||||||
if (status !== Status.RU) {
|
if (status !== Status.RU) {
|
||||||
@ -234,7 +231,7 @@ export const run = async (
|
|||||||
testcases: Testcase[]
|
testcases: Testcase[]
|
||||||
): Promise<Status> => {
|
): Promise<Status> => {
|
||||||
const { runOutputLimit } = config;
|
const { runOutputLimit } = config;
|
||||||
const { timeLimit, memoryLimit, trim } = problem;
|
const { timeLimit, memoryLimit, isTrim } = problem;
|
||||||
|
|
||||||
await prisma.submission.update({
|
await prisma.submission.update({
|
||||||
where: {
|
where: {
|
||||||
@ -255,6 +252,6 @@ export const run = async (
|
|||||||
timeLimit,
|
timeLimit,
|
||||||
memoryLimit,
|
memoryLimit,
|
||||||
testcases,
|
testcases,
|
||||||
trim
|
isTrim
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user