vjudger

package module
v0.0.0-...-629d847 Latest Latest
Warning

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

Go to latest
Published: May 1, 2020 License: GPL-2.0 Imports: 12 Imported by: 1

README

vjudger

Virtual Judger

Documentation

Index

Constants

View Source
const (
	JudgePD  = 0  //Pending
	JudgeRJ  = 1  //Running & judging
	JudgeCE  = 2  //Compile Error
	JudgeAC  = 3  //Accepted
	JudgeRE  = 4  //Runtime Error
	JudgeWA  = 5  //Wrong Answer
	JudgeTLE = 6  //Time Limit Exceeded
	JudgeMLE = 7  //Memory Limit Exceeded
	JudgeOLE = 8  //Output Limit Exceeded
	JudgePE  = 9  //Presentation Error
	JudgeNA  = 10 //System Error
	JudgeRPD = 11 //Rejudge Pending
)
View Source
const (
	LanguageNA   = 0 //None
	LanguageC    = 1 //C
	LanguageCPP  = 2 //C++
	LanguageJAVA = 3 //Java
	LanguagePy2  = 4 //Java
	LanguagePy3  = 5 //Java
)
View Source
const HDUToken = "HDU"
View Source
const MAX_WaitTime = 120
View Source
const PKUToken = "PKU"
View Source
const ZJUToken = "ZJU"

Variables

View Source
var (
	BadInternet   = errors.New("Can't connect to vjudger server")
	LoginFailed   = errors.New("Failed to login")
	SubmitFailed  = errors.New("Failed to submit code")
	NoSuchProblem = errors.New("No such problem")
	JudgeFailed   = errors.New("Failed to judge solution")
	BadStatus     = errors.New("Can't find status")
)
View Source
var HDULang = map[int]int{
	LanguageC:    1,
	LanguageCPP:  0,
	LanguageJAVA: 5}
View Source
var HDURes = map[string]int{"Queuing": 0,
	"Compiling": 1, "Running": 1,
	"Compilation Error":                         2,
	"Accepted":                                  3,
	"Runtime Error<br>(STACK_OVERFLOW)":         4,
	"Runtime Error<br>(ACCESS_VIOLATION)":       4,
	"Runtime Error<br>(ARRAY_BOUNDS_EXCEEDED)":  4,
	"Runtime Error<br>(FLOAT_DENORMAL_OPERAND)": 4,
	"Runtime Error<br>(FLOAT_DIVIDE_BY_ZERO)":   4,
	"Runtime Error<br>(FLOAT_OVERFLOW)":         4,
	"Runtime Error<br>(FLOAT_UNDERFLOW )":       4,
	"Runtime Error<br>(INTEGER_OVERFLOW)":       4,
	"Runtime Error<br>(INTEGER_DIVIDE_BY_ZERO)": 4,
	"Wrong Answer":                              5,
	"Time Limit Exceeded":                       6,
	"Memory Limit Exceeded":                     7,
	"Output Limit Exceeded":                     8,
	"Presentation Error":                        9,
	"System Error":                              10}
View Source
var HDUSearchLang = map[int]int{
	LanguageC:    2,
	LanguageCPP:  1,
	LanguageJAVA: 6}
View Source
var PKULang = map[int]int{
	LanguageNA:   -1,
	LanguageC:    1,
	LanguageCPP:  0,
	LanguageJAVA: 2}
View Source
var PKURes = map[string]int{"Waiting": 0,
	"Compiling":             1,
	"Running & Judging":     1,
	"Compile Error":         2,
	"Accepted":              3,
	"Runtime Error":         4,
	"Wrong Answer":          5,
	"Time Limit Exceeded":   6,
	"Memory Limit Exceeded": 7,
	"Output Limit Exceeded": 8,
	"Presentation Error":    9,
	"System Error":          10}
