本文整理汇总了Python中ufora.native.FORA类的典型用法代码示例。如果您正苦于以下问题:Python FORA类的具体用法?Python FORA怎么用?Python FORA使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FORA类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_joas
def test_joas(self):
#"test assertions about JOAs of particular axioms"
for item in self.vals_to_test:
jovt = self.getJOVT(item[0])
if len(item) == 4:
assert item[3] == "hasSideEffects", "illegal third argument to JOA"
expected_joa = FORANative.JudgmentOnAction(
FORANative.parseStringToJOR(item[1]),
FORANative.parseStringToJOR(item[2]),
True if len(item) == 4 and item[3] == "hasSideEffects" else False
)
computed_joa = self.joa(jovt)
if computed_joa:
self.assertTrue(
expected_joa.resultPart() == computed_joa.resultPart(),
"for JOVT %s should have had JOA resultPart: %s, but had: %s" \
% (jovt, expected_joa.resultPart(), computed_joa.resultPart())
)
#be a little more relaxed on the throwParts
self.assertTrue(
expected_joa.throwPart().covers(computed_joa.throwPart()),
"for JOVT %s: expected JOA throwPart %s does not cover computed JOA %s" \
% (jovt, expected_joa.throwPart(), computed_joa.throwPart())
)
if len(expected_joa.throwPart()) > 0:
self.assertTrue(
len(computed_joa.throwPart()) > 0,
"for JOVT %s: expected JOA %s throws, but computed JOA %s does not" \
%(jovt, expected_joa, computed_joa)
)
开发者ID:Sandy4321,项目名称:ufora,代码行数:32,代码来源:AxiomJOA_test.py
示例2: test_extractPausedComputationDuringVectorLoad
def test_extractPausedComputationDuringVectorLoad(self):
self.runtime = Runtime.getMainRuntime()
#self.dynamicOptimizer = self.runtime.dynamicOptimizer
vdm = FORANative.VectorDataManager(callbackScheduler, Setup.config().maxPageSizeInBytes)
context = ExecutionContext.ExecutionContext(
dataManager = vdm,
allowInterpreterTracing = False
)
context.evaluate(
FORA.extractImplValContainer(FORA.eval("fun() { [1,2,3].paged }")),
FORANative.ImplValContainer(FORANative.makeSymbol("Call"))
)
pagedVec = context.getFinishedResult().asResult.result
context.placeInEvaluationState(
FORANative.ImplValContainer(
(pagedVec,
FORANative.ImplValContainer(FORANative.makeSymbol("GetItem")),
FORANative.ImplValContainer(0))
)
)
vdm.unloadAllPossible()
context.resume()
self.assertTrue(context.isVectorLoad())
computation = context.extractPausedComputation()
self.assertEqual(len(computation.frames),1)
开发者ID:Sandy4321,项目名称:ufora,代码行数:35,代码来源:ExecutionContext_test.py
示例3: test_createInstance_2
def test_createInstance_2(self):
classIvc = FORA.eval(
"""let C = class {
member y;
member x;
};
C"""
).implVal_
x = 1
y = 2
res = ForaNative.simulateApply(
ForaNative.ImplValContainer(
(
classIvc,
makeSymbolIvc("CreateInstance"),
ForaNative.ImplValContainer(y),
ForaNative.ImplValContainer(x),
)
)
)
self.assertIsNotNone(res)
computed_x = ForaNative.simulateApply(
ForaNative.ImplValContainer((res, self.Symbol_member, makeSymbolIvc("x")))
)
self.assertEqual(computed_x, ForaNative.ImplValContainer(x))
开发者ID:vishnur,项目名称:ufora,代码行数:30,代码来源:FunctionStage1Simulation_test.py
示例4: getCacheRequestComputationResult
def getCacheRequestComputationResult(cacheCallElement):
bucketname = cacheCallElement[1].pyvalOrNone
keyname = cacheCallElement[2].pyvalOrNone
if not isinstance(bucketname, str) or not isinstance(keyname, str):
return ForaNative.ComputationResult.Exception(
ForaNative.ImplValContainer("Badly formed S3 dataset request: %s" % cacheCallElement)
)
s3Interface = getCurrentS3Interface()
if s3Interface.keyExists(bucketname, keyname):
keysAndSizesMatching = [(keyname, s3Interface.getKeySize(bucketname, keyname))]
else:
keysAndSizesMatching = s3Interface.listKeysWithPrefix(bucketname, keyname + "_")
indicesKeysAndSizes = []
for key, size, mtime in keysAndSizesMatching:
try:
index = int(key[len(keyname)+1:])
indicesKeysAndSizes.append((index, key, size))
except ValueError:
pass
keysAndSizesMatching = [(key, size) for _, key, size in sorted(indicesKeysAndSizes)]
if not keysAndSizesMatching:
return ForaNative.ComputationResult.Exception(
ForaNative.ImplValContainer("No keys matching %s/%s using %s" % (
bucketname,
keyname,
s3Interface
))
)
wholeVectorIVC = ForaNative.getEmptyVector()
for key, size in keysAndSizesMatching:
CHUNK_SIZE = 10 * 1024 * 1024
chunks = getAppropriateChunksForSize(size, CHUNK_SIZE)
for lowIndex, highIndex in chunks:
externalDatasetDesc = ForaNative.ExternalDatasetDescriptor.S3Dataset(
bucketname,
key,
lowIndex,
highIndex
)
vectorDataId = ForaNative.VectorDataID.External(externalDatasetDesc)
vectorIVC = ForaNative.createFORAFreeBinaryVector(vectorDataId, highIndex - lowIndex)
wholeVectorIVC = ForaNative.concatenateVectors(wholeVectorIVC, vectorIVC)
return ForaNative.ComputationResult.Result(wholeVectorIVC, ForaNative.ImplValContainer())
开发者ID:Sandy4321,项目名称:ufora,代码行数:58,代码来源:CacheSemantics.py
示例5: testMatchStructureCantMatchTooSmallTuple
def testMatchStructureCantMatchTooSmallTuple(self):
runtime = Runtime.getMainRuntime()
axioms = runtime.getAxioms()
jov = FORANative.parseStringToJOV("((1,2,3),`StructureMatch,((nothing, false), (nothing, false), (nothing, false), (nothing, false)))")
axiom = axioms.getAxiomByJOVT(runtime.getTypedForaCompiler(), jov.asTuple.jov)
self.assertTrue(list(axiom.asNative.resultSignature.resultPart().vals) == [FORANative.parseStringToJOV("nothing")])
开发者ID:Sandy4321,项目名称:ufora,代码行数:9,代码来源:TupleMatchStructureAxiom_test.py
示例6: test_vectorOfPagedVectorApplyWithDropping
def test_vectorOfPagedVectorApplyWithDropping(self):
self.desirePublisher.desireNumberOfWorkers(3, blocking=True)
expr = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
let v =
Vector.range(20).apply(fun(ix) {
Vector.range(1250000.0+ix).paged
}).paged
let lookup = fun(ix) { v[ix] }
Vector.range(100).apply(fun(ix) { sum(0, 10**8); cached(lookup(ix)) })
v
}"""
)
)
computation1 = self.gateway.requestComputation(
makeComputationDefinitionFromIVCs(
expr,
ForaNative.makeSymbol("Call")
)
)
try:
response = self.gateway.finalResponses.get(timeout=60.0)
except Queue.Empty:
response = None
self.assertTrue(response is not None, response)
self.gateway.deprioritizeComputation(computation1)
self.desirePublisher.desireNumberOfWorkers(2, blocking=True)
expr2 = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
let res = 0
for ix in sequence(10)
res = res + Vector.range(12500000+ix).sum()
return res
}"""
)
)
computation2 = self.gateway.requestComputation(
makeComputationDefinitionFromIVCs(
expr2,
ForaNative.makeSymbol("Call")
)
)
try:
response = self.gateway.finalResponses.get(timeout=60.0)
except Queue.Empty:
response = None
self.assertTrue(response is not None)
self.assertTrue(response[1].isResult())
self.gateway.deprioritizeComputation(computation2)
开发者ID:vishnur,项目名称:ufora,代码行数:56,代码来源:TestBase.py
示例7: test_resolveAxiomDirectly_VeryLongComputation
def test_resolveAxiomDirectly_VeryLongComputation(self):
vectorIVC = FORA.extractImplValContainer(FORA.eval("[]"))
jov = ForaNative.parseStringToJOV(("({Vector([])}, `append, 2)"))
joa = self.axioms.resolveAxiomDirectly(self.compiler, jov.getTuple())
self.assertEqual(len(joa.throwPart()),0)
self.assertEqual(len(joa.resultPart()),1)
result = joa.resultPart()[0]
self.assertEqual(result, ForaNative.parseStringToJOV("{Vector([{Int64}])}"))
开发者ID:Sandy4321,项目名称:ufora,代码行数:13,代码来源:Compiler_test.py
示例8: test_sortManySmallVectors
def test_sortManySmallVectors(self):
self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
expr = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
let shouldAllBeTrue =
Vector.range(20, fun(o) {
sorting.isSorted(
sort(Vector.range(50000 + o, fun(x) { x / 10 }))
)
});
for s in shouldAllBeTrue {
if (not s)
return false
}
return true
}"""
)
)
response = self.evaluateWithGateway(
makeComputationDefinitionFromIVCs(
expr,
ForaNative.makeSymbol("Call")
)
)
self.assertTrue(response[1].isResult())
self.assertTrue(response[1].asResult.result.pyval == True, response[1].asResult.result.pyval)
开发者ID:vishnur,项目名称:ufora,代码行数:31,代码来源:TestBase.py
示例9: reasonAboutExpression
def reasonAboutExpression(self, expression, **variableJudgments):
reasoner = FORANative.SimpleForwardReasoner(self.compiler, self.axioms, False)
keys = sorted(list(variableJudgments.keys()))
functionText = "fun(" + ",".join(['_'] + keys) + ") { " + expression + " }"
frame = reasoner.reason(
makeJovt(
FORANative.parseStringToJOV(functionText),
*[FORANative.parseStringToJOV(variableJudgments[k]) for k in keys]
)
)
self.dumpReasonerSummary(reasoner, frame)
return frame
开发者ID:vishnur,项目名称:ufora,代码行数:16,代码来源:SimpleForwardReasoner_test.py
示例10: test_manyDuplicateCachecallsAndAdding
def test_manyDuplicateCachecallsAndAdding(self):
self.desirePublisher.desireNumberOfWorkers(2, blocking=True)
expr = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
Vector.range(20).papply(fun(x) {
x + cached(sum(0,10**11))[0]
})
}"""
)
)
computationId = self.gateway.requestComputation(
makeComputationDefinitionFromIVCs(
expr,
ForaNative.makeSymbol("Call")
)
)
time.sleep(5)
self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
try:
response = self.gateway.finalResponses.get(timeout=240.0)
except Queue.Empty:
response = None
self.assertTrue(response is not None)
self.assertTrue(response[1].isResult())
self.gateway.deprioritizeComputation(computationId)
开发者ID:vishnur,项目名称:ufora,代码行数:34,代码来源:TestBase.py
示例11: test_expensive_brownian
def test_expensive_brownian(self):
self.desirePublisher.desireNumberOfWorkers(2, blocking=True)
expr = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
let brownian = fun(x,t) {
if (t == 0)
return sum(0.0, x * 10.0**7.0)
else
{
let (l,r) = cached(brownian(x - 1, t - 1), brownian(x + 1, t - 1));
return sum(0.0, x * 10.0**7.0) + l + r
}
}
brownian(0, 5)
}"""
)
)
response = self.evaluateWithGateway(
makeComputationDefinitionFromIVCs(
expr,
ForaNative.makeSymbol("Call")
)
)
self.assertTrue(response[1].isResult())
开发者ID:vishnur,项目名称:ufora,代码行数:28,代码来源:TestBase.py
示例12: test_sortALargeVectorWithFourWorkers
def test_sortALargeVectorWithFourWorkers(self):
self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
expr = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
let v = Vector.range(12500000, {_%3.1415926});
if (sorting.isSorted(sorting.sort(v))) 'sorted'
}"""
)
)
try:
response = self.evaluateWithGateway(
makeComputationDefinitionFromIVCs(
expr,
ForaNative.makeSymbol("Call")
),
timeout=120.0
)
except Queue.Empty:
response = None
if response is None:
try:
dumpFun = self.dumpSchedulerEventStreams
dumpFun()
except:
logging.warn("Wanted to dump CumulusWorkerEvents, but couldn't");
self.assertTrue(response is not None)
self.assertTrue(response[1].isResult())
self.assertTrue(response[1].asResult.result.pyval == 'sorted', response[1].asResult.result.pyval)
开发者ID:vishnur,项目名称:ufora,代码行数:35,代码来源:TestBase.py
示例13: test_vecWithinVec
def test_vecWithinVec(self):
self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
expr = FORA.extractImplValContainer(
FORA.eval(
"""fun() {
let v =
Vector.range(10) ~~ fun(x) {
Vector.range(1000000 + x).paged
};
v = v.paged;
let res = ()
for elt in v
res = res + (elt,)
res..apply(fun(tupElt) { tupElt.sum() })
'got to the end'
}"""
)
)
response = self.evaluateWithGateway(
makeComputationDefinitionFromIVCs(
expr,
ForaNative.makeSymbol("Call")
)
)
self.assertTrue(response[1].isResult())
self.assertTrue(response[1].asResult.result.pyval == 'got to the end', response[1].asResult.result.pyval)
开发者ID:vishnur,项目名称:ufora,代码行数:32,代码来源:TestBase.py
示例14: loadAxiomSignaturesFromFile
def loadAxiomSignaturesFromFile(self, axioms_file):
"""
Loads axiom signatures from a file `axioms_file`. This file should contain
axiom signatures on each line, but also can have commented lines (starting with a `#`)
or commented blocks (lines surrounded by lines of `\"""`), as in python syntax.
"""
axiom_signatures = []
line_number = 0
in_comment = False
assert os.path.exists(axioms_file), (
"unable to open file `%s'\n"
%axioms_file
)
with open(axioms_file) as f:
for line in f:
line_number += 1
if re.search('^"""', line):
in_comment = (in_comment != True) # in_comment = in_comment XOR True
continue
if not in_comment and not re.search('^#', line) and len(line.strip()) > 0:
try:
axiom_signatures.append(FORANative.parseStringToJOV(
line.strip()).getTuple())
except Exception as inst:
logging.warn("unable to parse to JOV: `%s', %s:%s",
line.strip(), axioms_file, line_number)
raise inst
return axiom_signatures
开发者ID:Sandy4321,项目名称:ufora,代码行数:28,代码来源:AxiomsConsistency_test.py
示例15: test_TypedFora_Layout_UsingCompiler
def test_TypedFora_Layout_UsingCompiler(self):
layoutStyles = [
TypedFora.RefcountStyle.Pooled(),
TypedFora.RefcountStyle.AsValueUnowned(),
TypedFora.RefcountStyle.AsValueOwned()
]
jovs = [
ForaNative.parseStringToJOV("{String}"),
#a small union
ForaNative.parseStringToJOV("{Union([{String}, {Int64}])}"),
#a much bigger union
ForaNative.parseStringToJOV("{Union([{String}, {Int64}, {Float64}, nothing, ({Float64})])}"),
ForaNative.parseStringToJOV("'%s'" % aBigString),
ForaNative.parseStringToJOV("*")
]
for ls1 in layoutStyles:
for jov1 in jovs:
for ls2 in layoutStyles:
for jov2 in jovs:
if not (ls1.isAsValueOwned() and ls2.isAsValueUnowned()):
t1 = TypedFora.Type(jov1, ls1)
t2 = TypedFora.Type(jov2, ls2)
self.runSimpleEvaluation(t1, t2)
开发者ID:Sandy4321,项目名称:ufora,代码行数:26,代码来源:Layout_test.py
示例16: test_TypedFora_CreateTuple
def test_TypedFora_CreateTuple(self):
layoutStyles = [
TypedFora.RefcountStyle.Pooled(),
TypedFora.RefcountStyle.AsValueUnowned(),
TypedFora.RefcountStyle.AsValueOwned()
]
jovs = [
ForaNative.parseStringToJOV("{String}"),
ForaNative.parseStringToJOV("'a string'"),
ForaNative.parseStringToJOV("*")
]
aVal = ForaNative.ImplValContainer("a string")
allLayouts = []
for ls1 in layoutStyles:
for jov1 in jovs:
allLayouts.append(TypedFora.Type(jov1, ls1))
for t1 in allLayouts:
for t2 in allLayouts:
callable = self.generateTupleCallable([t1, t2], [False, False])
def validator(result):
return result == ForaNative.ImplValContainer((aVal, aVal))
self.runSimpleEvaluation(callable, [aVal, aVal], validator)
开发者ID:Sandy4321,项目名称:ufora,代码行数:29,代码来源:CreateTupleExpression_test.py
示例17: f
def test_cfgSplitting_5(self):
funString = "fun(f) { (f(1) + f(2)) + f(3) }"
cfg = self.parseStringToFunction(funString).toCFG(1)
steps = ForaNative.extractApplyStepsFromControlFlowGraph(cfg, None)
splits = ForaNative.splitControlFlowGraph(cfg, "block_0Let")
self.assertTrue(splits is not None)
开发者ID:Sandy4321,项目名称:ufora,代码行数:7,代码来源:ControlFlowGraphSplitter_test.py
示例18: size
def test_futures_tupleCallInContinuation_2(self):
text = "fun(x) { x = x + x; size((x, *x)) }"
cfg = self.parseStringToFunction(text).toCFG(1)
x = 1
xImplVal = ForaNative.ImplValContainer(x)
cfgWithFutures = ForaNative.CFGWithFutures.createCfgWithFutures(
cfg, "block_1Let", (xImplVal,))
cfgWithFutures.continueSimulation()
cfgWithFutures.continueSimulation()
self.assertEqual(cfgWithFutures.indicesOfSubmittableFutures(), [0])
x = x + x
cfgWithFutures.slotCompleted(
0, normalComputationResult(
ForaNative.ImplValContainer(x)
)
)
self.assertFalse(cfgWithFutures.hasResolvedToSimpleState())
self.assertEqual(cfgWithFutures.indicesOfSubmittableFutures(), [1])
self.assertComponentwiseEqual(
cfgWithFutures.submittableArgs(1).args.values,
[ForaNative.makeSymbol("size"), ForaNative.makeSymbol("Call"),
ForaNative.ImplValContainer((x, x))]
)
开发者ID:Sandy4321,项目名称:ufora,代码行数:30,代码来源:CFGWithFutures_test.py
示例19: test_TypedFora_TupleGetItem
def test_TypedFora_TupleGetItem(self):
tupJovs = [
ForaNative.parseStringToJOV("({String}, {String})"),
ForaNative.parseStringToJOV("({String}, *)"),
ForaNative.parseStringToJOV("({String}, 'a string 2')"),
ForaNative.parseStringToJOV("('a string', 'a string 2')"),
ForaNative.parseStringToJOV("('a string', *)"),
ForaNative.parseStringToJOV("('a string', {String})"),
ForaNative.parseStringToJOV("(*, 'a string 2')"),
ForaNative.parseStringToJOV("(*, *)"),
ForaNative.parseStringToJOV("(*, {String})")
]
layoutStyles = [
TypedFora.RefcountStyle.Pooled(),
TypedFora.RefcountStyle.AsValueUnowned(),
TypedFora.RefcountStyle.AsValueOwned()
]
instance = ForaNative.ImplValContainer( ("a string", "a string 2") )
for tupJov in tupJovs:
for refcountStyle in layoutStyles:
for index in range(2):
type = TypedFora.Type(tupJov, refcountStyle)
callable = self.generateTupleGetitemCallable(type, index)
def validator(result):
return result == instance[index]
self.runSimpleEvaluation(callable, [instance], validator)
开发者ID:Sandy4321,项目名称:ufora,代码行数:32,代码来源:CreateTupleExpression_test.py
示例20: runSimpleEvaluation
def runSimpleEvaluation(self, inputType, outputType):
mainRuntime = Runtime.getMainRuntime()
foraCompiler = mainRuntime.getTypedForaCompiler()
while foraCompiler.anyCompilingOrPending():
time.sleep(.01)
aParticularStringValue = ForaNative.ImplValContainer(aBigString)
callable = self.generateSimpleCallable(inputType, outputType)
jumpTarget = foraCompiler.compile(callable)
import gc
gc.collect()
for passIndex in range(PASS_COUNT):
#type values are memoized, so we can't assume that the value has a refcount
# of exactly one
totalStringCount = ForaNative.totalStringCount()
totalImplvalCount = ForaNative.totalImplvalCount()
anExecutionContext = ExecutionContext.ExecutionContext(
dataManager = VectorDataManager.constructVDM(self.callbackScheduler)
)
anExecutionContext.evaluateFunctionPointer(jumpTarget, aParticularStringValue)
self.assertTrue(anExecutionContext.isFinished())
res = anExecutionContext.getFinishedResult()
self.assertTrue(not res.isException())
self.assertEqual(res.asResult.result, aParticularStringValue)
anExecutionContext.teardown()
res = None
#verify final refcounts
self.assertEqual(
aParticularStringValue.getStringObjectRefcount(),
1,
"refcounts weren't maintained in %s->%s. %s != 1" % (
inputType,
outputType,
aParticularStringValue.getStringObjectRefcount()
)
)
self.assertEqual(
(totalStringCount, totalImplvalCount),
(ForaNative.totalStringCount(), ForaNative.totalImplvalCount()),
"refcounts weren't maintained in " + str(inputType) + "->" + str(outputType)
)
开发者ID:Sandy4321,项目名称:ufora,代码行数:54,代码来源:Layout_test.py
注:本文中的ufora.native.FORA类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论