Changeset 768


Ignore:
Timestamp:
Aug 20, 2007 8:45:19 PM (12 years ago)
Author:
ladanyi
Message:

Fixed path handling for Windows

Location:
trunk/Cbc/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src/CbcMain.cpp

    r765 r768  
    14391439          case DIRECTORY:
    14401440          { directory = getString(argc,argv);
    1441             if (directory[directory.length()-1] != '/')
    1442               directory += '/' ;
     1441            if (directory[directory.length()-1] != dirsep)
     1442              directory += dirsep ;
    14431443            break ; }
    14441444          case DIRSAMPLE:
    14451445          { dirSample = getString(argc,argv);
    1446             if (dirSample[dirSample.length()-1] != '/')
    1447               dirSample += '/' ;
     1446            if (dirSample[dirSample.length()-1] != dirsep)
     1447              dirSample += dirsep ;
    14481448            break ; }
    14491449          case DIRNETLIB:
    14501450          { dirNetlib = getString(argc,argv);
    1451             if (dirNetlib[dirNetlib.length()-1] != '/')
    1452               dirNetlib += '/' ;
     1451            if (dirNetlib[dirNetlib.length()-1] != dirsep)
     1452              dirNetlib += dirsep ;
    14531453            break ; }
    14541454          case DIRMIPLIB:
    14551455          { dirMiplib = getString(argc,argv);
    1456             if (dirMiplib[dirMiplib.length()-1] != '/')
    1457               dirMiplib += '/' ;
     1456            if (dirMiplib[dirMiplib.length()-1] != dirsep)
     1457              dirMiplib += dirsep ;
    14581458            break ; }
    14591459          case STDIN:
     
    15181518              int nFields=3;
    15191519              fields[0]="fake main for miplib";
    1520               std::string mpsfield = "-mpsDir=";
     1520              std::string mpsfield = "-dirSample=";
    15211521              mpsfield += dirSample.c_str();
    15221522              fields[1]=mpsfield.c_str();
    1523               std::string mipfield = "-miplibDir=";
     1523              std::string mipfield = "-dirMiplib=";
    15241524              mipfield += dirMiplib.c_str();
    15251525              fields[2]=mipfield.c_str();
  • trunk/Cbc/src/CbcSolver.cpp

    r765 r768  
    66066606              if (name!="EOL") {
    66076607                int length=name.length();
    6608                 if (name[length-1]=='/'||name[length-1]=='\\')
    6609                   directory=name;
    6610                 else
    6611                   directory = name+"/";
     6608                if (name[length-1]==dirsep) {
     6609                  directory = name;
     6610                } else {
     6611                  directory = name+dirsep;
     6612                }
    66126613                parameters[iParam].setStringValue(directory);
    66136614              } else {
     
    66216622              if (name!="EOL") {
    66226623                int length=name.length();
    6623                 if (name[length-1]=='/'||name[length-1]=='\\')
    6624                   dirSample=name;
    6625                 else
    6626                   dirSample = name+"/";
     6624                if (name[length-1]==dirsep) {
     6625                  dirSample = name;
     6626                } else {
     6627                  dirSample = name+dirsep;
     6628                }
    66276629                parameters[iParam].setStringValue(dirSample);
    66286630              } else {
     
    66366638              if (name!="EOL") {
    66376639                int length=name.length();
    6638                 if (name[length-1]=='/'||name[length-1]=='\\')
    6639                   dirNetlib=name;
    6640                 else
    6641                   dirNetlib = name+"/";
     6640                if (name[length-1]==dirsep) {
     6641                  dirNetlib = name;
     6642                } else {
     6643                  dirNetlib = name+dirsep;
     6644                }
    66426645                parameters[iParam].setStringValue(dirNetlib);
    66436646              } else {
     
    66516654              if (name!="EOL") {
    66526655                int length=name.length();
    6653                 if (name[length-1]=='/'||name[length-1]=='\\')
    6654                   dirMiplib=name;
    6655                 else
    6656                   dirMiplib = name+"/";
     6656                if (name[length-1]==dirsep) {
     6657                  dirMiplib = name;
     6658                } else {
     6659                  dirMiplib = name+dirsep;
     6660                }
    66576661                parameters[iParam].setStringValue(dirMiplib);
    66586662              } else {
  • trunk/Cbc/src/unitTestClp.cpp

    r765 r768  
    2929//#############################################################################
    3030
    31 void CbcClpUnitTest (const CbcModel & saveModel, std::string& miplibDir,
     31static inline bool CbcTestFile(const std::string name)
     32{
     33  FILE *fp = fopen(name.c_str(),"r");
     34  if (fp) {
     35    fclose(fp);
     36    return true;
     37  }
     38  return false;
     39}
     40
     41//#############################################################################
     42
     43bool CbcTestMpsFile(std::string& fname)
     44{
     45  if (CbcTestFile(fname)) {
     46    return true;
     47  }
     48  if (CbcTestFile(fname+".mps")) {
     49    fname += ".mps";
     50    return true;
     51  }
     52  if (CbcTestFile(fname+".MPS")) {
     53    fname += ".MPS";
     54    return true;
     55  }
     56#ifdef COIN_HAS_ZLIB
     57  if (CbcTestFile(fname+".gz")) {
     58    return true;
     59  }
     60  if (CbcTestFile(fname+".mps.gz")) {
     61    fname += ".mps";
     62    return true;
     63  }
     64  if (CbcTestFile(fname+".MPS.gz")) {
     65    fname += ".MPS";
     66    return true;
     67  }
     68  if (CbcTestFile(fname+".MPS.GZ")) {
     69    fname += ".MPS";
     70    return true;
     71  }
     72#endif
     73  return false;
     74}
     75
     76//#############################################################################
     77
     78void CbcClpUnitTest (const CbcModel & saveModel, std::string& dirMiplib,
    3279                     bool unitTestOnly)
    3380{
    3481  unsigned int m ;
     82
     83  // Set directory containing miplib data files.
     84  std::string test1 = dirMiplib +"p0033";
    3585  // See if files exist
    36   FILE * fp;
    37   bool doTest=false;
    38 
    39   // Set directory containing miplib data files.
    40   std::string test1 = miplibDir +"p0033";
    41   fp=fopen(test1.c_str(),"r");
    42   if (fp) {
    43     doTest=true;
    44     fclose(fp);
    45   }
    46 #ifdef COIN_HAS_ZLIB
    47   test1 += ".gz";
    48   fp=fopen(test1.c_str(),"r");
    49   if (fp) {
    50     doTest=true;
    51     fclose(fp);
    52   }
    53 #endif
     86  bool doTest=CbcTestMpsFile(test1);
     87
    5488  if (!doTest) {
    5589    printf("Not doing miplib run as can't find mps files - ? .gz without libz\n");
     
    83117    PUSH_MPS("p0033",16,33,3089,2520.57,7);
    84118    PUSH_MPS("p0201",133,201,7615,6875.0,7);
    85     PUSH_MPS("p0548",176,548,8691,315.29,7);
    86119  } else {
    87120    /*
     
    204237    CbcModel * model = new CbcModel(saveModel);
    205238     
    206     std::string fn = miplibDir+mpsName[m] ;
     239    std::string fn = dirMiplib+mpsName[m] ;
     240    if (!CbcTestMpsFile(fn)) {
     241      std::cout << "ERROR: Cannot find MPS file " << fn << "\n";
     242      continue;
     243    }
    207244    model->solver()->readMps(fn.c_str(),"") ;
    208245    assert(model->getNumRows() == nRows[m]) ;
Note: See TracChangeset for help on using the changeset viewer.