MCPcopy Index your code
hub / github.com/hydro-dev/Hydro / pdoc

Function pdoc

packages/hydrooj/src/script/problemStat.ts:81–165  ·  view source on GitHub ↗
(report)

Source from the content-addressed store, hash-verified

79}
80
81export async function pdoc(report) {
82 report({ message: 'Pdoc' });
83 const pipeline = [
84 {
85 $match: {
86 contest: { $nin: [RecordModel.RECORD_PRETEST, RecordModel.RECORD_GENERATE] },
87 status: { $ne: STATUS.STATUS_CANCELED },
88 },
89 },
90 {
91 $group: {
92 _id: { domainId: '$domainId', pid: '$pid', uid: '$uid' },
93 nSubmit: { $sum: 1 },
94 nAccept: sumStatus(STATUS.STATUS_ACCEPTED),
95 WA: sumStatus(STATUS.STATUS_WRONG_ANSWER),
96 TLE: sumStatus(STATUS.STATUS_TIME_LIMIT_EXCEEDED),
97 MLE: sumStatus(STATUS.STATUS_MEMORY_LIMIT_EXCEEDED),
98 RE: sumStatus(STATUS.STATUS_RUNTIME_ERROR),
99 SE: sumStatus(STATUS.STATUS_SYSTEM_ERROR),
100 IGN: sumStatus(STATUS.STATUS_CANCELED),
101 CE: sumStatus(STATUS.STATUS_COMPILE_ERROR),
102 },
103 },
104 {
105 $group: {
106 _id: { domainId: '$_id.domainId', pid: '$_id.pid' },
107 nSubmit: { $sum: '$nSubmit' },
108 nAccept: { $sum: { $min: ['$nAccept', 1] } },
109 AC: { $sum: '$nAccept' },
110 WA: { $sum: '$WA' },
111 TLE: { $sum: '$TLE' },
112 MLE: { $sum: '$MLE' },
113 RE: { $sum: '$RE' },
114 SE: { $sum: '$SE' },
115 IGN: { $sum: '$IGN' },
116 CE: { $sum: '$CE' },
117 },
118 },
119 ];
120 for (let i = 0; i <= 100; i++) {
121 pipeline[1].$group[`s${i}`] = {
122 $sum: {
123 $cond: [{
124 $and: [
125 { $gte: ['$score', i] },
126 { $lt: ['$score', i + 1] },
127 ],
128 }, 1, 0],
129 },
130 };
131 pipeline[2].$group[`s${i}`] = { $sum: `$s${i}` };
132 }
133 let bulk = db.collection('document').initializeUnorderedBulkOp();
134 const data = db.collection('record').aggregate<any>(pipeline, { allowDiskUse: true });
135 let cnt = 0;
136 for await (const adoc of data) {
137 const $set = {
138 nSubmit: adoc.nSubmit,

Callers 1

applyFunction · 0.85

Calls 5

reportFunction · 0.85
sumStatusFunction · 0.85
collectionMethod · 0.80
findMethod · 0.80
executeMethod · 0.80

Tested by

no test coverage detected