কীভাবে সহজেই নিজের কোড ব্যবহার করে আমার নিজস্ব নিবন্ধগুলিতে প্রকাশিত ফলাফলগুলি পুনরুত্পাদন করতে হয়


15

আমি একটি প্রোগ্রাম / গ্রন্থাগার লিখেছিলাম যা আমি একটি নিবন্ধে ফলাফল পেতে ব্যবহার করতাম। (এখানে এটা হয় , কিন্তু আমার প্রশ্ন সাধারণ।) আমি পরীক্ষার যে আমি নিয়মিতভাবে ব্যবহার করে চালানো আছে ctest(এটি চালানোর জন্য কয়েক মিনিট সময় লাগে)। নিবন্ধে কিছু সারণী বা চিত্র পুনরুত্পাদন করার জন্য, আমাকে একটি স্ক্রিপ্ট বা একটি সহজ ড্রাইভার প্রোগ্রাম তৈরি করতে হবে, যা সম্ভবত 10 মিনিট, কখনও কখনও আরও বেশি সময় চালায়, তাই আমি নিয়মিত পরীক্ষার স্যুটটির এই অংশটি রাখতে চাই না। একই সাথে, আমি নিবন্ধের ফলাফলগুলি হতে পারে তা নিশ্চিত করতে চাই:

  • পরে পুনরুত্পাদন
  • আমি গ্রন্থাগারের বিকাশ চালিয়ে যাওয়ার পরে তারা এখনও একই / সঠিক ফলাফল দেয় তা নিশ্চিত করুন

বর্তমানে আমি একটি ছোট ড্রাইভার প্রোগ্রাম রাখার চেষ্টা করি যা আমি নিয়মিত পরীক্ষার স্যুটটির অংশ হিসাবে চালিত করি এবং যদি আমি নিবন্ধ থেকে ফলাফলগুলি পুনরায় প্রকাশ করতে চাই, তবে আমি সেখানে কিছু লাইনকে সংবিধানিত করছি। অবশ্যই, আমি কখনই জানি না কোন নিখুঁত রেখাগুলি এবং নিবন্ধের মতো সঠিকভাবে একই ফলাফল পেতে আমাকে যদি কিছু অন্যান্য পরামিতিগুলি টুইট করতে হয় তবে।

আমি পাইথন স্ক্রিপ্টও চেষ্টা করেছি যা নিবন্ধ থেকে সঠিক চিত্র / সারণী গণনা করে। এই ধরনের স্ক্রিপ্ট সাধারণত গ্রন্থাগারের আপডেটের পরে কাজ করা বন্ধ করে দেয় কারণ এটি নিয়মিত ভিত্তিতে চালিত হচ্ছে না (খুব বেশি সময় নেয়)।

আমার কাছে সবচেয়ে ভাল পদ্ধতিটি হ'ল একটি ফোর্টরান (বা সি / সি ++) উদাহরণ থাকা, যা নিয়মিত সংকলিত হবে (গ্রন্থাগারের অংশ হিসাবে), তবে নিয়মিত পরীক্ষার স্যুটে চালানো হবে না। এইভাবে, কমপক্ষে আমি জানি যে এটি সূক্ষ্মভাবে সংকলন করে (এবং আশা করি এটিও চালায়)। এবং আমি নিয়মিত টেস্ট স্যুটটির অংশ হিসাবে কিছু সাধারণ (ছোট) উদাহরণ পরীক্ষা করব।

এই সমস্যাটি পরিচালনা করার সর্বোত্তম উপায়গুলি কী কী?


2
দুর্দান্ত প্রশ্ন, আমার প্রথম প্রতিক্রিয়াটি হ'ল আপনার পরীক্ষাগুলিকে দ্রুত রিগ্রেশনগুলিতে ভাগ করা উচিত যা দ্রুত চালানো যায় এবং প্রতিটি প্রতিশ্রুতিবদ্ধতা এবং দীর্ঘতর রিগ্রেশনগুলির আগে সম্পাদন করা হয় যা আপনি অবিচ্ছিন্ন ইন্টিগ্রেশন প্রচেষ্টার অংশ হিসাবে ব্যবহার করতে চান। আপনি কি বিশেষত সেই পরিস্থিতিতে রয়েছেন যেখানে আপনি কেবল পূর্বের বিভিন্ন জাতের পরীক্ষা করেছেন এবং এখনও সেগুলি ভাগ করেননি?
অ্যারন আহমদিয়া

