"""任务 6 · 提交前的两个搜索与一次逐字比对

同一道题在这门课里要跑两条路：自测的时候你在本机跑，提交的时候评测机跑。
两条路的接口是同一个 —— 标准输入与标准输出。所以自测的做法是把样例存成文件，
再把这个文件接到标准输入上：

    Get-Content sample1.in -Raw | py 你的程序.py

这一份要做的是**提交前的动作**，三件事：

  1. 交出来之前，把调试用的 print 全删掉（那些打印数据结构、长度、pos 的行）；
  2. 搜 input( ：括号里凡是写了东西的，删掉；
  3. 拿样例输入跑一遍，把标准输出与题面样例**逐字**对一遍（包括空格与换行）。

TODO 1 要写一个真的会做第 3 件事的检查：给它「实际输出」与「期望输出」两段文本，
它交回 True / False。判分会拿它试好几组，其中一组**只差一个末尾换行**，
另一组**只差一个空格** —— 两个都要被抓出来（逐字比对就是这个意思）。

带 print 的行是判分接口，别改；要写的是标着 TODO 的那几段。

跑： py task6_submit_check.py
判： py run_tests.py
"""

import sys


# ══ TODO 1 ══════════════════════════════════════════════════
# 逐字比对两段输出。别用 strip() 把两边的空白都抹掉 —— 那样「末尾多一个换行」
# 与「行尾多一个空格」就抓不出来了。
# 提示：要放过的是「文本文件末尾最后那个换行」这一个约定，不是所有空白：
#      把两边都按 splitlines() 切成行列表再比，行内与行数的差别都会保留下来。
#      两边都用 splitlines() 之后，'78\n' 与 '78' 都切出 ['78']（这是要放过的），
#      而 '78\n' 与 '78 ' 切出 ['78'] 与 ['78 ']（这是要抓的）。
def same_output(actual, expected):
    """逐字相同交回 True（判分接口，名字与参数别改）。"""
    return False


# ══ TODO 2 ══════════════════════════════════════════════════
# 交出「提交前要搜的两个关键词」：一个是会把提示写进标准输出的读入调用，
# 一个是打印本身。判分拿它们去搜你的代码，看那两处检查有没有落到手上。
# 提示：就是课件里那两条规矩对应的两个函数名加左括号，写成字符串。
def search_terms():
    """交回两个字符串的列表（判分接口，名字别改）。"""
    return []


# ── 给好的（别改）：自检的三个用例，判分会另加几组 ────────────────────────
print('01 完全相同', same_output('78\n', '78\n'))          # 别改：期望 True
print('02 末尾换行', same_output('78\n', '78'))            # 别改：期望 True（文件末尾那一个）
print('03 行尾多空格', same_output('78 \n', '78\n'))        # 别改：期望 False（逐字比对抓它）
print('04 少一行', same_output('78\n', '78\n79\n'))        # 别改：期望 False
print('05 搜两个关键词', search_terms())                    # 别改：期望 ['input(', 'print(']
