"""
测试递归函数
"""
import sys
import io

# 设置UTF-8编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')

sys.path.insert(0, 'g:/codeartswork/newlisp')

from repl import REPL

repl = REPL()

print("\n" + "="*60)
print("【文言心】递归函数测试")
print("="*60)

# 测试1:阶乘函数
print("\n测试1:阶乘函数")
print("-" * 40)
code1 = """定义函数
  函数名为阶乘。
  参数为n。
  若n等1则返回1。
  否则返回n乘阶乘n减1。
函数结束

印阶乘5。"""
print(f"代码:\n{code1}")
print("-" * 40)
result1 = repl.execute(code1)
print(f"结果: {result1}")

# 测试2:累加函数
print("\n\n测试2:累加函数")
print("-" * 40)
code2 = """定义函数
  函数名为累加。
  参数为n。
  若n等0则返回0。
  否则返回n加累加n减1。
函数结束

印累加10。"""
print(f"代码:\n{code2}")
print("-" * 40)
result2 = repl.execute(code2)
print(f"结果: {result2}")

print("\n" + "="*60)
print("递归函数测试完成!")
print("="*60)