def testSpreadsheetDataInterpolateNoName(self): sp=SpreadsheetData(data=data3a,names=names3a) data=sp(-1,invalidExtend=True) self.assertEqual(len(data),2) self.assertAlmostEqual(data["val"],0) self.assertEqual(data["descr"],b('val_0')) data=sp(2,invalidExtend=True) self.assertAlmostEqual(data["val"],4) self.assertEqual(data["descr"],b('val_2')) data=sp(5.1,invalidExtend=True) self.assertAlmostEqual(data["val"],26.1) self.assertEqual(data["descr"],b('val_5'))
def testSpreadsheetDataInterpolateNoName(self): sp = SpreadsheetData(data=data3a, names=names3a) data = sp(-1, invalidExtend=True) self.assertEqual(len(data), 2) self.assertAlmostEqual(data["val"], 0) self.assertEqual(data["descr"], b('val_0')) data = sp(2, invalidExtend=True) self.assertAlmostEqual(data["val"], 4) self.assertEqual(data["descr"], b('val_2')) data = sp(5.1, invalidExtend=True) self.assertAlmostEqual(data["val"], 26.1) self.assertEqual(data["descr"], b('val_5'))
def testGetTimesTimelineWithStringNoTitle(self): sd = TimelineDirectory(self.theDir, dirName="state") st = sd["state"] spread = st(False) self.assertEqual(spread(-1, "state"), "") self.assertEqual(spread(1, "state"), b("da")) self.assertEqual(spread(2.7, "state"), b("hier")) self.assertAlmostEqual(spread(2.7, "code"), 2.85) data = spread(2.7) self.assertEqual(len(data), 2) self.assertEqual(data["state"], b("hier")) self.assertAlmostEqual(data["code"], 2.85) import numpy as np self.assertEqual(spread.data.dtype[1].kind, "S")
def testGetTimesTimelineWithStringNoTitle(self): sd=TimelineDirectory(self.theDir,dirName="state") st=sd["state"] spread=st(False) self.assertEqual(spread(-1,"state"),"") self.assertEqual(spread(1,"state"),b("da")) self.assertEqual(spread(2.7,"state"),b("hier")) self.assertAlmostEqual(spread(2.7,"code"),2.85) data=spread(2.7) self.assertEqual(len(data),2) self.assertEqual(data["state"],b("hier")) self.assertAlmostEqual(data["code"],2.85) import numpy as np self.assertEqual(spread.data.dtype[1].kind,"S")
def testGetTimesTimelineWithString(self): sd=TimelineDirectory(self.theDir,dirName="state") st=sd["state"] self.assertEqual(st.getData([0.5,1,2,4]),[['nix', 1.0], ['da', 2.0], ['da', 2.0], ['hier', 3.0]]) self.assert_(not st.isProbe()) spread=st() self.assertEqual(spread(-1,"state_t=0 state"),"") self.assertEqual(spread(1,"state_t=0 state"),b("da")) self.assertEqual(spread(2.7,"state_t=0 state"),b("hier")) self.assertAlmostEqual(spread(2.7,"state_t=0 code"),2.85) data=spread(2.7) self.assertEqual(len(data),2) self.assertEqual(data["state_t=0 state"],b("hier")) self.assertAlmostEqual(data["state_t=0 code"],2.85)
def toNumpy(self, regexp, dtypes): import numpy as np try: return np.fromregex(StringIO(self.data), regexp, dtypes) except TypeError: from PyFoam.ThirdParty.six import BytesIO, b return np.fromregex(BytesIO(b(self.data)), regexp, dtypes)
def __init__(self,fName): aPath=path.abspath(fName) pSep=aPath.split(path.sep) self.name=path.splitext(pSep[-1])[0] self.time=float(pSep[-2]) self.function=pSep[-3] self.cloudName=pSep[-4] f=CleanCharactersFile(fName,charsToRemove="()") r=BytesIO(b(f.content)) hLine=str(r.readline().strip()).replace("'","") # missing in some libraries if hLine.find("cellI tetFaceI")>0: hLine=hLine.replace("cellI tetFaceI","cellI faceI stepFraction tetFaceI") header=[str(n) for n in hLine.split()[1:]] spec=[] for name in header: if name in ["currentProc","cellI","faceI","tetFaceI","tetPtI","origProc","origId","typeId"]: spec.append((name,"i8")) elif name in ["active"]: spec.append((name,np.bool_)) else: spec.append((str(name),"f8")) self.data=np.recfromtxt(r,dtype=spec)
def testGetTimesTimelineWithString(self): sd = TimelineDirectory(self.theDir, dirName="state") st = sd["state"] self.assertEqual(st.getData( [0.5, 1, 2, 4]), [['nix', 1.0], ['da', 2.0], ['da', 2.0], ['hier', 3.0]]) self.assert_(not st.isProbe()) spread = st() self.assertEqual(spread(-1, "state_t=0 state"), "") self.assertEqual(spread(1, "state_t=0 state"), b("da")) self.assertEqual(spread(2.7, "state_t=0 state"), b("hier")) self.assertAlmostEqual(spread(2.7, "state_t=0 code"), 2.85) data = spread(2.7) self.assertEqual(len(data), 2) self.assertEqual(data["state_t=0 state"], b("hier")) self.assertAlmostEqual(data["state_t=0 code"], 2.85)
def on_service_state_change(zeroconf, service_type, name, state_change): if verbose: print_("Service %s of type %s state changed: %s" % (name, service_type, state_change)) if state_change is zc.ServiceStateChange.Added: info = zero.get_service_info(service_type, name) if info: if verbose: print_(" Address: %s:%d" % (socket.inet_ntoa(info.address), info.port)) print_(" Weight: %d, priority: %d" % (info.weight, info.priority)) print_(" Server: %s" % (info.server, )) if info.properties: if verbose: print_(" Properties are:") for key, value in info.properties.items(): print_(" %s: %s" % (key, value)) try: new = ServerInfo( info.properties[b("ip")], int(info.properties[b("pid")]), int(info.properties[b("port")]), eval(info.properties[b("ssl")]) if b("ssl") in info.properties else False) new.queryData() servers[name] = new if progress: print_("+", flush=True, end="") except socket.error: warning("Connection refused by", new["ip"]) else: if verbose: print_(" No properties") else: if verbose: print_(" No info") elif state_change is zc.ServiceStateChange.Removed: if name in servers: if verbose: print_("Remove", name) del servers[name] if progress: print_("-", flush=True, end="")
def toNumpy(self, regexp, dtypes): """Assume that the unparsed data contains line-wise data and transform it to a numpy-array. @param regexp: regular expression where the groups correspond to the dtypes, @param dtypes: list with dtypes""" import numpy as np try: return np.fromregex(StringIO(self.data), regexp, dtypes) except TypeError: from PyFoam.ThirdParty.six import BytesIO, b return np.fromregex(BytesIO(b(self.data)), regexp, dtypes)
def on_service_state_change(zeroconf, service_type, name, state_change): if verbose: print_("Service %s of type %s state changed: %s" % (name, service_type, state_change)) if state_change is zc.ServiceStateChange.Added: info = zero.get_service_info(service_type, name) if info: if verbose: print_(" Address: %s:%d" % (socket.inet_ntoa(info.address), info.port)) print_(" Weight: %d, priority: %d" % (info.weight, info.priority)) print_(" Server: %s" % (info.server,)) if info.properties: if verbose: print_(" Properties are:") for key, value in info.properties.items(): print_(" %s: %s" % (key, value)) try: new=ServerInfo(info.properties[b("ip")], int(info.properties[b("pid")]), int(info.properties[b("port")]), eval(info.properties[b("ssl")]) if b("ssl") in info.properties else False) new.queryData() servers[name]=new if progress: print_("+",flush=True,end="") except socket.error: warning("Connection refused by",new["ip"]) else: if verbose: print_(" No properties") else: if verbose: print_(" No info") elif state_change is zc.ServiceStateChange.Removed: if name in servers: if verbose: print_("Remove",name) del servers[name] if progress: print_("-",flush=True,end="")
def testSpreadsheetDataInterpolationWithString(self): sp = SpreadsheetData(data=data3a, names=names3a) self.assertAlmostEqual(sp(-1, "val", invalidExtend=True), 0) self.assert_(numpy.isnan(sp(-1, "val"))) self.assertAlmostEqual(sp(10, "val", invalidExtend=True), 81) self.assert_(numpy.isnan(sp(10, "val"))) self.assertAlmostEqual(sp(1, "val"), 1) self.assertAlmostEqual(sp(1.5, "val"), 2.5) self.assertAlmostEqual(sp(5, "val"), 25) self.assertAlmostEqual(sp(5.1, "val"), 26.1) self.assertAlmostEqual(sp(8.9, "val"), 79.3) self.assertAlmostEqual(sp(8.9, "t"), 8.9) self.assertAlmostEqual(sp(1, "val", noInterpolation=True), 1) self.assert_(numpy.isnan(sp(1.5, "val", noInterpolation=True))) self.assertEqual(sp(-1, "descr", invalidExtend=True), b('val_0')) self.assertEqual(sp(-1, "descr"), '') self.assertEqual(sp(2, "descr"), b('val_2')) self.assertEqual(sp(3, "descr"), b('val_3')) self.assertEqual(sp(2.4, "descr"), b('val_2')) self.assertEqual(sp(2.5, "descr"), b('val_3')) self.assertEqual(sp(2.7, "descr"), b('val_3'))
def testSpreadsheetDataInterpolationWithString(self): sp=SpreadsheetData(data=data3a,names=names3a) self.assertAlmostEqual(sp(-1,"val",invalidExtend=True),0) self.assert_(numpy.isnan(sp(-1,"val"))) self.assertAlmostEqual(sp(10,"val",invalidExtend=True),81) self.assert_(numpy.isnan(sp(10,"val"))) self.assertAlmostEqual(sp(1,"val"),1) self.assertAlmostEqual(sp(1.5,"val"),2.5) self.assertAlmostEqual(sp(5,"val"),25) self.assertAlmostEqual(sp(5.1,"val"),26.1) self.assertAlmostEqual(sp(8.9,"val"),79.3) self.assertAlmostEqual(sp(8.9,"t"),8.9) self.assertAlmostEqual(sp(1,"val",noInterpolation=True),1) self.assert_(numpy.isnan(sp(1.5,"val",noInterpolation=True))) self.assertEqual(sp(-1,"descr",invalidExtend=True),b('val_0')) self.assertEqual(sp(-1,"descr"),'') self.assertEqual(sp(2,"descr"),b('val_2')) self.assertEqual(sp(3,"descr"),b('val_3')) self.assertEqual(sp(2.4,"descr"),b('val_2')) self.assertEqual(sp(2.5,"descr"),b('val_3')) self.assertEqual(sp(2.7,"descr"),b('val_3'))
self.assertEqual(diff1["max"], None) self.assertEqual(diff1["average"], None) self.assertEqual(diff1["wAverage"], None) self.assertEqual(diff2["max"], None) self.assertEqual(diff2["average"], None) self.assertEqual(diff2["wAverage"], None) theSuite.addTest(unittest.makeSuite(SpreadsheetDifferenceTest, "test")) from PyFoam.ThirdParty.six import BytesIO, b filecontent = b("""# time Initial Final Iterations 0.005 1 2.96338e-06 8 0.01 0.148584 7.15711e-06 6 0.015 0.0448669 2.39894e-06 6 0.02 0.0235438 1.57074e-06 6 0.025 0.0148809 5.14401e-06 5 """) from PyFoam.ThirdParty.six import BytesIO from tempfile import mktemp class SpreadsheetReadFileTest(unittest.TestCase): def testSpreadsheetReadFileTest(self): fName = mktemp() open(fName, "wb").write(filecontent) sp = SpreadsheetData(txtName=fName) self.assertEqual(len(sp.names()), 4)
diff2=sp2.compare(sp,"val",common=True) self.assertEqual(diff1["max"],None) self.assertEqual(diff1["average"],None) self.assertEqual(diff1["wAverage"],None) self.assertEqual(diff2["max"],None) self.assertEqual(diff2["average"],None) self.assertEqual(diff2["wAverage"],None) theSuite.addTest(unittest.makeSuite(SpreadsheetDifferenceTest,"test")) from PyFoam.ThirdParty.six import BytesIO,b filecontent=b("""# time Initial Final Iterations 0.005 1 2.96338e-06 8 0.01 0.148584 7.15711e-06 6 0.015 0.0448669 2.39894e-06 6 0.02 0.0235438 1.57074e-06 6 0.025 0.0148809 5.14401e-06 5 """) from PyFoam.ThirdParty.six import BytesIO from tempfile import mktemp class SpreadsheetReadFileTest(unittest.TestCase): def testSpreadsheetReadFileTest(self): fName=mktemp() open(fName,"wb").write(filecontent) sp=SpreadsheetData(txtName=fName) self.assertEqual(len(sp.names()),4) self.assertEqual(sp.size(),5)