#ifndef __TESTVECTORS_H_
#define __TESTVECTORS_H_

#include "CellularAutomaton.h"
#include <string>
#include <boost/noncopyable.hpp>

class TestVectors : boost::noncopyable {
  protected:
    std::string filename;
    char *data;
    bool good;
    unsigned int rows;
    unsigned int cols;
    char getBit( unsigned int row, unsigned int col ) const;

  public:
    TestVectors( std::string filename );
    ~TestVectors();
    bool isGood() const;
    unsigned int getRows() const;
    unsigned int getCols() const;
    std::string getFilename() const;
    unsigned int countMatches( CellularAutomaton *ca, unsigned int iterations ) const;
};

#endif /* __TESTVECTORS_H_ */
