3
受Nick Johnson的博客Damn Cool Algorithms: Fountain Codes的啓發,我決定去實施一個Luby Transform (LT) code。我剛把它推到GitHub;它是用Python 3編寫的。如何測試我的LT代碼實現?
我使用一個非常短的文件組成的非常短的文件開發它,它只是「hello」,並在隨機生成的1MB文件上進行了測試。該軟件似乎有效地對文件進行編碼和解碼,只有原始文件的長度,塊編碼和液滴在編碼器和解碼器之間共享。
問題是,我該如何證明這確實是LT代碼的忠實實施?我如何證明解碼算法是有效的?
這是我的意圖是使用的液滴被Python的計數引用系統刪除。 如何檢查這確實發生?
對代碼本身的任何反饋也是受歡迎的,雖然它可能更適合作爲評論(而不是回答)或GitHub上的問題。
儘管[此參考問題](http://stackoverflow.com/questions/5207101/how-do-you-prove-a-function-works)不是特定於你的,但它可能會有所幫助。 –
關於參考計數我認爲你根本不能。首先,python語言可能經過了很好的測試,所以不應該有很多內存泄漏。其次,它高度依賴於版本(在X.Y中發現的內存泄漏,將在下一次釋放中修復)。 通常情況下,您只需將語言看作「完美」即可。除了已知的錯誤,我會說。順便說一句,即使試圖用匯編語言證明某些東西也不行,因爲硬件可能有錯誤,所以它是一個限制,你不能完全刪除。 – Bakuriu
@Bakuriu感謝您的回答。我沒有試圖證明沒有內存泄漏,而是當我認爲它們應該是被刪除的對象時。 –