コード例 #1
0
ファイル: testParseExpr.py プロジェクト: TracyYan2015/SpacNN
def test():
    # get model object
    constructor = Constructor()
    model_file_path = "../../prism_model/smalltest.prism"
    constructor.parseModelFile(model_file_path)
    model = constructor.model
    # set day's value
    days = range(1, 365*5)
    # 运用parsed function计算出的结果
    parsed_prbs = []
    # 运用模型中的数据计算出的真实的结果
    prbs = []  # [(sb_fail_prb, s3r_fail_prb)]
    for day_val in days:
        # compute the failure probability of modules
        # get the fail prob function and compute
        var_day = model.getLocalVar("day")
        var_day.setValue(day_val)
        prbs.append(fail_prob_of_model(model, constructor.parser.vfmap))

        # get the parsed function and use it to compute the failure probability
        f_sb = constructor.parser.vfmap["sb_fail_prob"]
        f_s3r = constructor.parser.vfmap["s3r_fail_prob"]
        parsed_prbs.append((f_sb(), f_s3r()))
    # compare
    assert len(prbs) == len(parsed_prbs)
    for tuple1, tuple2 in zip(prbs, parsed_prbs):
        f1, f2 = tuple1
        f3, f4 = tuple2
        precision = 1e-8
        # logger.info("f1={}, f3={}".format(f1, f3))
        # logger.info("f2={}, f4={}".format(f2, f4))
        assert fabs(f1 - f3) < precision, "day={}, f1={}, f3={}".format(day_val, f1, f3)
        assert fabs(f2 - f4) < precision, "day={}, f2={}, f4={}".format(day_val, f2, f4)
コード例 #2
0
ファイル: Manager.py プロジェクト: TracyYan2015/SpacNN
class Manager(object):
    def __init__(self):
        self.mdl_parser = ModelConstructor()
        self.model = None

    def input_file(self, file_path):
        self.model = self.mdl_parser.parseModelFile(file_path)
コード例 #3
0
 def get_parsed(self):
     constructor = ModelConstructor()
     model = constructor.parseModelFile("../../prism_model/smalltest.prism")
     return model
コード例 #4
0
from compiler.PRISMParser import ModelConstructor

constructor = ModelConstructor()
mdl_fl_path = "../../prism_model/smalltest.prism"
model = constructor.parseModelFile(mdl_fl_path)
assert model.labels["failure"]() is False
model.localVars["sb_status"].setValue(0)
assert model.labels["failure"]() is True
コード例 #5
0
ファイル: testCommand.py プロジェクト: TracyYan2015/SpacNN
def buildCommand():
    constructor = Constructor()
    model = constructor.parseModelFile("../../prism_model/CommandTest.prism")
    return model.modules.values()[0].commands.values()[0]