বেশিরভাগ অপ্টিমাইজেশন অ্যালগরিদম (হিউরিস্টিক্স সহ) কিছু ক্রিয়াকলাপগুলিতে কাজ করে (আপনার উদাহরণে একটি রুট) তাদের উপর ক্রিয়াকলাপ প্রয়োগ করে। নিজের জন্য অপারেশনগুলির গ্যারান্টি দেওয়া উচিত যে তারা কেবল বৈধ কনফিগারেশন সরবরাহ করে, তাই প্রথমে তাদের প্রত্যেকটির জন্য ইউনিট পরীক্ষা করা উচিত। যখন আপনি নিশ্চিতভাবে জানেন যে অপ্টিমাইজেশন অ্যালগরিদম কেবলমাত্র সেই ক্রিয়াকলাপগুলি ব্যবহার করে, সাধারণত অ্যালগরিদমের ফলাফলের বৈধতা পরীক্ষার প্রয়োজন হবে না।
যে কোনও ধরণের জটিল অ্যালগরিদমের জন্য ভাল ইউনিট টেস্ট তৈরি করতে আসলে একজনকে আসলে অ্যালগরিদম নিজেই বিস্তারিত জানতে হবে । "পাহাড়ী আরোহণ" এর মতো সাধারণ হিউরিস্টিকের জন্য আপনি সাধারণত ছোট ইনপুটগুলির ফলাফলের পূর্বাভাস দিতে পারেন। উদাহরণস্বরূপ, 3 থেকে 5 পয়েন্টের প্রাথমিক রুটের জন্য, যখন একটি নির্দিষ্ট ক্রমে দেওয়া হয়, আপনি ভবিষ্যদ্বাণী করতে পারেন কী হবে। আমি জানি বেশিরভাগ নির্বিচারবাদী হিউরিস্টিক অ্যালগরিদমের ক্ষেত্রে এটি সত্য থাকবে, সুতরাং এটি সম্ভবত একটি ভাল জায়গা শুরু করার জন্য।
আরও জটিল অ্যালগরিদম এবং বড় আকারের ইনপুটগুলির জন্য, আপনি যখন কেবলমাত্র অ্যালগরিদমে ইনপুটটি খাওয়ান এবং আউটপুট পরীক্ষা করার চেষ্টা করেন, আপনি আসলে আর কোনও ইউনিট পরীক্ষা করছেন না, আপনি গ্রহণযোগ্যতা বা ইন্টিগ্রেশন পরীক্ষা করছেন। আপনার যেমন "ইউনিট টেস্ট" এ জাতীয় আলগোতে সমস্যা হওয়ার কারণ হ'ল এটি সাধারণত কয়েকটি মুখ্য অংশ (স্বতন্ত্র ইউনিট) নিয়ে থাকে। সুতরাং এই জাতীয় অ্যালগরিদমের সত্যিকারের ইউনিট পরীক্ষার জন্য আপনাকে সেই অংশগুলি সনাক্ত করতে হবে এবং পৃথকভাবে সেগুলি পরীক্ষা করতে হবে। অতিরিক্ত, আপনি পর্যাপ্ত পরীক্ষার কেস রয়েছে তা নিশ্চিত করতে আপনি কোড কভারেজ বা শাখা কভারেজ কৌশলগুলি ব্যবহার করতে পারেন।
আপনি যদি ইউনিট-পরীক্ষার সন্ধান করছেন না, তবে স্বয়ংক্রিয়ভাবে গ্রহণযোগ্যতা বা ইন্টিগ্রেশন টেস্টগুলি খুঁজছেন, আপনি @ ফিলিপটি (2) বা (3) এর অধীনে কি প্রস্তাব করেছেন তা চেষ্টা করতে পারেন ।