Пример #1
0
    def test_get_files_of_type(self):
        """tests the get_files_of_type function"""
        model_path = os.path.join('some_incorrect_path')
        files = get_files_of_type(model_path,
                                  extension='.op2',
                                  max_size=1.0,
                                  limit_file='no_dig.txt')
        assert len(files) == 0, files

        model_path = os.path.join(PKG_PATH, '..', 'models')
        op2_files = get_files_of_type(model_path,
                                      extension='.op2',
                                      max_size=1.0,
                                      limit_file='no_dig.txt')
        assert len(op2_files) > 0, op2_files
Пример #2
0
def get_files_from_directories(dirnames: List[str], file_type: str,
                               max_size: float=4.2) -> List[str]:
    """
    Gets all the files in the folder and subfolders.  Ignores missing folders.

    Parameters
    ----------
    dirnames : List[str]
        paths to the file with a list of folders
    file_type : str
        a file extension
    max_size : float; default=4.2
        size in MB for max file size

    Returns
    -------
    filenames : List[str]
        a series of filenames that were found

    """
    files2 = []
    for move_dir in dirnames:
        print("move_dir = %s" % move_dir)
        #assert os.path.exists(move_dir), '%s doesnt exist' % move_dir
        files_in_dir = get_files_of_type(move_dir, file_type, max_size=max_size)
        files2 += files_in_dir
        #print('nfiles = %s/%s' % (len(files_in_dir), len(files2)))
    #print('nfiles = %s' % len(files2))
    return files2
Пример #3
0
def main():
    # works
    files = get_files_of_type('tests', '.op2')

    foldersFile = os.path.join(pkg_path, 'bdf', 'test', 'tests',
                               'foldersRead.txt')

    iSubcases = []
    debug = False
    make_geom = False
    write_bdf = False
    write_f06 = True
    write_op2 = False
    is_vector = [True, False]

    delete_f06 = True
    saveCases = True
    regenerate = False
    stopOnFailure = False
    getSkipCards = False

    if getSkipCards:
        files2 = parse_skipped_cards('skippedCards.out')
    elif regenerate:
        files2 = get_all_files(foldersFile, '.op2')
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failedCases.in')
    files = files2

    skipFiles = ['nltrot99.op2', 'rot12901.op2', 'plan20s.op2']  # giant

    nStart = 0
    nStop = 10000
    try:
        os.remove('skippedCards.out')
    except:
        pass

    print("nFiles = %s" % len(files))
    import time
    t0 = time.time()
    run_lots_of_files(files,
                      make_geom=make_geom,
                      write_bdf=write_bdf,
                      write_f06=write_f06,
                      delete_f06=delete_f06,
                      write_op2=write_op2,
                      debug=debug,
                      saveCases=saveCases,
                      skipFiles=skipFiles,
                      stopOnFailure=stopOnFailure,
                      is_vector=is_vector,
                      nStart=nStart,
                      nStop=nStop)
    print("dt = %f" % (time.time() - t0))
    sys.exit('final stop...')
Пример #4
0
 def test_renumber_05(self):
     dirname = os.path.join(unit_path, 'obscure')
     bdf_filenames = get_files_of_type(dirname, extension='.bdf')
     for bdf_filename in bdf_filenames:
         print('bdf_filename = %s' % (bdf_filename))
         basename = os.path.basename(bdf_filename)
         base, ext = os.path.splitext(basename)
         bdf_filename_renumber = os.path.join(dirname, base + '_renumber.bdf_test')
         bdf_filename_check = os.path.join(dirname, base + '_check.bdf_test')
         check_renumber(bdf_filename, bdf_filename_renumber, bdf_filename_check)
Пример #5
0
def main(regenerate=True, make_geom=False, write_bdf=False):
    # works
    files = get_files_of_type('tests', '.op2')

    folders_file = os.path.join(pkg_path, 'bdf', 'test', 'tests', 'foldersRead.txt')

    iSubcases = []
    debug = False
    write_f06 = True
    write_op2 = False
    is_vector = [True] # is this vectorized
    vector_stop = [True]  # corresponds to is_vector; stop if case fails=True
    binary_debug = False  # catch any errors
    quiet = True

    delete_f06 = True
    save_cases = True
    stop_on_failure = False
    get_skip_cards = False

    if get_skip_cards:
        files2 = parse_skipped_cards('skipped_cards.out')
    elif regenerate:
        files2 = get_all_files(folders_file, '.op2')
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failed_cases.in')
    files = files2

    skip_files = []
    #skip_files = ['nltrot99.op2', 'rot12901.op2', 'plan20s.op2'] # giant

    nstart = 0
    nstop = 10000
    try:
        os.remove('skipped_cards.out')
    except:
        pass

    print("nfiles = %s" % len(files))
    import time
    t0 = time.time()
    short_stats = data['--short_stats']
    run_lots_of_files(files, make_geom=make_geom, write_bdf=write_bdf,
                      write_f06=write_f06, delete_f06=delete_f06,
                      write_op2=write_op2, debug=debug, save_cases=save_cases, skip_files=skip_files,
                      stop_on_failure=stop_on_failure,
                      is_vector=is_vector, vector_stop=vector_stop,
                      nstart=nstart, nstop=nstop, binary_debug=binary_debug,
                      compare=not data['--disablecompare'], short_stats=short_stats,
                      quiet=quiet)
    print("dt = %f" %(time.time() - t0))
    sys.exit('final stop...')
