मैं कुछ फ़ाइल स्वरूपों के साथ एक परियोजना पर काम कर रहा हूँ। कुछ प्रारूप .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
उन चर की तुलना करता हूं जो मैं शुरू में फ़ाइल उत्पन्न करता था।
हालांकि इसमें कुछ समस्याएं हैं:
- यह उत्पन्न करने वाली फ़ाइलें वास्तविक फ़ाइलों की तरह नहीं दिखती हैं। जनरेटर किसी भी तरह से संदर्भ से अवगत नहीं है।
- यह पहचानना मुश्किल है कि क्या जेनरेटर किनारे के मामलों के लिए उत्पन्न हुआ है क्योंकि मैं मैन्युअल रूप से चर सेट कर रहा हूं। एक दर्जन सैंपल फाइल बनाने की तुलना में यह विधि मेरे लिए बेहतर नहीं है।
क्या ऐसा करने के कोई बेहतर तरीके हैं?
संपादित करें: क्योंकि मैं वास्तव में क्या मतलब है एकीकरण इकाई बदल गया है।
EDIT2: यहां मेरे द्वारा उल्लेखित किनारे मामलों का एक उदाहरण है।
प्रत्येक फ़ाइल वर्टिकल और किनारों से बने ग्राफ़ का प्रतिनिधित्व करती है। ये कोने और किनारों को अलग-अलग तरीकों से जोड़ा जा सकता है, इसलिए:
v1 -- e1 --> v2 <-- e2 -- v3
से अलग है
v1 -- e1 --> v2 -- e2 --> v3
उस में किनारों की दिशा मायने रखती है। मुझे यकीन नहीं है कि अगर यह सवाल के दायरे में है, लेकिन यह मुश्किल है कि सभी धारियों के मामले उठें, जब मैं मैन्युअल रूप से कोने की संख्या, किनारों की संख्या निर्धारित करता हूं, और बस यादृच्छिक रूप से कनेक्शन उत्पन्न करता हूं।
FileReader
कार्यान्वयन में संभवतः ट्रिगर किया जा सकता है)। उदाहरण: छवि फ़ाइल स्वरूपों में पाए गए किनारे के मामलों को देखते हुए , प्रत्येक तालिका प्रविष्टि के लिए, यदि गुणों की पंक्ति / स्तंभ संयोजन का समर्थन किया जाता है, तो उस संयोजन को कवर करने के लिए कम से कम एक परीक्षण मामला (एक डेटा फ़ाइल) होना चाहिए।