oimp
Version:
A CLI tool for generating OI problem and packages
392 lines (385 loc) • 15.5 kB
JavaScript
export const testlib_completions =
{
"completions": [
// 补充:输入流类 istream(inf 属于此类)
{
"name": "istream",
"kind": "class",
"detail": "输入流类,用于读取数据",
"documentation": "testlib 输入流,提供多种数据读取方法,全局实例为 inf",
"children": [
{
"name": "readInt",
"kind": "method",
"detail": "int readInt()",
"documentation": "读取一个整数"
},
{
"name": "readInt",
"kind": "method",
"detail": "int readInt(int min, int max)",
"documentation": "读取一个整数并检查是否在 [min, max] 范围内",
"parameters": [
{"name": "min", "type": "int"},
{"name": "max", "type": "int"}
]
},
{
"name": "readLong",
"kind": "method",
"detail": "long long readLong()",
"documentation": "读取一个长整数"
},
{
"name": "readLong",
"kind": "method",
"detail": "long long readLong(long long min, long long max)",
"documentation": "读取一个长整数并检查是否在 [min, max] 范围内",
"parameters": [
{"name": "min", "type": "long long"},
{"name": "max", "type": "long long"}
]
},
{
"name": "readDouble",
"kind": "method",
"detail": "double readDouble()",
"documentation": "读取一个双精度浮点数"
},
{
"name": "readDouble",
"kind": "method",
"detail": "double readDouble(double min, double max)",
"documentation": "读取浮点数并检查是否在 [min, max] 范围内",
"parameters": [
{"name": "min", "type": "double"},
{"name": "max", "type": "double"}
]
},
{
"name": "readString",
"kind": "method",
"detail": "std::string readString()",
"documentation": "读取一个字符串(以空白符分隔)"
},
{
"name": "readString",
"kind": "method",
"detail": "std::string readString(const std::string& pattern)",
"documentation": "读取字符串并检查是否匹配指定模式",
"parameters": [
{"name": "pattern", "type": "const std::string&"}
]
},
{
"name": "readLine",
"kind": "method",
"detail": "std::string readLine()",
"documentation": "读取一整行字符串(包含空白符)"
},
{
"name": "readChar",
"kind": "method",
"detail": "char readChar()",
"documentation": "读取一个字符"
},
{
"name": "readChar",
"kind": "method",
"detail": "char readChar(char c)",
"documentation": "读取字符并检查是否为指定字符",
"parameters": [
{"name": "c", "type": "char"}
]
},
{
"name": "skipWhitespace",
"kind": "method",
"detail": "void skipWhitespace()",
"documentation": "跳过所有空白字符(空格、换行等)"
},
{
"name": "eof",
"kind": "method",
"detail": "bool eof()",
"documentation": "检查是否到达文件末尾"
}
]
},
// 补充:输出流类 ostream(ouf、err 属于此类)
{
"name": "ostream",
"kind": "class",
"detail": "输出流类,用于写入数据",
"documentation": "testlib 输出流,提供多种数据写入方法,全局实例为 ouf、err",
"children": [
{
"name": "write",
"kind": "method",
"detail": "void write(int x)",
"documentation": "写入一个整数",
"parameters": [{"name": "x", "type": "int"}]
},
{
"name": "write",
"kind": "method",
"detail": "void write(long long x)",
"documentation": "写入一个长整数",
"parameters": [{"name": "x", "type": "long long"}]
},
{
"name": "write",
"kind": "method",
"detail": "void write(double x)",
"documentation": "写入一个双精度浮点数",
"parameters": [{"name": "x", "type": "double"}]
},
{
"name": "write",
"kind": "method",
"detail": "void write(const std::string& s)",
"documentation": "写入一个字符串",
"parameters": [{"name": "s", "type": "const std::string&"}]
},
{
"name": "writeLine",
"kind": "method",
"detail": "void writeLine()",
"documentation": "写入一个换行符"
},
{
"name": "writeLine",
"kind": "method",
"detail": "void writeLine(int x)",
"documentation": "写入整数并换行",
"parameters": [{"name": "x", "type": "int"}]
},
{
"name": "writeLine",
"kind": "method",
"detail": "void writeLine(const std::string& s)",
"documentation": "写入字符串并换行",
"parameters": [{"name": "s", "type": "const std::string&"}]
},
{
"name": "writeSpace",
"kind": "method",
"detail": "void writeSpace()",
"documentation": "写入一个空格"
}
]
},
// 补充:全局 IO 对象
{
"name": "inf",
"kind": "variable",
"detail": "istream",
"documentation": "全局输入流对象,用于读取输入数据"
},
{
"name": "ouf",
"kind": "variable",
"detail": "ostream",
"documentation": "全局输出流对象,用于写入输出数据"
},
{
"name": "err",
"kind": "variable",
"detail": "ostream",
"documentation": "全局错误流对象,用于写入错误信息"
},
// 之前的 random_t 类(保持不变)
{
"name": "random_t",
"kind": "class",
"detail": "随机数生成器类",
"documentation": "用于生成各种类型的随机值,支持均匀分布及加权分布",
"children": [
{
"name": "random_t",
"kind": "constructor",
"detail": "构造函数",
"documentation": "创建一个具有固定种子的 random_t 实例"
},
{
"name": "setSeed",
"kind": "method",
"detail": "void setSeed(int argc, char* argv[])",
"documentation": "通过命令行参数设置种子",
"parameters": [
{"name": "argc", "type": "int"},
{"name": "argv", "type": "char*[]"}
]
},
{
"name": "setSeed",
"kind": "method",
"detail": "void setSeed(long long _seed)",
"documentation": "通过给定值设置种子",
"parameters": [{"name": "_seed", "type": "long long"}]
},
{
"name": "next",
"kind": "method",
"detail": "int next(int n)",
"documentation": "生成 [0, n-1] 范围内的随机整数",
"parameters": [{"name": "n", "type": "int"}]
},
{
"name": "next",
"kind": "method",
"detail": "int next(int from, int to)",
"documentation": "生成 [from, to] 范围内的随机整数",
"parameters": [
{"name": "from", "type": "int"},
{"name": "to", "type": "int"}
]
},
{
"name": "next",
"kind": "method",
"detail": "double next()",
"documentation": "生成 [0, 1) 范围内的随机双精度浮点数"
},
{
"name": "next",
"kind": "method",
"detail": "std::string next(const std::string &ptrn)",
"documentation": "根据模式生成随机字符串",
"parameters": [{"name": "ptrn", "type": "const std::string &"}]
}
]
},
// 之前的 pattern 类(保持不变)
{
"name": "pattern",
"kind": "class",
"detail": "模式匹配与生成类",
"documentation": "用于字符串模式匹配和基于模式生成随机字符串",
"children": [
{
"name": "pattern",
"kind": "constructor",
"detail": "pattern(std::string s)",
"documentation": "通过模式字符串创建 pattern 实例",
"parameters": [{"name": "s", "type": "std::string"}]
},
{
"name": "next",
"kind": "method",
"detail": "std::string next(random_t &rnd) const",
"documentation": "根据模式和随机生成器生成字符串",
"parameters": [{"name": "rnd", "type": "random_t &"}]
},
{
"name": "matches",
"kind": "method",
"detail": "bool matches(const std::string &s) const",
"documentation": "检查字符串是否匹配模式",
"parameters": [{"name": "s", "type": "const std::string &"}]
}
]
},
// 补充:全局随机对象
{
"name": "rnd",
"kind": "variable",
"detail": "random_t",
"documentation": "全局 random_t 实例,用于生成随机值"
},
// 补充:函数
{
"name": "registerGen",
"kind": "function",
"detail": "void registerGen(int argc, char* argv[], int version)",
"documentation": "初始化全局随机数生成器 rnd 的种子",
"parameters": [
{"name": "argc", "type": "int"},
{"name": "argv", "type": "char*[]"},
{"name": "version", "type": "int"}
]
},
{
"name": "setTestCase",
"kind": "function",
"detail": "void setTestCase(int testCase)",
"documentation": "设置当前测试用例编号",
"parameters": [{"name": "testCase", "type": "int"}]
},
{
"name": "unsetTestCase",
"kind": "function",
"detail": "void unsetTestCase()",
"documentation": "取消设置当前测试用例编号"
},
{
"name": "format",
"kind": "function",
"detail": "std::string format(const char *fmt, ...)",
"documentation": "格式化字符串(类似 printf)",
"parameters": [{"name": "fmt", "type": "const char *"}]
},
{
"name": "upperCase",
"kind": "function",
"detail": "std::string upperCase(std::string s)",
"documentation": "将字符串转换为大写",
"parameters": [{"name": "s", "type": "std::string"}]
},
{
"name": "lowerCase",
"kind": "function",
"detail": "std::string lowerCase(std::string s)",
"documentation": "将字符串转换为小写",
"parameters": [{"name": "s", "type": "std::string"}]
},
{
"name": "doubleCompare",
"kind": "function",
"detail": "bool doubleCompare(double expected, double result, double MAX_DOUBLE_ERROR)",
"documentation": "比较两个双精度浮点数是否在误差范围内相等",
"parameters": [
{"name": "expected", "type": "double"},
{"name": "result", "type": "double"},
{"name": "MAX_DOUBLE_ERROR", "type": "double"}
]
},
// 补充:宏定义(包含之前遗漏的)
{
"name": "OK_EXIT_CODE",
"kind": "macro",
"detail": "宏定义",
"documentation": "成功退出代码(默认 0)"
},
{
"name": "WA_EXIT_CODE",
"kind": "macro",
"detail": "宏定义",
"documentation": "答案错误退出代码(默认 1)"
},
{
"name": "PE_EXIT_CODE",
"kind": "macro",
"detail": "宏定义",
"documentation": "格式错误退出代码(默认 2)"
},
{
"name": "FAIL_EXIT_CODE",
"kind": "macro",
"detail": "宏定义",
"documentation": "程序失败退出代码(默认 3)"
},
{
"name": "DIRT_EXIT_CODE",
"kind": "macro",
"detail": "宏定义",
"documentation": "脏数据退出代码(默认 4)"
},
{
"name": "POINTS_EXIT_CODE",
"kind": "macro",
"detail": "宏定义",
"documentation": "分数退出代码(默认 7)"
}
]
}