Пример #6
0
def get_all_files(foldersFile, fileType):
    f = open(foldersFile, 'r')
    lines = f.readlines()
    files2 = []
    for line in lines:
        moveDir = os.path.join('r"' + line.strip() + '"')
        moveDir = line.strip()
        if moveDir and moveDir[0] != '#':
            print("moveDir = %s" % moveDir)
            assert os.path.exists(moveDir), '%s doesnt exist' % (moveDir)
            files2 += get_files_of_type(moveDir, fileType, maxSize=4.2)
    return files2
Пример #7
0
def get_all_files(foldersFile,fileType):
    f = open(foldersFile,'r')
    lines = f.readlines()
    files2 = []
    for line in lines:
        moveDir = os.path.join('r"'+line.strip()+'"')
        moveDir = line.strip()
        if moveDir and moveDir[0] != '#':
            print("moveDir = %s" % moveDir)
            assert os.path.exists(moveDir), '%s doesnt exist' % (moveDir)
            files2 += get_files_of_type(moveDir, fileType, maxSize=4.2)
    return files2
Пример #8
0
def main():
    # works
    files = get_files_of_type('tests', '.op2')

    foldersFile = os.path.join(pkg_path, 'bdf', 'test', 'tests', 'foldersRead.txt')

    iSubcases = []
    debug     = False
    make_geom = False
    write_bdf = False
    write_f06 = True
    write_op2 = False
    is_vector   = [True, False] # is this vectorized
    vector_stop = [True, True]  # corresponds to is_vector; stop if case fails=True
    binary_debug = False  # catch any errors

    delete_f06 = True
    saveCases = True
    regenerate = False
    stopOnFailure = False
    getSkipCards = False

    if getSkipCards:
        files2 = parse_skipped_cards('skippedCards.out')
    elif regenerate:
        files2 = get_all_files(foldersFile, '.op2')
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failedCases.in')
    files = files2

    skipFiles = ['nltrot99.op2', 'rot12901.op2', 'plan20s.op2'] # giant

    nStart = 0
    nStop = 10000
    try:
        os.remove('skippedCards.out')
    except:
        pass

    print("nFiles = %s" % len(files))
    import time
    t0 = time.time()
    run_lots_of_files(files, make_geom=make_geom, write_bdf=write_bdf,
                   write_f06=write_f06, delete_f06=delete_f06,
                   write_op2=write_op2, debug=debug, saveCases=saveCases, skipFiles=skipFiles,
                   stopOnFailure=stopOnFailure,
                   is_vector=is_vector, vector_stop=vector_stop,
                   nStart=nStart, nStop=nStop, binary_debug=binary_debug)
    print("dt = %f" %(time.time() - t0))
    sys.exit('final stop...')
Пример #9
0
def main():
    # works
    files = get_files_of_type('tests','.op2')

    foldersFile = 'tests/foldersRead.txt'

    iSubcases = []
    debug     = False
    make_geom = False
    write_bdf = False
    write_f06 = True
    write_op2 = False
    is_vector = False

    delete_f06 = True
    saveCases = True
    regenerate = False
    stopOnFailure = False
    getSkipCards = False

    if getSkipCards:
        files2 = parse_skipped_cards('skippedCards.out')
    elif regenerate:
        files2 = get_all_files(foldersFile,'.op2')
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failedCases.in')
    files = files2

    skipFiles = ['nltrot99.op2','rot12901.op2','plan20s.op2'] # giant

    nStart = 0
    nStop = 10000
    try:
        os.remove('skippedCards.out')
    except:
        pass

    print("nFiles = %s" % len(files))
    import time
    t0 = time.time()
    run_lots_of_files(files, make_geom=make_geom, write_bdf=write_bdf,
                   write_f06=write_f06, delete_f06=delete_f06,
                   write_op2=write_op2, debug=debug, saveCases=saveCases, skipFiles=skipFiles,
                   stopOnFailure=stopOnFailure, is_vector=is_vector,
                   nStart=nStart, nStop=nStop)
    print("dt = %f" %(time.time() - t0))
    sys.exit('final stop...')