View Source
var VJs = []Vjudger{&HDUJudger{}}
View Source
var ZJULang = map[int]int{
	LanguageNA:   0,
	LanguageC:    1,
	LanguageCPP:  2,
	LanguageJAVA: 4}
View Source
var ZJURes = map[string]int{"Queuing": 0,
	"Compile Error":         2,
	"Accepted":              3,
	"Segmentation Fault":    4,
	"Floating Point Error":  4,
	"Runtime Error":         4,
	"Wrong Answer":          5,
	"Time Limit Exceeded":   6,
	"Memory Limit Exceeded": 7,
	"Output Limit Exceeded": 8,
	"Presentation Error":    9}

Functions

func Judge

func Judge(u UserInterface)

Types

type HDUJudger

type HDUJudger struct {
	// contains filtered or unexported fields
}

func (*HDUJudger) GetCEInfo

func (h *HDUJudger) GetCEInfo(rid string) (string, error)

func (*HDUJudger) GetStatus

func (h *HDUJudger) GetStatus(u UserInterface) error

func (*HDUJudger) Init

func (h *HDUJudger) Init(_ UserInterface) error

func (*HDUJudger) Login

func (h *HDUJudger) Login(_ UserInterface) error

func (*HDUJudger) Match

func (h *HDUJudger) Match(token string) bool

func (*HDUJudger) Run

func (h *HDUJudger) Run(u UserInterface) error

func (*HDUJudger) Submit

func (h *HDUJudger) Submit(u UserInterface) error

type PKUJudger

type PKUJudger struct {
	// contains filtered or unexported fields
}

func (*PKUJudger) FixCode

func (h *PKUJudger) FixCode(sid string, code string) string

FixCode sets a code id on the top of code

func (*PKUJudger) GetCEInfo

func (h *PKUJudger) GetCEInfo(rid string) (string, error)

func (*PKUJudger) GetCodeID

func (h *PKUJudger) GetCodeID(rid string) string

func (*PKUJudger) GetStatus

func (h *PKUJudger) GetStatus(u UserInterface) error

func (*PKUJudger) Init

func (h *PKUJudger) Init(_ UserInterface) error

func (*PKUJudger) Login

func (h *PKUJudger) Login(_ UserInterface) (err error)

func (*PKUJudger) Match

func (h *PKUJudger) Match(token string) bool

func (*PKUJudger) Run

func (h *PKUJudger) Run(u UserInterface) error

func (*PKUJudger) Submit

func (h *PKUJudger) Submit(u UserInterface) (err error)

type UserInterface

type UserInterface interface {
	GetResult() int
	SetResult(int)
	SetResource(int, int, int)
	SetErrorInfo(string)
	GetSubmitTime() time.Time
	SetSubmitTime(time.Time)
	GetCode() string
	GetOJ() string
	GetLang() int
	GetVid() int
	GetSid() int
	UpdateSolution()
}

type Vjudger

type Vjudger interface {
	Init(UserInterface) error
	Login(UserInterface) error
	Submit(UserInterface) error
	GetStatus(UserInterface) error
	Run(UserInterface) error
	Match(string) bool
}

type ZJUJudger

type ZJUJudger struct {
	// contains filtered or unexported fields
}

func (*ZJUJudger) GetCEInfo

func (h *ZJUJudger) GetCEInfo(rid string) (string, error)

func (*ZJUJudger) GetStatus

func (h *ZJUJudger) GetStatus(u UserInterface) error

func (*ZJUJudger) Init

func (h *ZJUJudger) Init(_ UserInterface) error

func (*ZJUJudger) Login

func (h *ZJUJudger) Login(_ UserInterface) error

func (*ZJUJudger) Match

func (h *ZJUJudger) Match(token string) bool

func (*ZJUJudger) Run

func (h *ZJUJudger) Run(u UserInterface) error

func (*ZJUJudger) Submit

func (h *ZJUJudger) Submit(u UserInterface) error

Jump to

Keyboard shortcuts

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