@@ -116,7 +116,7 @@ git clone https://github.com/${YOUE_GITHUB_USER_NAME}/algorithm-template.git
116116
117117+ 可选项:
118118 + 使用脚本产生自定义的文件(适合source.zip或者有bonuslab):
119- 使用命令行, 进入` ./script ` 下, 编辑` file_template ` 的` labs ` & ` problem_orders ` ,
119+ 使用命令行, 进入` ./script ` 下, 编辑` file_template ` 的` labs ` & ` problem_orders ` ,
120120 ` python3 ./file_template.py ` , 出现` produce files finish ` 提示, 即为创建成功.
121121
122122<p align =" right " >(<a href =" #top " >back to top</a >)</p >
@@ -129,9 +129,9 @@ git clone https://github.com/${YOUE_GITHUB_USER_NAME}/algorithm-template.git
129129
130130` lab${order}_${ques_Order} ` 为对应题号, 比如` lab07_01 ` 对应lab_07的C1题.
131131
132- + ` CS203_lab07_01 ` 将调用` lab_07\lab_07_C1\lab07_C1 .cpp ` , 为将要提交的源文件.
133- + ` CS203_lab07_01_test ` 将调用` lab_07\lab_07_C1\lab07_C1_test .cpp ` , 对其进行测试.
134- + ` lab_*\lab_*_*\lab_*_*_test .cpp ` 目的为方便测试, 同时便于分享测试用例.
132+ + ` CS203_lab07_01 ` 将调用` lab_07\lab_07_C1\main .cpp ` , 为将要提交的源文件.
133+ + ` CS203_lab07_01_test ` 将调用` lab_07\lab_07_C1\test .cpp ` , 对其进行测试.
134+ + ` lab_*\lab_*_*\test .cpp ` 目的为方便测试, 同时便于分享测试用例.
135135
136136<p align =" right " >(<a href =" #top " >back to top</a >)</p >
137137
@@ -153,7 +153,7 @@ git clone https://github.com/${YOUE_GITHUB_USER_NAME}/algorithm-template.git
153153
154154+ 在本repo, 使用` Catch2 ` 测试框架.
155155 + 比如, 我们有四组数据, 第一组, 第二组测试边界值, 第三组使用随机数测试对偶性与正确性, 第四组测试几个手动的随机值.
156- + 参见[ test_for_lab00_A] ( ./lab_00/lab_00_A/lab_00_A_test .cpp ) .
156+ + 参见[ test_for_lab00_A] ( ./lab_00/lab_00_A/test .cpp ) .
157157+ 这样一来, 我们只需要每次修改完主文件之后, run ` algorithm-template_test ` , 对其进行调用, 就能验证其在所有的测试用例上的正确性.
158158
159159### 多个输出值的检查:` Catch::Matchers `
@@ -162,7 +162,7 @@ git clone https://github.com/${YOUE_GITHUB_USER_NAME}/algorithm-template.git
162162
163163举例:[ Crzay Plan] ( https://acm.sustech.edu.cn/onlinejudge/problem.php?id=1250 ) , 输入可能有1.1* 10^6个.
164164
165- 这种情况下对这么多值进行直接的观察就很难, 所以我们预先将期望的值直接写在测试文件里, 用Catch2内置的Matcher比较(见[ test_for_lab00_B] ( ./lab_00/lab_00_B/lab_00_B_test .cpp ) 的` CHECK_THAT() ` 部分.)
165+ 这种情况下对这么多值进行直接的观察就很难, 所以我们预先将期望的值直接写在测试文件里, 用Catch2内置的Matcher比较(见[ test_for_lab00_B] ( ./lab_00/lab_00_B/test .cpp ) 的` CHECK_THAT() ` 部分.)
166166
167167PS: 当然, 这种情况也只适用于规模比较小的情况, 规模再大的话, 直接由人手动写在测试文件里也太占空间了.
168168
@@ -192,7 +192,7 @@ TEST_CASE("test case 1", "[test 00 C]") {
192192+ test case with tuple 则最优雅, 修改起来的难度最小.
193193+ test case with sequence 比tuple更优雅, 输入, 输出全为自动产生.
194194
195- PS: 此处注意, 引用文件的相对路径, 不是直接的`test/lab_00/lab_00_C/resource/01.data.in`,
195+ PS: 此处注意, 引用文件的相对路径, 不是直接的`test/lab_00/lab_00_C/resource/01.data.in`,
196196
197197而是编译出的文件相对于测试数据的相对路径.
198198
@@ -219,7 +219,7 @@ PS: 此处注意, 引用文件的相对路径, 不是直接的`test/lab_00/lab_0
219219
220220PS: 至于比较文件之间的差异, 可以使用内置的` compareFiles(string path1, string path2) ` 函数进行比较.
221221
222- 参考[ 文本比对_test_case_2] ( ./lab_00/lab_00_D/lab_00_D_test .cpp )
222+ 参考[ 文本比对_test_case_2] ( ./lab_00/lab_00_D/test .cpp )
223223
224224## Details
225225
@@ -252,11 +252,11 @@ DSAA既然内含Data structure, 就势必涉及到类似Node, Tree, Graph等等
252252### 如何手动开优化
253253
2542541 . 将[ magic_optimize] ( ./include/magic_macro/magic_macro.hpp ) 内的内容粘贴到代码最上方.
255- 2 . 关闭同步,
255+ 2 . 关闭同步,
256256
257257``` cpp
258258static const auto faster_streams = [] {
259- srand (time (nullptr));
259+ srand (time (nullptr));
260260 // use time to init the random seed
261261 std::ios::sync_with_stdio(false);
262262 std::istream::sync_with_stdio(false);
0 commit comments