Пример #10
0
def get_all_files(folders_file, file_type, max_size=4.2):
    """
    Gets all the files in the folder and subfolders.  Ignores missing folders.

    Parameters
    ----------
    folders_file : str
        path to the file with a list of folders
    file_type : str
        a file extension
    max_size : float; default=4.2
        size in MB for max file size

    Returns
    -------
    filenames : List[str]
        a series of filenames that were found
    """
    with open(folders_file, 'r') as file_obj:
        lines = file_obj.readlines()

    files2 = []
    for line in lines:
        line = line.strip()
        if line == '' or line.startswith('#'):
            continue
        if '"' in line:
            # "C:\Program Files\Siemens\NX 12.0\NXNASTRAN\nxn12\nast"
            line = line.strip('"')
            pthi = line.split('\\')
            unused_pth = os.path.join(*pthi)
            move_dir = os.path.join(line)
        else:
            # C:\MSC.Software\MSC.Nastran\msc20051\nast\doc
            move_dir = os.path.join(line)
        #move_dir = line.strip()
        if move_dir:
            if not os.path.exists(move_dir):
                #print("***move_dir doesn't exist = %r" % move_dir)
                continue
            print("move_dir = %s" % move_dir)
            #assert os.path.exists(move_dir), '%s doesnt exist' % move_dir
            files_in_dir = get_files_of_type(move_dir,
                                             file_type,
                                             max_size=max_size)
            files2 += files_in_dir
            #print('nfiles = %s/%s' % (len(files_in_dir), len(files2)))
    #print('nfiles = %s' % len(files2))
    return files2
Пример #11
0
def get_all_files(folders_file, file_type):
    f = open(folders_file, 'r')
    lines = f.readlines()
    files2 = []
    for line in lines:
        move_dir = os.path.join('r"' + line.strip() + '"')
        move_dir = line.strip()
        if move_dir and move_dir[0] != '#':
            if not os.path.exists(move_dir):
                print("***move_dir doesn't exist = %s" % move_dir)
                continue
            print("move_dir = %s" % move_dir)
            #assert os.path.exists(moveDir), '%s doesnt exist' % move_dir
            files2 += get_files_of_type(move_dir, file_type, maxSize=4.2)
    return files2
Пример #12
0
def get_all_files(folders_file, file_type):
    f = open(folders_file, 'r')
    lines = f.readlines()
    files2 = []
    for line in lines:
        move_dir = os.path.join('r"'+line.strip()+'"')
        move_dir = line.strip()
        if move_dir and move_dir[0] != '#':
            if not os.path.exists(move_dir):
                print("***move_dir doesn't exist = %s" % move_dir)
                continue
            print("move_dir = %s" % move_dir)
            #assert os.path.exists(moveDir), '%s doesnt exist' % move_dir
            files2 += get_files_of_type(move_dir, file_type, maxSize=4.2)
    return files2
Пример #13
0
def run(regenerate=True, make_geom=False, write_bdf=False, save_cases=True,
        debug=False, write_f06=True, compare=True, short_stats=False):
    # works
    files = get_files_of_type('tests', '.op2')

    folders_file = os.path.join(pkg_path, 'bdf', 'test', 'tests', 'foldersRead.txt')

    isubcases = []
    write_op2 = False
    is_vector = [True] # is this vectorized
    vector_stop = [True]  # corresponds to is_vector; stop if case fails=True
    binary_debug = [True, False]  # catch any errors
    quiet = True

    delete_f06 = True
    stop_on_failure = False
    get_skip_cards = False


    failed_cases_filename = 'failed_cases%s%s.in' % (sys.version_info[:2])
    if get_skip_cards:
        files2 = parse_skipped_cards('skipped_cards.out')
    elif regenerate:
        files2 = get_all_files(folders_file, '.op2')
        files2 += files
        files2.sort()
    else:
        print('failed_cases_filename = %r' % failed_cases_filename)
        files2 = get_failed_files(failed_cases_filename)
    files = files2

    skip_files = []
    #skip_files = ['nltrot99.op2', 'rot12901.op2', 'plan20s.op2'] # giant

    nstart = 0
    nstop = 20000
    try:
        os.remove('skipped_cards.out')
    except:
        pass

    print("nfiles = %s" % len(files))
    import time
    t0 = time.time()
    failed_files = run_lots_of_files(files, make_geom=make_geom, write_bdf=write_bdf,
                                     write_f06=write_f06, delete_f06=delete_f06,
                                     write_op2=write_op2, debug=debug,
                                     skip_files=skip_files, stop_on_failure=stop_on_failure,
                                     is_vector=is_vector, vector_stop=vector_stop,
                                     nstart=nstart, nstop=nstop, binary_debug=binary_debug,
                                     compare=compare, short_stats=short_stats,
                                     quiet=quiet, dev=True)
    if save_cases:
        if PY2:
            write = 'wb'
        else:
            write = 'w'

        with open(failed_cases_filename, write) as failed_cases_file:
            for op2file in failed_files:
                failed_cases_file.write('%s\n' % op2file)

    seconds = time.time() - t0
    minutes = seconds / 60.
    print("dt = %.2f seconds = %.2f minutes" % (seconds, minutes))
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed

    msg = '-----done with all models %s/%s=%.2f%%  nfailed=%s-----' % (
        npassed, ntotal,
        100. * npassed / float(ntotal),
        ntotal - npassed)
    print(msg)
    sys.exit("%s\ndt = %.2f seconds = %.2f minutes" % (msg, seconds, minutes))
