একটি বিবৃতি যা কিছু সত্য কিনা এবং যদি প্রদত্ত ত্রুটি বার্তাটি প্রিন্ট করে না এবং প্রস্থান করে তা পরীক্ষা করে
উত্তর:
stopifnot()
বৈধতা পরীক্ষার জন্য ব্যবহার করুন , কোডটি যা করছিল তা যা করছে তা if (blahdiblah) stop("error message")
পরীক্ষা করার জন্য , তবে ইনপুট পরীক্ষার জন্য, প্রোগ্রামটির ইনপুটটি বৈধ কিনা তা পরীক্ষা করে। সাধারণ ব্যবহারের সময় কেবলমাত্র দ্বিতীয়টি হওয়া উচিত।
assertthat
প্যাকেজটিও দেখুন, যা এর চেয়ে আরও ভাল উত্তর stopifnot
দেয়: github.com/hadley/assertthat
@ নিক:
আপনি যদি আপনার প্রোগ্রামটিতে ত্রুটি ছুঁড়ে দেবে এমন শর্তটি পরীক্ষা করতে বর্ণনামূলক নামের সাথে কোনও ফাংশন লিখেন তবে আপনি নিজের ত্রুটি বার্তাটি নিয়ন্ত্রণ করতে পারেন। এখানে একটি উদাহরণ:
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
এটি 1 থেকে 8 নম্বর মুদ্রণ করবে, তারপরে একটি বার্তা মুদ্রণ করবে says
Error: Less_Than_8(i) is not TRUE
যদি বন্ধনীর "i" পরীক্ষায় ব্যর্থ হয় এমন মান দিয়ে প্রতিস্থাপন করা হয় তবে আপনি যা প্রদান করেন তা পেলে ভাল লাগবে।
আপনার যদি এর চেয়ে বেশি কল্পিত কিছু প্রয়োজন হয়, হারলানের পরামর্শ অনুসারে রুনিট এবং টেস্টথটি দেখুন।
stopifnot()
।
stop
কমান্ড দিয়ে এটি অর্জন করা যেতে পারে । এই কমান্ডটি একটি ক্রিয়াকলাপের কার্য সম্পাদন বন্ধ করবে এবং ত্রুটি বার্তাটি প্রিন্ট করবে। উদাহরণস্বরূপ, আমরা যদি পরিবর্তনশীল পরীক্ষা করতে পারেন something
হয় FALSE
:
if(something == FALSE){
stop("error message to print")
}
একইভাবে, warning
কমান্ডটি একটি সতর্কতা মুদ্রণ করবে (তবে কোডটি চালানো চালিয়ে যাবে)।
if(something == FALSE){
warning("error message to print")
}
এগুলি উভয়ই বেস আর দ্বারা সরবরাহ করা হয় এবং চালানোর জন্য কোনও প্যাকেজ প্রয়োজন হয় না বা আপনার নিজস্ব ফাংশন লেখার অন্তর্ভুক্ত থাকে। আমি কম নির্ভরশীলতার সাথে কোড লিখতে এই পদ্ধতির পছন্দ করি এবং এই বাক্য গঠনটি প্যাকেজ বিকাশে ব্যাপকভাবে ব্যবহৃত হয়। তবে, assert_that
হ্যাডলির "পরিশ্রম" এর অংশ হিসাবে সম্প্রতি প্রকাশিত ফাংশনটির সাথে "অ্যাসেটর্যাট" প্যাকেজ দ্বারা অনুরূপ কার্যকারিতা সমর্থন করে ।