测试非确定值生成器的分布统计和计时器

MonkeyScope的Python项目详细描述


Monkeyscope测试版

非确定值生成器的分配计时器

姊妹项目:

支持这些和其他随机项目:https://www.patreon.com/brokencode

快速安装

$ pip install MonkeyScope
$ python3
>>> import MonkeyScope ...

安装可能需要以下各项:

  • Python3.7或更高版本。
  • cython:pip install Cython
  • python3开发环境、设置工具等。
  • 现代C++ 17编译器和标准库。

Monkeyscope规格

  • MonkeyScope.distribution_timer(func: staticmethod, *args, **kwargs) -> None
    • 用于统计分析非确定性输出的记录器。
    • @param func::要分析的函数、方法或lambda。func(*args, **kwargs)
    • @可选_kw num_cycles=10000::用于分析的样本总数。
    • @可选的_kw post_processor=none::用于将一组大数据缩放到一组较小的分组中,以便更好地显示数据,特别是对浮点分布有用。对于quick_test()中的许多函数,使用math.floor(),对于其他函数,使用round()更为合适。对于更复杂的后处理-lambdas工作得很好。后处理只影响分布,统计和性能结果不受影响。
  • MonkeyScope.distribution(func: staticmethod, *args, **kwargs) -> None
    • 统计和分布。
  • MonkeyScope.timer(func: staticmethod, *args, **kwargs) -> None
    • 只是功能计时器。

Monkeyscope终端示例

$ python3
Python 3.7.3
>>> import MonkeyScope
>>> import random
>>> MonkeyScope.timer(random.randrange, -10000, 10000, 2)
Typical Timing: 1594 ± 34 ns

monkeyscope脚本示例

importMonkeyScopeimportrandomMonkeyScope.distribution_timer(random.randint,1,10)MonkeyScope.distribution_timer(random.randrange,1,10)MonkeyScope.distribution_timer(random.randrange,1,10,2)

典型脚本输出

Output Analysis: Random.randint(1, 10)
Typical Timing: 1375 ± 32 ns
Statistics of 1024 samples:
 Minimum: 1
 Median: 6
 Maximum: 10
 Mean: 5.5185546875
 Std Deviation: 2.8455943311882343
Distribution of 102400 samples:
 1: 10.1171875%
 2: 9.943359375%
 3: 9.9541015625%
 4: 9.8916015625%
 5: 10.1318359375%
 6: 10.0361328125%
 7: 9.8681640625%
 8: 10.16796875%
 9: 9.9052734375%
 10: 9.984375%

Output Analysis: Random.randrange(1, 10)
Typical Timing: 1219 ± 35 ns
Statistics of 1024 samples:
 Minimum: 1
 Median: 5
 Maximum: 9
 Mean: 4.9609375
 Std Deviation: 2.531992268646342
Distribution of 102400 samples:
 1: 11.0205078125%
 2: 11.2080078125%
 3: 11.16015625%
 4: 11.08203125%
 5: 11.1484375%
 6: 11.0791015625%
 7: 11.1923828125%
 8: 10.9375%
 9: 11.171875%

Output Analysis: Random.randrange(1, 10, 2)
Typical Timing: 1532 ± 36 ns
Statistics of 1024 samples:
 Minimum: 1
 Median: 5
 Maximum: 9
 Mean: 5.029296875
 Std Deviation: 2.8123316447928097
Distribution of 102400 samples:
 1: 19.984375%
 3: 19.931640625%
 5: 20.1552734375%
 7: 19.93359375%
 9: 19.9951171875%

待办事项列表:

  1. 改进文档
  2. 捏造例子
  3. 导出测试
  4. 重构初始

开发日志:

蒙基镜β0.1.4
  • 小错误修复
蒙基镜β0.1.3
  • 持续发展
蒙基镜β0.1.2
  • 重命名为monkeyscope
MonkeyTimerβ0.0.2
  • 已更改为C++编译器
MonkeyTimerβ0.0.1
  • 初始项目设置

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA:如何将持久性上下文与批量更新或删除的结果同步?   程序未激活时的java捕获击键   字符串到日期对象的java解析   LucenePDFDocument从pdfbox中消失了吗?   java解析ISO8601日期字符串到UTC时区的日期   java Android随机存取文件和文件系统缓冲区   java如何确保泛型类型的类型   mysql无法从Java中的数据库读取表中的行   spring用Java处理数百万条数据库记录   java AsyncTask正在引发InvocationTargetException   java这些集合允许null。为什么我不能添加空元素?   java无法从Android中的ftp服务器下载txt文件   Java堆栈跟踪未使用log4j2打印   java如何在Ubuntu 11.10上编译OpenJDK 7调试版本   java动态文件夹创建   在PHP和Java中使用socket   Java mxGraph中是否有可能限制单元格移动但不禁用它?   java如何找到org的路径。朱尼特?   方向更改时的java NullPointerException