Пример #14
0
def run(regenerate=True, run_nastran=False, debug=False, sum_load=True, xref=True,
        crash_cards=None):
    """Runs the full BDF test suite"""
    if crash_cards is None:
        crash_cards = []
    # F:\work\pyNastran\pyNastran\master2\pyNastran\bdf\test
    files = get_files_of_type('tests', '.bdf')
    files += get_files_of_type('tests', '.dat')
    folders_file = os.path.join(PKG_PATH, 'bdf', 'test', 'tests', 'foldersRead.txt')

    # isubcases = []
    # save_cases = True
    # stop_on_failure = False
    if run_nastran:
        if os.path.exists(r'C:\MSC.Software\MSC.Nastran\bin\nastran.exe'):
            nastran = r'C:\MSC.Software\MSC.Nastran\bin\nastran.exe scr=yes bat=no old=no '
        else:
            raise RuntimeError('cant find Nastran')
        # elif os.path.exsits():
    else:
        nastran = ''

    failed_cases_filename = 'failed_cases%s%s.in' % (sys.version_info[:2])
    if regenerate:
        files2 = get_all_files(folders_file, '.bdf')
        files2 += get_all_files(folders_file, '.nas')
        files2 += get_all_files(folders_file, '.dat')
        files2 = list(set(files2))
        files2.sort()
    else:
        print('failed_cases_filename = %r' % failed_cases_filename)
        files2 = get_failed_files(failed_cases_filename)

    #for filename in files2:
        #print(filename)
    skip_files = [
        'mp10a.dat',
        'mp20e.dat',
        'mp30.dat',
        'mp30b.dat',
        'mp60bd.dat',
        'mp60br.dat',
        'mp60cd.dat',
        'mp60cr.dat',
        'mp70a.dat',
        #'heli112em8.dat',  # horrible CORD1x model
    ]

    files = remove_marc_files(files2)
    files = [fname for fname in files
             if not os.path.basename(fname).startswith('out_')
             and '.test_op2.' not in fname # removing test output files
             and '.test_bdf.' not in fname
             and '.test_bdfv.' not in fname
             and 'tecplot' not in fname
             and os.path.basename(fname) not in skip_files]

    if os.path.exists('skipped_cards.out'):
        os.remove('skipped_cards.out')

    print("nfiles = %s" % len(files))
    cid = None
    check = True
    debug = False
    size = [8]
    is_double = [False]
    post = -1
    failed_files = run_lots_of_files(files, debug=debug, xref=xref,
                                     check=check, cid=cid,
                                     nastran=nastran,
                                     size=size, is_double=is_double, post=post,
                                     encoding='latin1', crash_cards=crash_cards,
                                     dev=True, pickle_obj=True)
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed
    sys.stderr.write('%i/%i passed\n' % (npassed, ntotal))

    if PY2:
        write = 'wb'
    else:
        write = 'w'
    with open(failed_cases_filename, write) as failed_cases_file:
        for fname in failed_files:
            failed_cases_file.write('%s\n' % fname)
    sys.exit('finished...')
