Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何测试LT代码的实现?_Python_Testing - Fatal编程技术网

Python 如何测试LT代码的实现?

Python 如何测试LT代码的实现?,python,testing,Python,Testing,受Nick Johnson博客的启发,我决定尝试实现一个新的应用程序。我只是把它推到一边;它是用Python 3编写的 我使用一个很短的文件开发了它,其中只包含“hello”,并在随机生成的1MB文件上进行了测试。软件似乎可以有效地编码和解码文件,只有原始文件的长度、块大小以及编码器和解码器之间共享的液滴 问题是,我应该如何证明这确实是LT代码的忠实实现?如何证明解码算法是有效的? 我的意图是用Python的计数引用系统删除使用过的水滴如何检查这是否确实发生? 关于代码本身的任何反馈也是受欢迎的

受Nick Johnson博客的启发,我决定尝试实现一个新的应用程序。我只是把它推到一边;它是用Python 3编写的

我使用一个很短的文件开发了它,其中只包含“hello”,并在随机生成的1MB文件上进行了测试。软件似乎可以有效地编码和解码文件,只有原始文件的长度、块大小以及编码器和解码器之间共享的液滴

问题是,我应该如何证明这确实是LT代码的忠实实现?如何证明解码算法是有效的?

我的意图是用Python的计数引用系统删除使用过的水滴如何检查这是否确实发生?


关于代码本身的任何反馈也是受欢迎的,尽管它可能更适合作为注释(而不是答案)或GitHub上的问题。

如果您只想查看引用计数是否有效,您可以在类中定义
\uu del\uu
方法。请注意,这将阻止循环GC在这些类上工作

另一种方法是查看对类的refcount的更改,因为每个实例都持有对该类的引用

>>> from sys import getrefcount
>>> class Obj(object):
...  pass
... 
>>> sys.getrefcount(Obj)
5
>>> obj_list=[Obj() for x in range(5)]
>>> sys.getrefcount(Obj)
10
>>> obj_list[:3]=[]
>>> sys.getrefcount(Obj)
7

虽然不是针对你的,但可能会有帮助。关于推荐数量,我想你根本不能。首先,python语言可能经过了良好的测试,因此不会有太多内存泄漏。其次,它高度依赖于版本(在X.Y中发现的内存泄漏将在下一个版本中修复)。通常你只是简单地认为这门语言是“完美的”。除了已知的虫子,我会说。顺便说一下,即使试图用汇编语言证明某些东西也行不通,因为硬件可能有错误,所以这是一个无法完全消除的限制。@Bakuriu谢谢你的回答。我并不是想证明没有内存泄漏,而是在我认为应该删除的时候删除了对象。你能告诉我一个地方,在那里LT代码是用C实现的吗?我在网上找不到消息来源