31 #include <boost/iostreams/filtering_stream.hpp> 32 #include <boost/iostreams/filter/gzip.hpp> 33 #include <boost/iostreams/device/file_descriptor.hpp> 34 #include <boost/iostreams/copy.hpp> 40 using boost::shared_ptr;
52 if (
os_) *
os_ <<
"validateWriteRead()\n " << writeConfig << endl;
65 shared_ptr<Reader> reader;
79 if (diff &&
os_) *
os_ << diff << endl;
83 pd1.
write(filename2, writeConfig);
90 if (diff &&
os_) *
os_ << diff << endl;
94 bio::filtering_istream tinyGZ(bio::gzip_compressor() | bio::file_descriptor_source(filename1));
95 bio::copy(tinyGZ, bio::file_descriptor_sink(filename1+
".gz", ios::out|ios::binary));
101 if (diff &&
os_) *
os_ << diff << endl;
106 bfs::remove(filename1);
107 bfs::remove(filename2);
108 bfs::remove(filename1 +
".gz");
110 bool index1Exists = bfs::exists(filename1 +
".index");
111 bool index2Exists = bfs::exists(filename2 +
".index");
112 bool index3Exists = bfs::exists(filename1 +
".gz.index");
114 bool indexShouldExist = writeConfig.
indexed;
119 if (index1Exists) bfs::remove(filename1 +
".index");
120 if (index2Exists) bfs::remove(filename2 +
".index");
121 if (index3Exists) bfs::remove(filename1 +
".gz.index");
144 virtual std::string
identify(
const std::string& uri, shared_ptr<istream> uriStreamPtr)
const 148 if (!bal::iends_with(uri,
".fasta"))
152 getline(*uriStreamPtr, buf);
159 virtual void read(
const std::string& uri,
160 shared_ptr<istream> uriStreamPtr,
166 const char *
getType()
const {
return "testReader";}
176 ofstream os(filename.c_str());
177 os <<
">Id Description\nSEQUENCE\n";
188 boost::filesystem::remove(filename);
194 int main(
int argc,
char* argv[])
200 if (argc>1 && !strcmp(argv[1],
"-v"))
os_ = &cout;
FASTA -> ProteomeData stream serialization.
configuration struct for diffs
Calculate diffs of objects in a ProteoWizard data model hierarchy.
void validateWriteRead(const ProteomeDataFile::WriteConfig &writeConfig, const DiffConfig diffConfig)
void diff(const string &filename1, const string &filename2)
virtual std::string identify(const std::string &uri, shared_ptr< istream > uriStreamPtr) const
PWIZ_API_DECL int testReader(const pwiz::msdata::Reader &reader, const std::vector< std::string > &args, bool testAcceptOnly, bool requireUnicodeSupport, const TestPathPredicate &isPathTestable)
A common test harness for vendor readers;.
int main(int argc, char *argv[])
PWIZ_API_DECL void write(minimxml::XMLWriter &writer, const CV &cv)
static void write(const ProteomeData &pd, const std::string &uri, const WriteConfig &config=WriteConfig(), const pwiz::util::IterationListenerRegistry *iterationListenerRegistry=0)
static write function for any ProteomeData object; iterationListenerRegistry may be used for progress...
const char * getType() const
ProteomeData object plus file I/O.
configuration for write()
interface for file readers
PWIZ_API_DECL void initializeTiny(IdentData &mzid)
Reader_FASTA configuration.
#define TEST_PROLOG(argc, argv)
bool indexed
read with a side-by-side index
virtual void read(const std::string &uri, shared_ptr< istream > uriStreamPtr, ProteomeData &pd) const