Пример #15
0
def run(regenerate=True,
        make_geom=False,
        combine=True,
        write_bdf=False,
        build_pandas=True,
        xref_safe=False,
        save_cases=True,
        debug=False,
        write_f06=True,
        write_op2=False,
        compare=True,
        short_stats=False,
        write_hdf5=True):
    # works
    files = get_files_of_type('tests', '.op2')

    folders_file1 = os.path.join(PKG_PATH, 'bdf', 'test', 'tests',
                                 'foldersRead.txt')
    folders_file2 = os.path.join(PKG_PATH, 'op2', 'test', 'folders_read.txt')

    unused_isubcases = []
    binary_debug = [True, False]  # catch any errors
    quiet = True

    stop_on_failure = False
    get_skip_cards = False

    max_size = 4000.  # MB
    failed_cases_filename = 'failed_cases%s%s.in' % (sys.version_info[:2])
    if get_skip_cards:
        files2 = parse_skipped_cards('skipped_cards.out')
    elif regenerate or not os.path.exists(failed_cases_filename):
        files2 = get_all_files(folders_file1, '.op2', max_size=max_size)
        files2 = get_all_files(folders_file2, '.op2', max_size=max_size)
        files2 += files
        assert len(files2) > 0, files2
    else:
        print('failed_cases_filename = %r' % failed_cases_filename)
        files2 = get_failed_files(failed_cases_filename)
    assert len(files2) > 0, files2
    files = list(set(files2))
    files.sort()
    files = [filename for filename in files if '.test_op2.' not in filename]

    skip_files = []
    #skip_files = ['nltrot99.op2', 'rot12901.op2', 'plan20s.op2'] # giant

    nstart = 0
    nstop = 20000
    if os.path.exists('skipped_cards.out'):
        os.remove('skipped_cards.out')

    #try:
    #os.remove('skipped_cards.out')
    #except F:
    #pass

    print("nfiles = %s" % len(files))
    import time
    time0 = time.time()

    from pyNastran.op2.test.test_op2 import run_lots_of_files
    failed_files = run_lots_of_files(files,
                                     make_geom=make_geom,
                                     combine=combine,
                                     write_bdf=write_bdf,
                                     xref_safe=xref_safe,
                                     write_f06=write_f06,
                                     delete_f06=True,
                                     write_op2=write_op2,
                                     delete_op2=True,
                                     write_hdf5=write_hdf5,
                                     delete_hdf5=True,
                                     build_pandas=build_pandas,
                                     debug=debug,
                                     skip_files=skip_files,
                                     stop_on_failure=stop_on_failure,
                                     nstart=nstart,
                                     nstop=nstop,
                                     binary_debug=binary_debug,
                                     compare=compare,
                                     short_stats=short_stats,
                                     quiet=quiet,
                                     dev=True)
    if save_cases:
        with open(failed_cases_filename, 'w') as failed_cases_file:
            for op2file in failed_files:
                failed_cases_file.write('%s\n' % op2file)

    seconds = time.time() - time0
    minutes = seconds / 60.
    print("dt = %.2f seconds = %.2f minutes" % (seconds, minutes))
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed

    msg = '-----done with all models %s/%s=%.2f%%  nfailed=%s-----' % (
        npassed, ntotal, 100. * npassed / float(ntotal), ntotal - npassed)
    print(msg)
    sys.exit("%s\ndt = %.2f seconds = %.2f minutes" % (msg, seconds, minutes))
Пример #16
0
def run(regenerate=True):
    """Runs the full BDF test suite"""
    if crash_cards is None:
        crash_cards = []
    # F:\work\pyNastran\pyNastran\master2\pyNastran\bdf\test
    files = get_files_of_type('tests', '.bdf')
    files += get_files_of_type('tests', '.dat')
    folders_file = 'tests/foldersRead.txt'

    # isubcases = []
    # save_cases = True
    # stop_on_failure = False

    failed_cases_filename = 'failed_cases%s%s.in' % (sys.version_info[:2])
    if regenerate:
        files2 = get_all_files(folders_file, '.bdf')
        files2 += get_all_files(folders_file, '.nas')
        files2 += get_all_files(folders_file, '.dat')
        files2 += files
        files2.sort()
    else:
        print('failed_cases_filename = %r' % failed_cases_filename)
        files2 = get_failed_files(failed_cases_filename)

    skip_files = [
        'mp10a.dat',
        'mp20e.dat',
        'mp30.dat',
        'mp30b.dat',
        'mp60bd.dat',
        'mp60br.dat',
        'mp60cd.dat',
        'mp60cr.dat',
        'mp70a.dat',
        #'heli112em8.dat',  # horrible CORD1x model
    ]

    files = remove_marc_files(files2)
    files = [fname for fname in files
             if not os.path.basename(fname).startswith('out_')
             and '.test_op2.' not in fname  # removing test output files
             and '.test_bdf.' not in fname
             and 'tecplot' not in fname
             and os.path.basename(fname) not in skip_files]

    print("nfiles = %s" % len(files))
    check = True
    debug = False
    failed_files = run_lots_of_files(files, debug=debug,
                                     encoding='latin1',
                                     dev=True)
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed
    sys.stderr.write('%i/%i passed\n' % (npassed, ntotal))

    write = 'w'
    with open(failed_cases_filename, write) as failed_cases_file:
        for fname in failed_files:
            failed_cases_file.write('%s\n' % fname)
    sys.exit('finished...')
