Example #1
0
 def test_nArrayFile(self):
     _, array_filename = tempfile.mkstemp(suffix='.oa',
                                          dir=tempfile.tempdir)
     oapackage.writearrayfile(array_filename,
                              [oapackage.exampleArray(4, 0)])
     self.assertEqual(oapackage.oahelper.nArrayFile(array_filename), 1)
     self.assertEqual(oapackage.oahelper.nArrayFile('notavalidfile.oa'), -1)
Example #2
0
 def test_findfiles(self):
     _, array_filename = tempfile.mkstemp(suffix='.oa',
                                          dir=tempfile.tempdir)
     lst = [oapackage.exampleArray(4, 0)]
     oapackage.writearrayfile(array_filename, lst)
     lst = oapackage.oahelper.findfiles(tempfile.tempdir, '.*oa')
     self.assertIn(os.path.split(array_filename)[-1], lst)
Example #3
0
 def test_write_latex_format(self):
     lst = [oapackage.exampleArray(2, 0)]
     filename = tempfile.mktemp(suffix='.tex')
     oapackage.writearrayfile(filename, oapackage.arraylist_t(lst),
                              oapackage.ALATEX)
     with open(filename, 'rt') as fid:
         latex = fid.read()
     self.assertIsInstance(latex, str)
Example #4
0
    def test_misc_file_operations(self):
        _, array_filename = tempfile.mkstemp(suffix='.oa')
        lst = [oapackage.exampleArray(4, 0)]
        oapackage.writearrayfile(array_filename, lst)
        assert (oapackage.oahelper.oaIsBinary(array_filename) is False)
        oapackage.writearrayfile(array_filename, oapackage.exampleArray(4, 0),
                                 oapackage.ABINARY)
        assert (oapackage.oahelper.oaIsBinary(array_filename))

        oapackage.oahelper.oainfo(array_filename)

        _ = oapackage.oahelper.compressOAfile(array_filename)
Example #5
0
def randomizearrayfile(afile, afileout, verbose=1):
    """ Randomize a file with arrays """
    lst = oapackage.readarrayfile(afile)
    rlst = oapackage.oalib.arraylist_t()
    for ii, al in enumerate(lst):
        adata = oalib.arraylink2arraydata(al)
        trans = oalib.array_transformation_t(adata)
        if verbose >= 2:
            print('randomizing array %d\n' % ii)
        trans.randomize()
        alr = trans.apply(al)
        rlst.push_back(alr)
    oapackage.writearrayfile(afileout, rlst)
Example #6
0
 def test_selectArrays(self):
     _, array_filename = tempfile.mkstemp(suffix='.oa',
                                          dir=tempfile.tempdir)
     _, array_filename_out = tempfile.mkstemp(suffix='.oa',
                                              dir=tempfile.tempdir)
     oapackage.writearrayfile(
         array_filename,
         [oapackage.exampleArray(4, 0),
          oapackage.exampleArray(4, 0)])
     oapackage.oahelper.selectArraysInFile(array_filename,
                                           array_filename_out, [1],
                                           afmode=oalib.ABINARY,
                                           verbose=1,
                                           cache=0)
     oapackage.oahelper.selectArraysInFile(array_filename,
                                           array_filename_out, [-1],
                                           afmode=oalib.ABINARY,
                                           verbose=1,
                                           cache=0)
Example #7
0
def randomizearrayfile(input_filename, output_filename, verbose=1):
    """ Randomize a file with orthogonal arrays

    Each array is transformed with a random transformation

    Args:
        afile (str): input file
        afileout (str): output file
    """
    lst = oapackage.readarrayfile(input_filename)
    rlst = oapackage.oalib.arraylist_t()
    for ii, al in enumerate(lst):
        adata = oalib.arraylink2arraydata(al)
        trans = oalib.array_transformation_t(adata)
        if verbose >= 2:
            print('randomizing array %d\n' % ii)
        trans.randomize()
        alr = trans.apply(al)
        rlst.push_back(alr)
    oapackage.writearrayfile(output_filename, rlst)
Example #8
0
def randomizearrayfile(input_filename, output_filename, verbose=1):
    """ Randomize a file with orthogonal arrays

    Each array is transformed with a random transformation

    Args:
        afile (str): input file
        afileout (str): output file
    """
    lst = oapackage.readarrayfile(input_filename)
    rlst = oapackage.oalib.arraylist_t()
    for ii, al in enumerate(lst):
        adata = oalib.arraylink2arraydata(al)
        trans = oalib.array_transformation_t(adata)
        if verbose >= 2:
            print('randomizing array %d\n' % ii)
        trans.randomize()
        alr = trans.apply(al)
        rlst.push_back(alr)
    oapackage.writearrayfile(output_filename, rlst)
Example #9
0
    raise Exception('could not open file %s' % inputfile)

print('oaselect: reading %d arrays from %s' % (infile.narrays, inputfile) )

#%% Loop over the arrays
outlist=[]

if narrays==-1:
    narrays=oapackage.arrayfile_t.NARRAYS_MAX
for ii in range(narrays):
    oapackage.tprint('oaselect: parse array %d/%d'  % (ii, narrays) )
    al=infile.readnext()
    if al.index==-1:
        break
    if verbose>=3:
        print('  index %d'  % al.index)
    if fname=='subset':
        if ii%args.nsubset==0:
            outlist.append(al)
    else:
        if filterArray(al, fname, verbose=0):
            outlist.append(al)
if narrays>0:
    oapackage.tprint('oaselect: parse array %d/%d'  % (ii, narrays), dt=-1 )

oapackage.writearrayfile(outputfile, outlist, fmode, infile.nrows, infile.ncols)

#%%
#outfile.closefile()
print('oaselect: done (selected %d arrays)' % len(outlist))