def test_eng2(self): from src.rules.heursitics import EngineHeurFP rules = EngineHeurFP() Eng = RuleEngine(term_rule=rules.root) system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a') system = system.bake() root = viper.nx_to_nodes(system) root = Eng.yield_queue(root) nxg = Eng.plot(root, rules.final_labels)
def test_eng4(self): system = SystemFactory.from_serialized_geom(load_segs(), sys=viper.System, root=(-246, 45, 0)) system = system.bake() root = viper.nx_to_nodes(system) print(root) rules = heursitics.EngineHeurFP() Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20) Kb = KB(rules.root) root = Eng.alg2(root, Kb) nxg = Eng.plot(root, rules.final_labels)
def test_loop_pos(self): connect_loop = [(8., 8., 0), (4., 4., 0)] SEGMENTS.append(connect_loop) system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a') system = system.bake() root = viper.nx_to_nodes(system) propagator = gp.LoopDetector() propagator(root, data=[]) for n in root.__iter__(): if n.geom in connect_loop: assert n.get(propagator.var) is True
def get_rendered(): data = load_segs(fl='1535158393.0-revit-signal') system = SystemFactory.from_serialized_geom(data, sys=System, root=(-246, 45, 0)) system = system.bake() rules = heursitics.EngineHeurFP() Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20) Kb = KB(rules.root) root = Eng.alg2(system.root, Kb) renderer = RenderNodeSystem() root = renderer.render(root) return root
def test_eng3(self): rules = heursitics.EngineHeurFP() Eng = RuleEngine(term_rule=rules.root, mx=400, debug=True, nlog=1) _root = (2, 1, 0) system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a') system = system.bake() root = viper.nx_to_nodes(system) Kb = KB(rules.root) print(Kb) root = Eng.alg2(root, Kb, ) nxg = Eng.plot(root, rules.final_labels)
def test_adapter_nodes(self): data = load_segs(fl='1535158393.0-revit-signal') system = SystemFactory.from_serialized_geom(data, sys=System, root=(-246, 45, 0)) system = system.bake() rules = heursitics.EngineHeurFP() Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20) Kb = KB(rules.root) root = Eng.alg2(system.root, Kb) print('nodes ', len(root)) renderer = RenderNodeSystem() root = renderer.render(root) self.vis.build(root)
def test_eng5(self): data = load_segs(fl='1535158393.0-revit-signal') system = SystemFactory.from_serialized_geom( data, sys=viper.System, root=(-246, 45, 0)) system = system.bake() root = system.root print(root) rules = heursitics.EngineHeurFP() Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20) Kb = KB(rules.root) root = Eng.alg2(root, Kb) print('nodes ', len(root)) renderer = RenderNodeSystem() meta = Eng.annotate_type(root, rules.final_labels) root = renderer.render(root) print('nodes ', len(root)) visualize.plot3d(root, meta)
def test_254(self): segs = load_segs() segs, syms = SystemFactory.to_segments(segs) fsg = [] fsm = [] print(syms[0]) mx = -260 mn = -270 for seg in segs: sg = list(seg.coords) if mn < sg[0][0] < mx or mn < sg[1][0] < mx: fsg.append(seg) for seg in syms: sg = list(seg.coords) if mn < sg[0][0] < mx: fsm.append(seg) print(fsm[0]) system = viper.SystemV3(segments=fsg, symbols=fsm, root=(-246, 45, 0)) system.aplot()
def process(self, data, points=[(-246, 45, 0)], system_type='FP', **kwargs): """ :param data: :param points: :param system_type: :param kwargs: arguments to render the system :return: """ self._log_inputs(data, points) # build graph, bake attributes system = SystemFactory.from_serialized_geom(data, sys=viper.SystemV3, root=tuple(points[0])) system.bake() syst_meta = SystemRequest(type=system_type, **kwargs) heuristic = self.get_system(system_type)() rl_engine = RuleEngine(term_rule=heuristic.root, mx=1e6, debug=False) fact_base = KB(heuristic.root) root_node = rl_engine.alg2(system.root, fact_base) # based on labels, finallize graph (adding new info) sysrender = RenderNodeSystem() root_node = sysrender.render(root_node) meta_data = rl_engine.annotate_type(root_node, heuristic.final_labels) # create build instructions geom, inds, syms = self.finalize(root_node) return {'geom': geom, 'indicies': inds, 'symbols': syms}
def get_sys(self): system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a') system = system.bake() return viper.nx_to_nodes(system)
def test_loadsyms(self): segs = load_segs() ds = [x for x in segs if x['children'] != []] system = SystemFactory.from_serialized_geom(ds, root=(-246, 45, 0))
def test_remover_lg(self): segs = load_segs() system = SystemFactory.from_serialized_geom( segs, sys=viper.System, root=(-246, 45, 0)) system.bake() system.gplot(fwd=True, bkwd=False)
def test_remover_cl(self): system = SystemFactory.from_segs( SEGMENTS_COL, sys=viper.System, root=_root, lr='a') system.aplot()
def test_remover_sm(self): system = SystemFactory.from_segs( SEGMENTS, sys=viper.System, root=_root, lr='a') system.bake() system.gplot(fwd=True, bkwd=False)