log = print
def ensure(condition, message):
    if condition:
        log('*** 测试成功')
    else:
        log('*** 测试失败:', message)

def sum(number_list):
    s = 0
    for i in range(len(number_list)):
        n = number_list[i]
        s = s + n
    return s

def minus(number_list):
    r = number_list[0]
    for i in range(1,len(number_list)):
        r = r - number_list[i]
    return r

def product(number_list):
    r = 1
    for e in number_list:
        r = r * e
    return r

def divide(number_list):
    r = number_list[0]
    for i in range(1,len(number_list)):
        r = r / number_list[i]
    return r

def apply_list(op,number_list):
    if op == '+':
        r = sum(number_list)
        return r
    if op == '-':
        r = minus(number_list)
        return r
    if op == '*':
        r = product(number_list)
        return r
    if op == '/':
        r = divide(number_list)
        return r

def test_apply_list():
    ensure(apply_list('+', [1, 2, 3, 4]) == 10, 'apply list 111')
    ensure(apply_list('-', [1, 2, 3, 4]) == -8, 'apply list 222')
    ensure(apply_list('*', [1, 2, 3, 4]) == 24, 'apply list 333')
    ensure(apply_list('/', [12, 2, 3]) == 2, 'apply list 444')
    log('$$$ apply_list 测试完成')

test_apply_list(

log = print
def ensure(condition, message):
    if condition:
        log('*** 测试成功')
    else:
        log('*** 测试失败:', message)

def apply_compare(expression):
    op = expression[0]
    if op == '>':
        return expression[1] > expression[2]
    elif op == '<':
        return expression[1] < expression[2]
    elif op == '==':
        return expression[1] == expression[2]
    else:
        log('非法字符',op)

def test_apply_compare():
    ensure(apply_compare(['<', 1, 2]), 'apply compare 1')
    ensure(apply_compare(['>', 2, 1]), 'apply compare 2')
    ensure(apply_compare(['==', 2, 2]), 'apply compare 3')
    ensure(apply_compare(['===', 2, 2]), 'apply compare 4')
    log('$$$ apply_compare 测试完成')

test_apply_compare()

log = print
def ensure(condition, message):
    if condition:
        log('*** 测试成功')
    else:
        log('*** 测试失败:', message)

def sum(number_list):
    s = 0
    for i in range(len(number_list)):
        n = number_list[i]
        s = s + n
    return s

def minus(number_list):
    r = number_list[0]
    for i in range(1,len(number_list)):
        r = r - number_list[i]
    return r

def product(number_list):
    r = 1
    for e in number_list:
        r = r * e
    return r

def divide(number_list):
    r = number_list[0]
    for i in range(1,len(number_list)):
        r = r / number_list[i]
    return r

def apply_compare(expression):
    op = expression[0]
    if op == '>':
        return expression[1] > expression[2]
    elif op == '<':
        return expression[1] < expression[2]
    elif op == '==':
        return expression[1] == expression[2]
    else:
        log('非法字符',op)

def apply_list2(op_list):
    op = op_list[0]
    if op == '+':
        return sum(op_list[1:])
    if op == '-':
        r = minus(op_list[1:])
        return r
    if op == '*':
        r = product(op_list[1:])
        return r
    if op == '/':
        r = divide(op_list[1:])
        return r

def apply_ops(expression):
    op = expression[0]
    if op == '+' or op == '/' or op == '*':
        return apply_list2(expression)
    else:
        return apply_compare(expression)

def test_apply_ops():
    ensure(apply_ops(['<', 1, 2]) , 'apply ops 1')
    ensure(apply_ops(['+', 1, 2, 3, 4]) == 10, 'apply ops 2')
    log('$$$ apply_ops 测试完成')

test_apply_ops()

4 条评论

  • 1