计算原理课堂笔记(二)

计算原理课堂笔记(二)

关于测试: And so the best piece of advice I have about testing is the following. Don’t write your code and then test. Write a little bit of code. Test. Write a little bit of code. Test. Write a little bit of code.

这里写图片描述
测试模块poc_simpletest

<python>
"""
Test suite for format function in "Stopwatch - The game"
"""

import poc_simpletest

def run_suite(format_function):
    """
    Some informal testing code
    """

    # create a TestSuite object
    suite = poc_simpletest.TestSuite()

    # test format_function on various inputs
    suite.run_test(format_function(0), "0:00.0", "Test #1:")
    suite.run_test(format_function(7), "0:00.7", "Test #2:")
    suite.run_test(format_function(17), "0:01.7", "Test #3:")
    suite.run_test(format_function(60), "0:06.0", "Test #4:")
    suite.run_test(format_function(63), "0:06.3", "Test #5:")
    suite.run_test(format_function(214), "0:21.4", "Test #6:")
    suite.run_test(format_function(599), "0:59.9", "Test #7:")
    suite.run_test(format_function(600), "1:00.0", "Test #8:")
    suite.run_test(format_function(602), "1:00.2", "Test #9:")
    suite.run_test(format_function(667), "1:06.7", "Test #10:")
    suite.run_test(format_function(1325), "2:12.5", "Test #11:")
    suite.run_test(format_function(4567), "7:36.7", "Test #12:")
    suite.run_test(format_function(5999), "9:59.9", "Test #13:")

    suite.report_results()
<python>

run_suite()函数封装了测试模板,编写测试集的测试代码

<python>
"""
Format function for a stopwatch
"""

import poc_format_testsuite

def stopwatch_format(ticks):
    """
    Convert tenths of seconds to formatted time
    """

    minutes = ticks // 600
    # minutes = ticks // 60
    tens_seconds =  (ticks // 100) % 6
    seconds = (ticks // 10) % 10
    tenths = ticks % 10
    return str(minutes) + ':' + str(tens_seconds) + \
           str(seconds) + '.' + str(tenths)

# run the testing suite for our format function
poc_format_testsuite.run_suite(stopwatch_format)
<python>

import poc_format_testsuite导入测试代码

<python>
# Create a rectangular grid using nested list comprehension 
# Inner comprehension creates a single row
EXAMPLE_GRID = [[row + col for col in range(GRID_WIDTH)]
                           for row in range(GRID_HEIGHT)]
<python>



<python>
    my_game = SolitaireMancala()
print "Testing init - Computed:", my_game, "Expected: [0]"

config1 = [0, 0, 1, 1, 3, 5, 0]    
my_game.set_board(config1)   

print "Testing set_board - Computed:", str(my_game), "Expected:", str([0, 5, 3, 1, 1, 0, 0])
<python>

my_gamestr(my_game)返回值相同

Third, to import a GUI that can be used to visualize your program in action. Again, these imports will typically consist of two statements; one that imports the module containing the GUI and a second that runs the GUI using an instance of the class defined in your mini-project. For example, you can import and run the GUI for Solitaire Mancala using the statements\

<python>
import poc_mancala_gui
poc_mancala_gui.run_gui(SolitaireMancala())
<python>

导入模块,然后调用模块中的函数。

<python>
cells = [ [... for col in range(grid_width)] for row in range(grid_height)]
<python>

列表解析
Note that if row or col are not used in the expression …, Pylint will warn that these variables are unused. To avoid this warning, you can rename these variables to dummy_row and dummy_col to alert Pylint that these variables are intentionally unused. This renaming will suppress the warning.
如果row和col在 中未使用,应重命名为dummy_row和dummy_col

这里写图片描述
So if you do it this, you can use the offsets dictionary and then you can create a dictionary of initial tiles. You can actually create all of the lines that you would need to merge for any direction, so that when you get into the move function you just look them up in a dictionary. You don’t have to have this if dir is LEFT or if it’s RIGHT or, and so on, okay?
使用偏置字典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值