আমি কয়েকটি ফাইল ফর্ম্যাট নিয়ে একটি প্রকল্পে কাজ করছি। কিছু ফর্ম্যাটগুলি .xsds দ্বারা নির্দিষ্ট করা হয়, অন্যরা তাদের নিজ নিজ ওয়েবসাইটে ডকুমেন্টেশন দ্বারা, এবং কিছু কাস্টম ইন হাউস ফর্ম্যাটগুলির কোনও ডকুমেন্টেশন নেই। Mwahahahaha।
সমস্যা কি?
আমি আমার ফাইল পাঠকদের পরীক্ষা করতে চাই, তবে কীভাবে এটি করা যায় তা আমি পুরোপুরি নিশ্চিত নই। প্রয়োগের প্রবাহটি হ'ল:
file.___ ===> read by FileReader.java ===> which creates a Model object
FileReader
ইন্টারফেস যেখানে
public interface FileReader {
public Model read(String filename);
}
Model
চারিত্রিক বৈশিষ্ট্য আছে যেগুলো কখন ফাইলটি পড়া হয় জনবহুল করছে একটি নম্বর আছে। দেখে মনে হচ্ছে এরকম কিছু
public class Model {
List<String> as;
List<String> bs;
boolean isAPain = true;
// ...
}
আমি কি চেষ্টা করেছি?
আমার একমাত্র ধারণা ছিল প্রতিটি ফাইলের ফর্ম্যাটের জন্য ফাইল "জেনারেটর" তৈরি করা। এই জেনারেটরগুলি মূলত বিল্ডার যা কয়েকটি ভেরিয়েবল গ্রহণ করে (উদাহরণস্বরূপ, কোনও ফাইলের মধ্যে সংখ্যার মতামতের সংখ্যা), এবং একটি নমুনা ফাইল আউটপুট দেয় যা আমি পরে পড়ি এবং ফলাফলটি Model
প্রাথমিকভাবে ফাইলটি উত্পন্ন করার জন্য ব্যবহৃত ভেরিয়েবলগুলির সাথে তুলনা করি।
যদিও এতে কয়েকটি সমস্যা রয়েছে:
- ফাইল তা উত্পন্ন যে না চেহারা বাস্তব ফাইলের মত। জেনারেটর কোনওভাবেই প্রসঙ্গে সচেতন নয়।
- জেনারেটর প্রান্তের কেসগুলির জন্য উত্পন্ন হয়েছে কিনা তা সনাক্ত করা শক্ত কারণ আমি নিজেই ভেরিয়েবলগুলি সেট করছি। আমার এক ডজন নমুনা ফাইল তৈরির চেয়ে এই পদ্ধতিটি সবে ভাল।
এটি করার আরও ভাল উপায় আছে?
সম্পাদনা: একত্রে পরিবর্তিত ইউনিট যেহেতু আমি আসলে যা বোঝাতে চাইছি।
সম্পাদনা 2: আমি উল্লেখ করা প্রান্ত মামলাগুলির একটি উদাহরণ এখানে।
প্রতিটি ফাইল শীর্ষে এবং প্রান্তগুলি দিয়ে তৈরি একটি গ্রাফ উপস্থাপন করে। এই শীর্ষে এবং প্রান্তগুলি বিভিন্ন উপায়ে সংযুক্ত করা যেতে পারে, সুতরাং:
v1 -- e1 --> v2 <-- e2 -- v3
এর থেকে আলাদা
v1 -- e1 --> v2 -- e2 --> v3
প্রান্ত দিক দিক যে বিষয়টি। আমি নিশ্চিত নই যে এটি প্রশ্নের আওতায় রয়েছে কিনা, তবে আমি নিজে নিজে যখন বিন্যাসের সংখ্যা, প্রান্ত সংখ্যা নির্ধারণ করেছি এবং কেবল এলোমেলোভাবে সংযোগগুলি তৈরি করি তখন প্রাসঙ্গিক প্রান্তের সমস্তগুলি বিবেচনা করা শক্ত।
FileReader
বাস্তবায়নে সম্ভবত ট্রিগার হতে পারে এমন প্রান্তের ক্ষেত্রে ভিত্তিক )? উদাহরণ: প্রতিটি টেবিল এন্ট্রির জন্য, চিত্র ফাইলের ফর্ম্যাটগুলিতে প্রান্তের কেসগুলি প্রদত্ত , যদি বৈশিষ্ট্যের সারি / কলাম সংমিশ্রণ সমর্থন করা হয় তবে সেই সংমিশ্রণটি অন্তত একটি পরীক্ষার কেস (একটি ডেটা ফাইল) থাকা উচিত।