Пример #17
0
def run_docopt(argv=None):
    """
    The main function for the command line ``test_pynastran_gui`` script.
    """
    msg = "Usage:\n"
    # INPUT format may be explicitly or implicitly defined with or
    # without an output file
    msg += "  test_pynastrangui [-f FORMAT]           INPUT_FILENAME  OUTPUT_FILENAME [--log LOG] [--test]\n"
    msg += "  test_pynastrangui [-f FORMAT]           INPUT_FILENAME  [--log LOG] [--test]\n"
    msg += "  test_pynastrangui  -f FORMAT  [-r] [-d] INPUT_DIRECTORY [--log LOG] [--test]\n"
    msg += "  test_pynastrangui  -f FORMAT  [-r] [-d]                 [--log LOG] [--test]\n"

    msg += '  test_pynastrangui -h | --help\n'
    msg += '  test_pynastrangui -v | --version\n'
    msg += '\n'

    msg += 'Positional Arguments:\n'
    msg += '  INPUT_FILENAME   path to input file\n'
    msg += '  OUTPUT_FILENAME  path to output file\n'
    msg += '  INPUT_DIRECTORY  path to input directory\n'
    msg += '\n'

    msg += "Options:\n"
    msg += '  -f FORMAT, --format  format type (avus, cart3d, lawgs, nastran, panair,\n'
    msg += '                                    su2, stl, surf, tetgen, usm3d, ugrid)\n'
    msg += '  -d, --dir            directory to run tests on\n'
    msg += "  -r, --regenerate     Resets the tests\n"
    msg += '  --log LOG            debug, info, warning, error; default=debug\n'
    msg += '\n'

    msg += "Debug:\n"
    msg += "  --test    temporary dev mode (default=False)\n"

    msg += 'Info:\n'
    #msg += "  -q, --quiet    prints debug messages (default=True)\n"
    msg += '  -h, --help     show this help message and exit\n'
    msg += "  -v, --version  show program's version number and exit\n"

    if len(sys.argv) == 1:
        sys.exit(msg)
    ver = str(pyNastran.__version__)
    data = docopt(msg, argv=argv, help=True, version=ver, options_first=False)

    isdir = data['INPUT_DIRECTORY'] or not data['INPUT_FILENAME'] or data[
        '--dir']
    if isdir or data['--dir']:
        formati = data['--format'].lower()
        #print("sys.version_info[:2]) =", sys.version_info[:2])
        failed_cases_filename = 'failed_cases_%s_%s%s.in' % (
            formati, sys.version_info[0], sys.version_info[1])
        print(failed_cases_filename)

        if data['--regenerate'] or not os.path.exists(failed_cases_filename):
            dirname = data['INPUT_DIRECTORY']
            if not os.path.exists(dirname):
                msg = 'dirname=%r does not exist\n%s' % (
                    dirname, print_bad_path(dirname))
                raise RuntimeError(msg)
            if not os.path.isdir(dirname):
                msg = 'dirname=%r is not a directory' % dirname
                raise RuntimeError(msg)
            extensions = FORMAT_TO_EXTENSION[formati]
            input_filenames = [
                get_files_of_type(dirname,
                                  extension=extension,
                                  max_size=100.,
                                  limit_file='no_dig.txt')
                for extension in extensions
            ]
            input_filenames = list(
                itertools.chain.from_iterable(input_filenames))
        else:
            input_filenames = get_failed_files(failed_cases_filename)
        output_filenames = [None] * len(input_filenames)
    else:
        failed_cases_filename = None
        input_filename = data['INPUT_FILENAME']
        output_filename = data['OUTPUT_FILENAME']
        check_path(input_filename, 'input_filename')
        if not os.path.isfile(input_filename):
            msg = 'input_filename=%r is not a file' % input_filename
            raise RuntimeError(msg)
        input_filenames = [input_filename]
        output_filenames = [output_filename]

        if data['--format']:
            formati = data['--format'].lower()
        else:
            formati = determine_format(input_filename)
            print('formati', formati)
    #assert formati == 'nastran', 'format=%r' % formati

    if data['--log']:
        log_method = data['--log'].lower()
        assert log_method in ['debug', 'info', 'warning',
                              'error'], 'log_method=%r' % log_method
    else:
        log_method = 'debug'
    return formati, input_filenames, output_filenames, failed_cases_filename, log_method, data[
        '--test']
Пример #18
0
def main():
    # F:\work\pyNastran\pyNastran\master2\pyNastran\bdf\test
    files = get_files_of_type('tests', '.bdf')
    files += get_files_of_type('tests', '.dat')
    foldersFile = 'tests/foldersRead.txt'

    iSubcases = []
    debug = False

    saveCases = True
    regenerate = True
    stopOnFailure = False
    nastran = r'C:\MSC.Software\MSC.Nastran\bin\nastran.exe scr=yes bat=no old=no '
    nastran = ''

    if regenerate:
        files2 = get_all_files(foldersFile, '.bdf')
        files2 += get_all_files(foldersFile, '.nas')
        files2 += get_all_files(foldersFile, '.dat')
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failedCases.in')

    files = remove_marc_files(files2)
    files = [fname for fname in files
             if not os.path.basename(fname).startswith('out_')]  # removing test output files

    skipFiles = []  # giant

    nStart = 0
    nStop = 10000
    try:
        os.remove('skippedCards.out')
    except:
        pass

    print("nFiles = %s" % len(files))
    cid = None
    check = True
    xref = True
    debug = False
    size = [8]
    is_double = [False]
    post = -1
    failed_files = run_lots_of_files(files, debug=debug, xref=xref,
                                     check=check, cid=cid,
                                     nastran=nastran,
                                     size=size, is_double=is_double, post=post)
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed
    sys.stderr.write('%i/%i passed\n' % (npassed, ntotal))
    try:
        if PY2:
            f = open('failedCases.in', 'wb')
        else:
            f = open('failedCases.in', 'w')
    except IOError:
        #fds = get_open_fds()
        #print(get_file_names_from_file_number(fds))
        raise
    for fname in failed_files:
        f.write('%s\n' % fname)
    f.close()
    sys.exit('finished...')
