প্রকল্প সম্পর্কে

Hypothesis হলো Python-এর জন্য একটি প্রপার্টি-ভিত্তিক টেস্টিং লাইব্রেরি। নির্দিষ্ট ইনপুট দিয়ে টেস্ট লেখার বদলে, ডেভেলপাররা একটি ফাংশন যে ধরনের ইনপুট পরিচালনা করা উচিত তার পরিসীমা বর্ণনা করেন, এবং Hypothesis সেই পরিসীমা থেকে র্যান্ডমভাবে টেস্ট কেস তৈরি করে—যার মধ্যে ডেভেলপার যেসব এজ কেস পূর্বে ভাবেননি সেগুলোও অন্তর্ভুক্ত থাকে। মূল কর্মপ্রবাহে @given ডেকোরেটর এবং একটি strategies মডিউল ব্যবহার করা হয়। উদাহরণস্বরূপ, একটি টেস্ট @given(st.lists(st.integers())) হিসেবে লেখা যেতে পারে, যাতে স্বয়ংক্রিয়ভাবে পূর্ণসংখ্যার তালিকা তৈরি হয় এবং যাচাই করা যায় যে একটি কাস্টম sort ফাংশন Python-এর অন্তর্নির্মিত sorted()-এর সাথে মিলে যায়। এই পদ্ধতি এমন বাগ ও এজ কেস ধরে ফেলে যা হাতে লেখা টেস্ট কেসে মিস হয়ে যেত। Hypothesis যখন একটি ব্যর্থ টেস্ট খুঁজে পায়, তখন এটি কোনো ইচ্ছামতো ব্যর্থ ইনপুট রিপোর্ট করে না। বরং, এটি ব্যর্থ কেসটিকে সম্ভাব্য সবচেয়ে সরল কেসে সংকুচিত করে, যা ডিবাগিংকে উল্লেখযোগ্যভাবে সহজ করে তোলে। উদাহরণস্বরূপ, যদি একটি sort ফাংশন ভুলভাবে ইনপুট ডিডুপ্লিকেট করে, Hypothesis একটি বড় র্যান্ডম তালিকার বদলে ls=[0, 0]-এর মতো ন্যূনতম ব্যর্থ কেস রিপোর্ট করে। ইনস্টলেশন সহজ, pip install hypothesis-এর মাধ্যমে। অতিরিক্ত কার্যকারিতার জন্য ঐচ্ছিক extras পাওয়া যায়। প্রকল্পটিতে ডকুমেন্টেশন, একটি ওয়েবসাইট এবং অবদানকারী ও ব্যবহারকারীদের জন্য একটি কমিউনিটি বিভাগ রয়েছে।