আমার কাছে প্রচুর পরীক্ষা রয়েছে যা দ্রুত চলে, এখানে দেখুন: github.com/certik/hfsolver/tree/master/src/tests , তবে আমি নিবন্ধের আসল গণনাগুলি পরিচালনা করতে জানি না (উদাহরণস্বরূপ প্রতিটি টেবিলের জন্য 10 মিনিট) / ফিগার সহজে কয়েক ঘন্টা দেয়)
ওঁদেজ এর্তিক

2
অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভার ব্যবহার করে রাতে (বা সাপ্তাহিক, মাসিক ইত্যাদি) স্বয়ংক্রিয়ভাবে দীর্ঘ পরীক্ষা চালান। যেহেতু আপনাকে ফলাফল ছাড়া আর কোনও বিষয়ে মনোযোগ দিতে হবে না, তাই তারা কতক্ষণ সময় নেয় সেদিকে খেয়াল রাখবেন না।
ডেভিড কেচসন

উত্তর:


6

ডিল.আইআইতে, আমাদের একটি টেস্টসুইট রয়েছে যা নিয়মিত ইউনিক্স মেকফিল দ্বারা চালিত হয়। এটির একটি ডিফল্ট লক্ষ্য রয়েছে যা সমস্ত সাধারণ পরীক্ষা চালায় এবং ব্যয়বহুল পরীক্ষার জন্য একটি পৃথক লক্ষ্য। প্রতিটি পরীক্ষা চালানো জেনেরিক নিয়ম ব্যবহার করেই করা হয় তবে ডিফল্ট টার্গেট জেনেরিক নিয়মটিকে কেবলমাত্র কয়েকটি পরীক্ষার জন্য কল করে এবং ব্যয়বহুল লক্ষ্য ব্যয়বহুল পরীক্ষাগুলির জন্য ডাকে। যেহেতু এগুলি সমস্ত একটি জেনেরিক নিয়ম ব্যবহার করে সম্পন্ন হয়েছে, এটি অবশ্যই কোনও নির্দিষ্ট সময়ে আপডেট হতে হবে; যা পুরানো হতে পারে তা কেবল পরীক্ষার নামগুলির তালিকা হতে পারে।

আপডেট: উপরের পাঠ্যটি ২০১২ সালে সঠিক ছিল 2014 ২০১৪ সাল থেকে, চুক্তি I.আই টেস্টুইটটি সিটিস্টের উপর ভিত্তি করে তৈরি করা হয়েছে, তবে সাধারণ ধারণাটি বৈধ থাকে।


ধন্যবাদ! এখানে ডক্সের লিঙ্কটি রয়েছে: dealii.org/7.2.0/de વિકાસment /testsuite.html#regression_tests এবং এখানে "সাধারণ পরীক্ষার" ফলাফল: dealii.org/cgi-bin/regression_quick.pl এবং এখানে "ব্যয়বহুল পরীক্ষা": dealii.org/cgi-bin/regression.pl , আমি কি এটি সঠিক পেয়েছি? সুতরাং আপনি প্রতিটি সংশোধনীতে "সাধারণ পরীক্ষা" চালান এবং "ব্যয়বহুল পরীক্ষা" প্রতি সংশোধনীর প্রতিটি দম্পতি?
ওঁদেজের্তিক

বেশ না। ব্যয়বহুল পরীক্ষার ফলাফলগুলি সাধারণত ওয়েবসাইটে পোস্ট করা হয় না।
ওল্ফগ্যাং ব্যাঙ্গার্থ

সুতরাং আপনি তাদের ম্যানুয়ালি চালানো যাক প্রতিটি প্রকাশের আগে বলুন? তারা চালাতে কত সময় নেয়? আমি আপনার পদ্ধতির পছন্দ।
ওঁদেজের্তিক

1
হ্যাঁ, ম্যানুয়ালি প্রতি একবারে একবারে, নিশ্চিত হয়ে প্রকাশের আগে। কিছু প্রকল্পের জন্য তারা এক ঘন্টা বা তার বেশি সময় নেয় তবে তারা গ্রন্থাগারের কেবলমাত্র একটি ছোট্ট অংশের পরীক্ষা করে (তারা বেশিরভাগ ক্ষেত্রে অ্যাড-অন প্রকল্পগুলি ডিল করার জন্য পরীক্ষা করে I
ওল্ফগ্যাং ব্যাঙ্গার্থ

আপনার কি এমন কোনও সমান্তরাল পরীক্ষা আছে যা কেবলমাত্র সুপার কম্পিউটারগুলিতেই চলতে পারে, উদাহরণস্বরূপ, এর বিপরীতে বড় আকারের কোনও পরীক্ষা p4est?
অ্যারন আহমদিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.