Пример #19
0
def run(regenerate=True, run_nastran=False, debug=False, sum_load=True):
    """Runs the full BDF test suite"""
    # F:\work\pyNastran\pyNastran\master2\pyNastran\bdf\test
    files = get_files_of_type('tests', '.bdf')
    files += get_files_of_type('tests', '.dat')
    folders_file = 'tests/foldersRead.txt'

    # isubcases = []
    # save_cases = True
    # stop_on_failure = False
    if run_nastran:
        if os.path.exists(r'C:\MSC.Software\MSC.Nastran\bin\nastran.exe'):
            nastran = r'C:\MSC.Software\MSC.Nastran\bin\nastran.exe scr=yes bat=no old=no '
        else:
            raise RuntimeError('cant find Nastran')
        # elif os.path.exsits():
    else:
        nastran = ''

    if regenerate:
        files2 = get_all_files(folders_file, '.bdf')
        files2 += get_all_files(folders_file, '.nas')
        files2 += get_all_files(folders_file, '.dat')
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failedCases.in')

    files = remove_marc_files(files2)
    files = [fname for fname in files
             if not os.path.basename(fname).startswith('out_')
             and '.test_op2.' not in fname]  # removing test output files

    # skip_files = []  # giant

    # nstart = 0
    # nstop = 10000
    if os.path.exists('skippedCards.out'):
        os.remove('skippedCards.out')

    print("nFiles = %s" % len(files))
    cid = None
    check = True
    xref = True
    debug = False
    size = [8]
    is_double = [False]
    post = -1
    failed_files = run_lots_of_files(files, debug=debug, xref=xref,
                                     check=check, cid=cid,
                                     nastran=nastran,
                                     size=size, is_double=is_double, post=post)
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed
    sys.stderr.write('%i/%i passed\n' % (npassed, ntotal))

    if PY2:
        write = 'wb'
    else:
        write = 'w'
    with open('failedCases.in', write) as failed_cases_file:
        for fname in failed_files:
            failed_cases_file.write('%s\n' % fname)
    sys.exit('finished...')
Пример #20
0
def main():
    # works
    files = get_files_of_type('tests', '.f06')

    folders_file = os.path.join(pkg_path, 'bdf', 'test', 'tests', 'foldersRead.txt')
    #files2 = ['ann6611.f06']

    isubcases = []
    debug = False
    save_cases = True
    regenerate = True
    stop_on_failure = False
    get_skip_cards = False

    if get_skip_cards:
        files2 = parse_skipped_cards('skipped_cards.out')
    elif regenerate:
        files2 = get_all_files(folders_file, '.f06')
        for fname in files2:
            if 'test_f06' in fname:
                os.remove(fname)

        files3 = []
        for fname in files2:
            if 'test_f06' not in fname:
                files3.append(fname)
        #files2 = [fname if 'test_f06' not in fname for fname in files2]
        files2 = files3
        #print(files2)
        #files2 = []
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failed_cases.in')

    files2 = [fname for fname in files2
              if '.test_op2.f06' not in fname
              and '.test_f06.f06' not in fname]
    #files2 = [r'D:\work\move\move_tpl\ar29sadl.f06']
    #files = files+files2
    files = files2
    #files = [r'D:\work\move\move_tpl\see101hs.f06']
    #print(len(files))
    #files = []

    #            HIS, R1B        EQEXIN
    #skipFiles = ['accopt3.f06','acms111m.f06','adjoint.f06','aerobeam.f06',] # tpl
    skip_files = ['nltrot99.f06', 'rot12901.f06']  # giant
    #print(files)

    nstart = 0
    nstop = 10000
    try:
        os.remove('skipped_cards.out')
    except:
        pass

    print("nfiles = %s" % len(files))
    #print(files)
    import time
    t0 = time.time()
    run_lots_of_files(files, debug, save_cases, skip_files,
                      stop_on_failure, nstart, nstop)
    print("dt = %f" % (time.time() - t0))
    sys.exit('final stop...')
Пример #21
0
    for fd in range(0, soft):
        try:
            flags = fcntl.fcntl(fd, fcntl.F_GETFD)
        except IOError:
            continue
        fds.append(fd)
    return fds

def get_file_names_from_file_number(fds):
    names = []
    for fd in fds:
        names.append(os.readlink('/proc/self/fd/%d' % fd))
    return names

if __name__ == '__main__':
    files = get_files_of_type('tests', '.bdf')
    files += get_files_of_type('tests', '.dat')
    foldersFile = 'tests/foldersRead.txt'

    iSubcases = []
    debug = False

    saveCases = True
    regenerate = True
    stopOnFailure = False

    if regenerate:
        files2 = get_all_files(foldersFile, '.bdf')
        files2 += get_all_files(foldersFile, '.nas')
        files2 += get_all_files(foldersFile, '.dat')
        files2 += files
