Cyaron项目v0.7.0版本发布:测试数据生成工具再升级

Cyaron项目v0.7.0版本发布:测试数据生成工具再升级

【免费下载链接】cyaron CYaRon: Yet Another Random Olympic-iNformatics test data generator 【免费下载链接】cyaron 项目地址: https://gitcode.com/gh_mirrors/cy/cyaron

Cyaron是一个强大的测试数据生成工具,主要用于算法竞赛和编程题目测试用例的生成。它提供了丰富的API来生成各种数据结构、数学对象和随机数据,极大简化了出题人创建测试用例的工作。本次发布的v0.7.0版本带来了多项功能增强和问题修复,进一步提升了工具的稳定性和易用性。

核心功能更新

随机数种子控制

新版本增加了通过参数初始化随机数种子的功能。这一改进使得测试数据的生成过程更加可控和可复现。开发者现在可以通过设置特定的随机数种子,确保每次生成的测试数据完全一致,这对于调试和验证算法行为特别有价值。

# 示例代码:使用特定种子初始化随机数生成器
from cyaron import *
seed = 12345
Compare.program("a.out", input=Generator(lambda: {
    "n": 100,
    "data": [randint(1, 100) for _ in range(100)]
}, seed=seed))

图论数据结构增强

本次更新在图论数据结构生成方面有两项重要改进:

  1. 基于度数序列生成图:现在可以根据给定的度数序列生成对应的图结构,这为测试特定类型的图算法提供了便利。
# 示例:生成满足特定度数序列的图
degree_sequence = [2, 2, 2, 2]  # 4个节点,每个度数为2
graph = Graph.graph(degree_sequence=degree_sequence)
  1. 随机森林生成:新增了生成随机森林的功能,可以方便地创建无环图结构,适用于测试树和森林相关算法。
# 示例:生成包含5棵树的森林,总节点数为20
forest = Graph.forest(5, 20)

稳定性与易用性改进

输出处理优化

解决了通过output_gen生成输出文件时的换行符问题,确保在不同操作系统环境下生成的测试文件格式一致。同时新增了清空文本内容的功能,使得测试文件的动态构建更加灵活。

# 示例:IO对象的新功能使用
io = IO()
io.input_write("初始内容")
io.clear()  # 清空内容
io.input_write("新内容")

子进程管理增强

修复了子进程超时后可能无法正确终止的问题,提高了长时间运行测试时的系统稳定性。这一改进特别针对那些可能陷入无限循环的待测程序,确保测试框架能够可靠地回收资源。

路径自动创建

IO对象现在支持在找不到路径时自动创建文件夹,简化了文件操作流程,减少了因路径不存在导致的错误。

# 示例:自动创建不存在的目录
io = IO(file_prefix="testdata/new_folder/", data_id=1)
# 如果new_folder不存在,将自动创建

其他改进

  • 修复了vector生成可重复序列时可能报错的问题,提高了数据生成的可靠性
  • 优化了随机数生成器的内部实现,确保各种随机数据生成函数的一致性

总结

Cyaron v0.7.0版本通过新增多项实用功能和修复关键问题,进一步巩固了其作为算法竞赛测试数据生成首选工具的地位。特别是图论数据生成能力的增强和随机数种子的支持,为出题人提供了更强大的工具集。这些改进使得生成复杂、多样化的测试数据变得更加简单和可靠,有助于创建更全面的测试用例集,从而提高算法题目的质量。

【免费下载链接】cyaron CYaRon: Yet Another Random Olympic-iNformatics test data generator 【免费下载链接】cyaron 项目地址: https://gitcode.com/gh_mirrors/cy/cyaron

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值