Changes in / [0430e3:677e13]


Ignore:
Files:
10 added
13 edited

Legend:

Unmodified
Added
Removed
  • src/Descriptors/MoleculePtrDescriptor.cpp

    r0430e3 r677e13  
    1010#include "MoleculePtrDescriptor.hpp"
    1111#include "MoleculePtrDescriptor_impl.hpp"
     12
     13#include "Patterns/ObservedContainer_impl.hpp"
    1214
    1315#include "molecule.hpp"
  • src/Makefile.am

    r0430e3 r677e13  
    7777  Actions/Process.hpp
    7878
    79 EXCEPTIONSOURCE = Exceptions/CustomException.cpp \
    80         Exceptions/IllegalTypeException.cpp \
    81         Exceptions/LinearDependenceException.cpp \
    82         Exceptions/MathException.cpp \
    83         Exceptions/MissingValueException.cpp \
    84         Exceptions/NotInvertibleException.cpp \
    85         Exceptions/SkewException.cpp \
    86         Exceptions/ZeroVectorException.cpp
     79EXCEPTIONSOURCE = \
     80  Exceptions/CustomException.cpp \
     81  Exceptions/IllegalTypeException.cpp \
     82  Exceptions/LinearDependenceException.cpp \
     83  Exceptions/MathException.cpp \
     84  Exceptions/MissingValueException.cpp \
     85  Exceptions/NotInvertibleException.cpp \
     86  Exceptions/ParseError.cpp \
     87  Exceptions/SkewException.cpp \
     88  Exceptions/ZeroVectorException.cpp
    8789                                 
    88 EXCEPTIONHEADER = Exceptions/CustomException.hpp \
    89         Exceptions/IllegalTypeException.hpp \
    90         Exceptions/LinearDependenceException.hpp \
    91         Exceptions/MathException.hpp \
    92         Exceptions/MissingValueException.hpp \
    93         Exceptions/NotInvertibleException.hpp \
    94         Exceptions/SkewException.hpp \
    95         Exceptions/ZeroVectorException.hpp
     90EXCEPTIONHEADER = \
     91  Exceptions/CustomException.hpp \
     92  Exceptions/IllegalTypeException.hpp \
     93  Exceptions/LinearDependenceException.hpp \
     94  Exceptions/MathException.hpp \
     95  Exceptions/MissingValueException.hpp \
     96  Exceptions/NotInvertibleException.hpp \
     97  Exceptions/ParseError.hpp \
     98  Exceptions/SkewException.hpp \
     99  Exceptions/ZeroVectorException.hpp
    96100
    97101PARSERSOURCE = \
     
    151155  Descriptors/AtomTypeDescriptor.cpp \
    152156  Descriptors/MoleculeDescriptor.cpp \
     157  Descriptors/MoleculeFormulaDescriptor.cpp \
    153158  Descriptors/MoleculeIdDescriptor.cpp \
    154159  Descriptors/MoleculeNameDescriptor.cpp \
     
    162167  Descriptors/AtomTypeDescriptor.hpp \
    163168  Descriptors/MoleculeDescriptor.hpp \
     169  Descriptors/MoleculeFormulaDescriptor.hpp \
    164170  Descriptors/MoleculeIdDescriptor.hpp \
    165171  Descriptors/MoleculeNameDescriptor.hpp \
     
    202208  ellipsoid.cpp \
    203209  errorlogger.cpp \
     210  Formula.cpp \
    204211  graph.cpp \
    205212  helpers.cpp \
     
    252259  ellipsoid.hpp \
    253260  errorlogger.hpp \
     261  Formula.hpp \
    254262  graph.hpp \
    255263  helpers.hpp \
  • src/World.cpp

    r0430e3 r677e13  
    234234    atomIdPool_t::iterator iter=atomIdPool.begin();
    235235    atomId_t id = iter->first;
    236     pair<atomId_t,atomId_t> newRange = make_pair(id+1,iter->second);
     236    range<atomId_t> newRange = makeRange(id+1,iter->last);
    237237    // we wont use this iterator anymore, so we don't care about invalidating
    238238    atomIdPool.erase(iter);
    239     if(newRange.first<newRange.second){
     239    if(newRange.first<newRange.last){
    240240      atomIdPool.insert(newRange);
    241241    }
     
    247247
    248248void World::releaseAtomId(atomId_t id){
    249   atomIdPool.insert(make_pair(id,id+1));
     249  atomIdPool.insert(makeRange(id,id+1));
    250250  defragAtomIdPool();
    251251}
     
    253253bool World::reserveAtomId(atomId_t id){
    254254  if(id>=currAtomId ){
    255     pair<atomId_t,atomId_t> newRange = make_pair(currAtomId,id);
    256     if(newRange.first<newRange.second){
     255    range<atomId_t> newRange = makeRange(currAtomId,id);
     256    if(newRange.first<newRange.last){
    257257      atomIdPool.insert(newRange);
    258258    }
     
    263263  // look for a range that matches the request
    264264  for(atomIdPool_t::iterator iter=atomIdPool.begin();iter!=atomIdPool.end();++iter){
    265     if(iter->first>id){
    266       // we have coverd all available ranges... nothing to be found here
     265    if(iter->isBefore(id)){
     266      // we have covered all available ranges... nothing to be found here
    267267      break;
    268268    }
    269269    // no need to check first, since it has to be <=id, since otherwise we would have broken out
    270     if(iter->second > id){
     270    if(!iter->isBeyond(id)){
    271271      // we found a matching range... get the id from this range
    272272
    273273      // split up this range at the point of id
    274       pair<atomId_t,atomId_t> bottomRange = make_pair(iter->first,id);
    275       pair<atomId_t,atomId_t> topRange = make_pair(id+1,iter->second);
     274      range<atomId_t> bottomRange = makeRange(iter->first,id);
     275      range<atomId_t> topRange = makeRange(id+1,iter->last);
    276276      // remove this range
    277277      atomIdPool.erase(iter);
    278       if(bottomRange.first<bottomRange.second){
     278      if(bottomRange.first<bottomRange.last){
    279279        atomIdPool.insert(bottomRange);
    280280      }
    281       if(topRange.first<topRange.second){
     281      if(topRange.first<topRange.last){
    282282        atomIdPool.insert(topRange);
    283283      }
     
    301301    atomIdPool_t::iterator next = iter;
    302302    next++;
    303     if(next!=atomIdPool.end() && (next->first==iter->second)){
     303    if(next!=atomIdPool.end() && (next->first==iter->last)){
    304304      // merge the two ranges
    305       pair<atomId_t,atomId_t> newRange = make_pair(iter->first,next->second);
     305      range<atomId_t> newRange = makeRange(iter->first,next->last);
    306306      atomIdPool.erase(iter);
    307307      atomIdPool.erase(next);
     
    317317    atomIdPool_t::iterator iter = atomIdPool.end();
    318318    iter--;
    319     if(iter->second==currAtomId){
     319    if(iter->last==currAtomId){
    320320      currAtomId=iter->first;
    321321      atomIdPool.erase(iter);
     
    333333    moleculeIdPool_t::iterator iter=moleculeIdPool.begin();
    334334    moleculeId_t id = iter->first;
    335     pair<moleculeId_t,moleculeId_t> newRange = make_pair(id+1,iter->second);
     335    range<moleculeId_t> newRange = makeRange(id+1,iter->last);
    336336    // we wont use this iterator anymore, so we don't care about invalidating
    337337    moleculeIdPool.erase(iter);
    338     if(newRange.first<newRange.second){
     338    if(newRange.first<newRange.last){
    339339      moleculeIdPool.insert(newRange);
    340340    }
     
    346346
    347347void World::releaseMoleculeId(moleculeId_t id){
    348   moleculeIdPool.insert(make_pair(id,id+1));
     348  moleculeIdPool.insert(makeRange(id,id+1));
    349349  defragMoleculeIdPool();
    350350}
     
    352352bool World::reserveMoleculeId(moleculeId_t id){
    353353  if(id>=currMoleculeId ){
    354     pair<moleculeId_t,moleculeId_t> newRange = make_pair(currMoleculeId,id);
    355     if(newRange.first<newRange.second){
     354    range<moleculeId_t> newRange = makeRange(currMoleculeId,id);
     355    if(newRange.first<newRange.last){
    356356      moleculeIdPool.insert(newRange);
    357357    }
     
    362362  // look for a range that matches the request
    363363  for(moleculeIdPool_t::iterator iter=moleculeIdPool.begin();iter!=moleculeIdPool.end();++iter){
    364     if(iter->first>id){
     364    if(iter->isBefore(id)){
    365365      // we have coverd all available ranges... nothing to be found here
    366366      break;
    367367    }
    368368    // no need to check first, since it has to be <=id, since otherwise we would have broken out
    369     if(iter->second > id){
     369    if(!iter->isBeyond(id)){
    370370      // we found a matching range... get the id from this range
    371371
    372372      // split up this range at the point of id
    373       pair<moleculeId_t,moleculeId_t> bottomRange = make_pair(iter->first,id);
    374       pair<moleculeId_t,moleculeId_t> topRange = make_pair(id+1,iter->second);
     373      range<moleculeId_t> bottomRange = makeRange(iter->first,id);
     374      range<moleculeId_t> topRange = makeRange(id+1,iter->last);
    375375      // remove this range
    376376      moleculeIdPool.erase(iter);
    377       if(bottomRange.first<bottomRange.second){
     377      if(bottomRange.first<bottomRange.last){
    378378        moleculeIdPool.insert(bottomRange);
    379379      }
    380       if(topRange.first<topRange.second){
     380      if(topRange.first<topRange.last){
    381381        moleculeIdPool.insert(topRange);
    382382      }
     
    400400    moleculeIdPool_t::iterator next = iter;
    401401    next++;
    402     if(next!=moleculeIdPool.end() && (next->first==iter->second)){
     402    if(next!=moleculeIdPool.end() && (next->first==iter->last)){
    403403      // merge the two ranges
    404       pair<moleculeId_t,moleculeId_t> newRange = make_pair(iter->first,next->second);
     404      range<moleculeId_t> newRange = makeRange(iter->first,next->last);
    405405      moleculeIdPool.erase(iter);
    406406      moleculeIdPool.erase(next);
     
    416416    moleculeIdPool_t::iterator iter = moleculeIdPool.end();
    417417    iter--;
    418     if(iter->second==currMoleculeId){
     418    if(iter->last==currMoleculeId){
    419419      currMoleculeId=iter->first;
    420420      moleculeIdPool.erase(iter);
  • src/World.hpp

    r0430e3 r677e13  
    2424#include "Patterns/Singleton.hpp"
    2525#include "Patterns/ObservedContainer.hpp"
     26#include "Helpers/Range.hpp"
    2627
    2728// include config.h
     
    360361  AtomSet atoms;
    361362  AtomSet selectedAtoms;
    362   typedef std::set<std::pair<atomId_t, atomId_t> > atomIdPool_t;
     363  typedef std::set<range<atomId_t> > atomIdPool_t;
    363364  /**
    364365   * stores the pool for all available AtomIds below currAtomId
     
    373374  MoleculeSet molecules;
    374375  MoleculeSet selectedMolecules;
    375   typedef std::set<std::pair<moleculeId_t, moleculeId_t> > moleculeIdPool_t;
     376  typedef std::set<range<atomId_t> > moleculeIdPool_t;
    376377  /**
    377378   * stores the pool for all available AtomIds below currAtomId
  • src/config.cpp

    r0430e3 r677e13  
    10311031{
    10321032  bool result = true;
    1033   // bring MaxTypes up to date
    1034   mol->CountElements();
    10351033  const Matrix &domain = World::getInstance().getDomain().getM();
    10361034  ofstream * const output = new ofstream(filename, ios::out);
     
    11381136    *output << "IsAngstroem\t" << config::IsAngstroem << "\t# 0 - Bohr, 1 - Angstroem" << endl;
    11391137    *output << "RelativeCoord\t" << config::RelativeCoord << "\t# whether ion coordinates are relative (1) or absolute (0)" << endl;
    1140     *output << "MaxTypes\t" << mol->ElementCount <<  "\t# maximum number of different ion types" << endl;
     1138    *output << "MaxTypes\t" << mol->getElementCount() <<  "\t# maximum number of different ion types" << endl;
    11411139    *output << endl;
    11421140    result = result && mol->Checkout(output);
     
    15331531    mol->SetNameFromFilename(ConfigFileName);
    15341532    molecules->SimpleMultiMerge(mol, src, N);
    1535     mol->doCountAtoms();
    1536     mol->CountElements();
    15371533    //mol->CalculateOrbitals(*this);
    15381534    delete[](src);
  • src/molecule.cpp

    r0430e3 r677e13  
    4949molecule::molecule(const periodentafel * const teil) :
    5050  Observable("molecule"),
    51   elemente(teil),  MDSteps(0),  BondCount(0), ElementCount(0), NoNonHydrogen(0), NoNonBonds(0),
     51  elemente(teil),  MDSteps(0),  BondCount(0), NoNonHydrogen(0), NoNonBonds(0),
    5252  NoCyclicBonds(0), BondDistance(0.),  ActiveFlag(false), IndexNr(-1),
    53   formula(this,boost::bind(&molecule::calcFormula,this),"formula"),
    5453  AtomCount(this,boost::bind(&molecule::doCountAtoms,this),"AtomCount"), last_atom(0),  InternalPointer(atoms.begin())
    5554{
    5655
    57   // other stuff
    58   for(int i=MAX_ELEMENTS;i--;)
    59     ElementsInMolecule[i] = 0;
    6056  strcpy(name,World::getInstance().getDefaultName().c_str());
    6157};
     
    10197}
    10298
    103 const std::string molecule::getFormula(){
    104   return *formula;
    105 }
    106 
    107 std::string molecule::calcFormula(){
    108   std::map<atomicNumber_t,unsigned int> counts;
    109   stringstream sstr;
    110   periodentafel *periode = World::getInstance().getPeriode();
    111   for (molecule::const_iterator iter = begin(); iter != end(); ++iter) {
    112     counts[(*iter)->type->getNumber()]++;
    113   }
    114   std::map<atomicNumber_t,unsigned int>::reverse_iterator iter;
    115   for(iter = counts.rbegin(); iter != counts.rend(); ++iter) {
    116     atomicNumber_t Z = (*iter).first;
    117     sstr << periode->FindElement(Z)->symbol << (*iter).second;
    118   }
    119   return sstr.str();
     99const Formula &molecule::getFormula(){
     100  return formula;
     101}
     102
     103unsigned int molecule::getElementCount(){
     104  return formula.getElementCount();
     105}
     106
     107bool molecule::hasElement(const element *element) const{
     108  return formula.hasElement(element);
     109}
     110
     111bool molecule::hasElement(atomicNumber_t Z) const{
     112  return formula.hasElement(Z);
     113}
     114
     115bool molecule::hasElement(const string &shorthand) const{
     116  return formula.hasElement(shorthand);
    120117}
    121118
     
    210207    pointer->sort = &pointer->nr;
    211208    if (pointer->type != NULL) {
    212       if (ElementsInMolecule[pointer->type->Z] == 0)
    213         ElementCount++;
    214       ElementsInMolecule[pointer->type->Z]++; // increase number of elements
     209      formula += pointer->type;
    215210      if (pointer->type->Z != 1)
    216211        NoNonHydrogen++;
     
    651646
    652647  // copy values
    653   copy->CountElements();
    654648  if (hasBondStructure()) {  // if adjaceny list is present
    655649    copy->BondDistance = BondDistance;
     
    774768  ASSERT(pointer, "Null pointer passed to molecule::RemoveAtom().");
    775769  OBSERVE;
    776   if (ElementsInMolecule[pointer->type->Z] != 0)  { // this would indicate an error
    777     ElementsInMolecule[pointer->type->Z]--;  // decrease number of atom of this element
    778   } else
    779     DoeLog(1) && (eLog()<< Verbose(1) << "Atom " << pointer->getName() << " is of element " << pointer->type->Z << " but the entry in the table of the molecule is 0!" << endl);
    780   if (ElementsInMolecule[pointer->type->Z] == 0)  // was last atom of this element?
    781     ElementCount--;
     770  formula-=pointer->type;
    782771  RemoveBonds(pointer);
    783772  erase(pointer);
     
    793782  if (pointer == NULL)
    794783    return false;
    795   if (ElementsInMolecule[pointer->type->Z] != 0)  // this would indicate an error
    796     ElementsInMolecule[pointer->type->Z]--; // decrease number of atom of this element
    797   else
    798     DoeLog(1) && (eLog()<< Verbose(1) << "Atom " << pointer->getName() << " is of element " << pointer->type->Z << " but the entry in the table of the molecule is 0!" << endl);
    799   if (ElementsInMolecule[pointer->type->Z] == 0)  // was last atom of this element?
    800     ElementCount--;
     784  formula-=pointer->type;
    801785  erase(pointer);
    802786  return true;
     
    871855{
    872856  int ElementNo[MAX_ELEMENTS], AtomNo[MAX_ELEMENTS];
    873   CountElements();
    874857
    875858  for (int i=0;i<MAX_ELEMENTS;++i) {
     
    898881{
    899882  int ElementNo[MAX_ELEMENTS], AtomNo[MAX_ELEMENTS];
    900   CountElements();
    901883
    902884  if (output == NULL) {
     
    940922bool molecule::Checkout(ofstream * const output)  const
    941923{
    942   return elemente->Checkout(output, ElementsInMolecule);
     924  return formula.checkOut(output);
    943925};
    944926
     
    998980};
    999981
    1000 /** Brings molecule::ElementCount and molecule::ElementsInMolecule up-to-date.
    1001  */
    1002 void molecule::CountElements()
    1003 {
    1004   for(int i=MAX_ELEMENTS;i--;)
    1005     ElementsInMolecule[i] = 0;
    1006   ElementCount = 0;
    1007 
    1008   SetIndexedArrayForEachAtomTo ( ElementsInMolecule, &element::Z, &Increment, 1);
    1009 
    1010   for(int i=MAX_ELEMENTS;i--;)
    1011     ElementCount += (ElementsInMolecule[i] != 0 ? 1 : 0);
    1012 };
    1013 
    1014982/** Determines whether two molecules actually contain the same atoms and coordination.
    1015983 * \param *out output stream for debugging
     
    1030998  /// first count both their atoms and elements and update lists thereby ...
    1031999  //Log() << Verbose(0) << "Counting atoms, updating list" << endl;
    1032   CountElements();
    1033   OtherMolecule->CountElements();
    10341000
    10351001  /// ... and compare:
     
    10411007    } else Log() << Verbose(4) << "AtomCounts match: " << getAtomCount() << " == " << OtherMolecule->getAtomCount() << endl;
    10421008  }
    1043   /// -# ElementCount
     1009  /// -# Formula
    10441010  if (result) {
    1045     if (ElementCount != OtherMolecule->ElementCount) {
    1046       DoLog(4) && (Log() << Verbose(4) << "ElementCount don't match: " << ElementCount << " == " << OtherMolecule->ElementCount << endl);
     1011    if (formula != OtherMolecule->formula) {
     1012      DoLog(4) && (Log() << Verbose(4) << "Formulas don't match: " << formula << " == " << OtherMolecule->formula << endl);
    10471013      result = false;
    1048     } else Log() << Verbose(4) << "ElementCount match: " << ElementCount << " == " << OtherMolecule->ElementCount << endl;
    1049   }
    1050   /// -# ElementsInMolecule
    1051   if (result) {
    1052     for (flag=MAX_ELEMENTS;flag--;) {
    1053       //Log() << Verbose(5) << "Element " <<  flag << ": " << ElementsInMolecule[flag] << " <-> " << OtherMolecule->ElementsInMolecule[flag] << "." << endl;
    1054       if (ElementsInMolecule[flag] != OtherMolecule->ElementsInMolecule[flag])
    1055         break;
    1056     }
    1057     if (flag < MAX_ELEMENTS) {
    1058       DoLog(4) && (Log() << Verbose(4) << "ElementsInMolecule don't match." << endl);
    1059       result = false;
    1060     } else Log() << Verbose(4) << "ElementsInMolecule match." << endl;
     1014    } else Log() << Verbose(4) << "Formulas match: " << formula << " == " << OtherMolecule->formula << endl;
    10611015  }
    10621016  /// then determine and compare center of gravity for each molecule ...
  • src/molecule.hpp

    r0430e3 r677e13  
    2828#include "Patterns/ObservedIterator.hpp"
    2929#include "Patterns/Cacheable.hpp"
     30#include "Formula.hpp"
    3031
    3132#include "Descriptors/MoleculeDescriptor_impl.hpp"
     
    9798    //int AtomCount;          //!< number of atoms, brought up-to-date by CountAtoms()
    9899    int BondCount;          //!< number of atoms, brought up-to-date by CountBonds()
    99     int ElementCount;       //!< how many unique elements are therein
    100     int ElementsInMolecule[MAX_ELEMENTS]; //!< list whether element (sorted by atomic number) is alread present or not
    101100    mutable int NoNonHydrogen;  //!< number of non-hydrogen atoms in molecule
    102101    mutable int NoNonBonds;     //!< number of non-hydrogen bonds in molecule
     
    109108
    110109  private:
    111     Cacheable<string> formula;
     110    Formula formula;
    112111    Cacheable<int>    AtomCount;
    113112    moleculeId_t id;
     
    135134  void setId(moleculeId_t);
    136135  void setName(const std::string);
    137   const std::string getFormula();
    138   std::string calcFormula();
     136  const Formula &getFormula();
     137  unsigned int getElementCount();
     138  bool hasElement(const element*) const;
     139  bool hasElement(atomicNumber_t) const;
     140  bool hasElement(const std::string&) const;
     141
    139142
    140143  iterator begin();
     
    254257
    255258  /// Count and change present atoms' coordination.
    256   void CountElements();
    257259  bool CenterInBox();
    258260  bool BoundInBox();
  • src/molecule_dynamics.cpp

    r0430e3 r677e13  
    560560  ForceMatrix Force;
    561561
    562   CountElements();  // make sure ElementsInMolecule is up to date
    563 
    564562  const int AtomCount = getAtomCount();
    565563  // check file
  • src/moleculelist.cpp

    r0430e3 r677e13  
    597597      periodentafel::const_iterator elemIter;
    598598      for(elemIter=periode->begin();elemIter!=periode->end();++elemIter){
    599         if ((*ListRunner)->ElementsInMolecule[(*elemIter).first]) { // if this element got atoms
     599        if ((*ListRunner)->hasElement((*elemIter).first)) { // if this element got atoms
    600600          for(molecule::iterator atomIter = (*ListRunner)->begin(); atomIter !=(*ListRunner)->end();++atomIter){
    601601            if ((*atomIter)->type->getNumber() == (*elemIter).first) {
     
    689689
    690690    // also calculate necessary orbitals
    691     (*ListRunner)->CountElements(); // this is a bugfix, atoms should shoulds actually be added correctly to this fragment
    692691    //(*ListRunner)->CalculateOrbitals(*World::getInstance().getConfig);
    693692
  • src/periodentafel.cpp

    r0430e3 r677e13  
    125125 * \return pointer to element
    126126 */
    127 element * const periodentafel::FindElement(const char * const shorthand) const
     127element * const periodentafel::FindElement(const string &shorthand) const
    128128{
    129129  element *res = 0;
     
    205205    for(const_iterator iter=elements.begin(); iter !=elements.end();++iter){
    206206      result = result && (*iter).second->Output(output);
    207     }
    208     return result;
    209   } else
    210     return false;
    211 };
    212 
    213 /** Prints period table to given stream.
    214  * \param *output output stream
    215  * \param *checkliste elements table for this molecule
    216  */
    217 bool periodentafel::Checkout(ostream * const output, const int * const checkliste) const
    218 {
    219   bool result = true;
    220   int No = 1;
    221 
    222   if (output != NULL) {
    223     *output << "# Ion type data (PP = PseudoPotential, Z = atomic number)" << endl;
    224     *output << "#Ion_TypeNr.\tAmount\tZ\tRGauss\tL_Max(PP)L_Loc(PP)IonMass\t# chemical name, symbol" << endl;
    225     for(const_iterator iter=elements.begin(); iter!=elements.end();++iter){
    226       if (((*iter).first < MAX_ELEMENTS) && (checkliste[(*iter).first])) {
    227         (*iter).second->No = No;
    228         result = result && (*iter).second->Checkout(output, No++, checkliste[(*iter).first]);
    229       }
    230207    }
    231208    return result;
  • src/periodentafel.hpp

    r0430e3 r677e13  
    1111#include <iosfwd>
    1212#include <map>
     13#include <string>
    1314
    1415#include "unittests/periodentafelTest.hpp"
     
    4748  void CleanupPeriodtable();
    4849  element * const FindElement(atomicNumber_t) const;
    49   element * const FindElement(const char * const shorthand) const;
     50  element * const FindElement(const std::string &shorthand) const;
    5051  element * const AskElement() const;
    5152  element * const EnterElement();
     
    5657  reverse_iterator rend();
    5758  bool Output(std::ostream * const output) const;
    58   bool Checkout(std::ostream * const output, const int * const checkliste) const;
    5959  bool LoadPeriodentafel(const char * const path);
    6060  bool StorePeriodentafel(const char * const path) const;
  • src/unittests/Makefile.am

    r0430e3 r677e13  
    2121  CacheableTest \
    2222  CountBondsUnitTest \
     23  FormulaUnittest \
    2324  GSLMatrixSymmetricUnitTest \
    2425  GSLMatrixUnitTest \
     
    6667  CacheableTest.cpp \
    6768  CountBondsUnitTest.cpp \
     69  FormulaUnittest.cpp \
    6870  gslmatrixsymmetricunittest.cpp \
    6971  gslmatrixunittest.cpp \
     
    102104  CacheableTest.hpp \
    103105  CountBondsUnitTest.hpp \
     106  FormulaUnittest.hpp \
    104107  gslmatrixsymmetricunittest.hpp \
    105108  gslmatrixunittest.hpp \
     
    158161CountBondsUnitTest_LDADD = ${ALLLIBS}
    159162
     163FormulaUnittest_SOURCES = UnitTestMain.cpp FormulaUnittest.cpp FormulaUnittest.hpp
     164FormulaUnittest_LDADD = ${ALLLIBS}
     165
    160166GSLMatrixSymmetricUnitTest_SOURCES = UnitTestMain.cpp gslmatrixsymmetricunittest.cpp gslmatrixsymmetricunittest.hpp
    161167GSLMatrixSymmetricUnitTest_LDADD = ${GSLLIBS}
  • test_all.sh

    r0430e3 r677e13  
    129129  echo "Valgrinding";
    130130  retval=0;
    131   for test in molecuilder/src/unittests/*
     131  for test in src/unittests/*
    132132  do
    133133    if [ -x "$test" ]
     
    150150
    151151  echo "Testing with \"$2\"";
     152  echo "" >> $logfile;
     153  echo "" >> $logfile;
     154  echo "" >> $logfile;
     155  echo "Testing with \"$2\"" >> $logfile;
    152156
    153157  echo -n "  Configuring: " >> $outfile;
Note: See TracChangeset for help on using the changeset viewer.