Пример #22
0
 def test_get_files_of_type(self):
     """tests the get_files_of_type function"""
     model_path = os.path.join(PKG_PATH, '..', 'models')
     op2_files = get_files_of_type(model_path, extension='.op2', max_size=100.,
                                   limit_file='no_dig.txt')
Пример #23
0
def run(regenerate=True, make_geom=False, write_bdf=False, save_cases=True,
        debug=False, write_f06=True, compare=True, short_stats=False):
    # works
    files = get_files_of_type('tests', '.op2')

    folders_file = os.path.join(pkg_path, 'bdf', 'test', 'tests', 'foldersRead.txt')

    isubcases = []
    write_op2 = False
    is_vector = [True] # is this vectorized
    vector_stop = [True]  # corresponds to is_vector; stop if case fails=True
    binary_debug = [True, False]  # catch any errors
    quiet = True

    delete_f06 = True
    stop_on_failure = False
    get_skip_cards = False


    failed_cases_filename = 'failed_cases%s%s.in' % (sys.version_info[:2])
    if get_skip_cards:
        files2 = parse_skipped_cards('skipped_cards.out')
    elif regenerate:
        files2 = get_all_files(folders_file, '.op2')
        files2 += files
        files2.sort()
    else:
        print('failed_cases_filename = %r' % failed_cases_filename)
        files2 = get_failed_files(failed_cases_filename)
    files = files2

    skip_files = []
    #skip_files = ['nltrot99.op2', 'rot12901.op2', 'plan20s.op2'] # giant

    nstart = 0
    nstop = 20000
    try:
        os.remove('skipped_cards.out')
    except:
        pass

    print("nfiles = %s" % len(files))
    import time
    t0 = time.time()
    failed_files = run_lots_of_files(files, make_geom=make_geom, write_bdf=write_bdf,
                                     write_f06=write_f06, delete_f06=delete_f06,
                                     write_op2=write_op2, debug=debug,
                                     skip_files=skip_files, stop_on_failure=stop_on_failure,
                                     is_vector=is_vector, vector_stop=vector_stop,
                                     nstart=nstart, nstop=nstop, binary_debug=binary_debug,
                                     compare=compare, short_stats=short_stats,
                                     quiet=quiet, dev=True)
    if save_cases:
        if PY2:
            write = 'wb'
        else:
            write = 'w'

        with open(failed_cases_filename, write) as failed_cases_file:
            for op2file in failed_files:
                failed_cases_file.write('%s\n' % op2file)

    seconds = time.time() - t0
    minutes = seconds / 60.
    print("dt = %.2f seconds = %.2f minutes" % (seconds, minutes))
    ntotal = len(files)
    nfailed = len(failed_files)
    npassed = ntotal - nfailed

    msg = '-----done with all models %s/%s=%.2f%%  nfailed=%s-----' % (
        npassed, ntotal,
        100. * npassed / float(ntotal),
        ntotal - npassed)
    print(msg)
    sys.exit("%s\ndt = %.2f seconds = %.2f minutes" % (msg, seconds, minutes))
Пример #24
0
def main():
    # works
    files = get_files_of_type('tests', '.f06')

    folders_file = os.path.join(pkg_path, 'bdf', 'test', 'tests',
                                'foldersRead.txt')
    #files2 = ['ann6611.f06']

    isubcases = []
    debug = False
    save_cases = True
    regenerate = True
    stop_on_failure = False
    get_skip_cards = False

    if get_skip_cards:
        files2 = parse_skipped_cards('skipped_cards.out')
    elif regenerate:
        files2 = get_all_files(folders_file, '.f06')
        for fname in files2:
            if 'test_f06' in fname:
                os.remove(fname)

        files3 = []
        for fname in files2:
            if 'test_f06' not in fname:
                files3.append(fname)
        #files2 = [fname if 'test_f06' not in fname for fname in files2]
        files2 = files3
        #print(files2)
        #files2 = []
        files2 += files
        files2.sort()
    else:
        files2 = get_failed_files('failed_cases.in')

    files2 = [
        fname for fname in files2
        if '.test_op2.f06' not in fname and '.test_f06.f06' not in fname
    ]
    #files2 = [r'D:\work\move\move_tpl\ar29sadl.f06']
    #files = files+files2
    files = files2
    #files = [r'D:\work\move\move_tpl\see101hs.f06']
    #print(len(files))
    #files = []

    #            HIS, R1B        EQEXIN
    #skipFiles = ['accopt3.f06','acms111m.f06','adjoint.f06','aerobeam.f06',] # tpl
    skip_files = ['nltrot99.f06', 'rot12901.f06']  # giant
    #print(files)

    nstart = 0
    nstop = 10000
    try:
        os.remove('skipped_cards.out')
    except:
        pass

    print("nfiles = %s" % len(files))
    #print(files)
    import time
    t0 = time.time()
    run_lots_of_files(files, debug, save_cases, skip_files, stop_on_failure,
                      nstart, nstop)
    print("dt = %f" % (time.time() - t0))
    sys.exit('final stop...')