红:函数还不存在

👁️ 3 人浏览 💬 0 人评论 ❤️ 添加收藏

(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。)

先写 fmt 的测试,此时还没有 fmt。运行程序,看三个数:

import io, unittest

LEN = {"m": 1.0, "km": 1000.0, "cm": 0.01}

def c_to_f(c):
    return c * 9 / 5 + 32

def length(v, src, to):
    for u in (src, to):
        if u not in LEN:
            raise ValueError("不认识的单位:" + u)
    return v * LEN[src] / LEN[to]

def run(*cases):
    suite = unittest.TestSuite()
    for c in cases:
        suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(c))
    r = unittest.TextTestRunner(stream=io.StringIO()).run(suite)
    return str(r.testsRun) + "/" + str(len(r.failures)) + "/" + str(len(r.errors))

class TestFmt(unittest.TestCase):
    def test_strip_zero(self):
        self.assertEqual(fmt(37.0), "37")
    def test_two_places(self):
        self.assertEqual(fmt(1609.344), "1609.34")

print(run(TestFmt))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论