judge

package
v0.0.0-...-f3f7f80 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2019 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Judge provides the judging infrastructure.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FileContent

type FileContent struct {
	Content string `json:"content"`
	Name    string `json:"name"`
}

type Judge

type Judge struct {
	TaskId   null.String    `json:"task_id,omitempty"`
	Type     null.Int       `json:"type,omitempty"`
	Progress *JudgeProgress `json:"progress,omitempty"`
}

ConvertResult

type JudgeProgress

type JudgeProgress struct {
	Compile       *JudgeProgressCompile `json:"compile,omitempty"`
	Judge         *JudgeProgressJudge   `json:"judge,omitempty"`
	Error         null.Int              `json:"error,omitempty"`
	SystemMessage null.String           `json:"systemMessage,omitempty"`
	Status        null.Int              `json;"status,omitempty"`
	Message       null.String           `json:"message,omitempty"`
}

type JudgeProgressCaseResult

type JudgeProgressCaseResult struct {
	Type          null.Int     `json:"type,omitempty"`
	Time          null.Float64 `json:"time,omitempty"`
	Memory        null.Float64 `json:"memory,omitempty"`
	Status        null.Int     `json:"status,omitempty"`
	Input         *FileContent `json:"input,omitempty"`
	Output        *FileContent `json:"output,omitempty"`
	Score         null.Float64 `json:"score,omitempty"`
	ScoringRate   null.Float64 `json:"scoringRate,omitempty"` // ???
	UserOutput    null.String  `json:"userOutput,omitempty'`
	UserError     null.String  `json:"userError,omitempty"`
	SpjMessage    null.String  `json:"spjMessage,omitempty"`
	SystemMessage null.String  `json:"systemMessage,omitempty"`
}

type JudgeProgressCompile

type JudgeProgressCompile struct {
	Status null.Int `json:"status"`
}

type JudgeProgressJudge

type JudgeProgressJudge struct {
	Subtasks []*JudgeProgressJudgeSubtask `json:"subtasks,omitempty"`
}

type JudgeProgressJudgeSubtask

type JudgeProgressJudgeSubtask struct {
	Type  null.Int                         `json:"type,omitempty"`
	Cases []*JudgeProgressJudgeSubtaskCase `json:"cases,omitempty"`
	Score null.Float64                     `json:"score,omitempty"`
}

type JudgeProgressJudgeSubtaskCase

type JudgeProgressJudgeSubtaskCase struct {
	Status       null.Int                 `json:"status,omitempty"`
	Result       *JudgeProgressCaseResult `json:"result,omitempty"`
	ErrorMessage null.String              `json:"errorMessage,omitempty"`
}

type JudgeService

type JudgeService struct {
	Db    *sql.DB
	Redis *svcredis.RedisService
}

func DefaultJudgeService

func DefaultJudgeService(db *sql.DB, r *svcredis.RedisService) *JudgeService

func (*JudgeService) Run

func (s *JudgeService) Run(ctx context.Context) error

func (*JudgeService) SaveTask

func (s *JudgeService) SaveTask(ctx context.Context, sid string, res *Judge) error

type SubmissionResult

type SubmissionResult struct {
	Score        null.Int     `json:"score,omitempty"`
	Pending      null.Bool    `json:"pending,omitempty"`
	StatusString null.String  `json:"statusString,omitempty"`
	Time         null.Float64 `json:"time,omitempty"`
	Memory       null.Float64 `json:"memory,omitempty"`
	Result       null.String  `json:"result,omitempty"`
}

type SubmissionResultSummary

type SubmissionResultSummary struct {
	Status string
	Time   null.Float64
	Memory null.Float64
	Score  null.Float64
}

TODO: updateRelatedInfo

func GetSummary

func GetSummary(res *Judge) *SubmissionResultSummary

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL