public override object ProvideValue(IServiceProvider serviceProvider) { // First get the value from StaticResource var o = base.ProvideValue(serviceProvider); return(Path == null ? o : PathEvaluator.Evaluate(o, Path)); }
public void CanGetAScore() { var map = new MapObjects[7, 7]; map[2, 4] = MapObjects.Wall; map[2, 5] = MapObjects.Wall; map[2, 6] = MapObjects.Wall; map[3, 0] = MapObjects.Wall; map[3, 1] = MapObjects.Wall; map[3, 2] = MapObjects.Wall; map[3, 3] = MapObjects.FreeSquare; map[3, 4] = MapObjects.Wall; map[3, 5] = MapObjects.FreeSquare; map[4, 0] = MapObjects.Wall; map[4, 1] = MapObjects.FreeSquare; map[4, 2] = MapObjects.FreeSquare; map[4, 3] = MapObjects.Motorcycle; map[4, 4] = MapObjects.FreeSquare; map[4, 5] = MapObjects.FreeSquare; map[5, 0] = MapObjects.Wall; map[5, 1] = MapObjects.FreeSquare; map[5, 2] = MapObjects.FreeSquare; map[5, 3] = MapObjects.Wall; map[5, 4] = MapObjects.FreeSquare; map[5, 5] = MapObjects.FreeSquare; // sanity check Assert.Equal(map[4, 3], MapObjects.Motorcycle); var result1 = PathEvaluator.GetScore(new Vector2D(4, 2), map); var result2 = PathEvaluator.GetScore(new Vector2D(3, 3), map); var result3 = PathEvaluator.GetScore(new Vector2D(4, 4), map); var result4 = PathEvaluator.GetScore(new Vector2D(5, 3), map); }
public static object Eval(object source, PropertyPath path) { PathEvaluator d = new PathEvaluator(); BindingOperations.SetBinding(d, DummyProperty, new Binding(path.Path) { Source = source }); return(d.GetValue(DummyProperty)); }
public static object Evaluate(object source, PropertyPath path) { var d = new PathEvaluator(); BindingOperations.SetBinding(d, _dummyProperty, new Binding(path.Path) { Source = source }); // Force binding to give us the desired value defined in path. var result = d.GetValue(_dummyProperty); // Clear the binding to leave nice memory footprints BindingOperations.ClearBinding(d, _dummyProperty); return(result); }
public override object ProvideValue(IServiceProvider serviceProvider) { object o = base.ProvideValue(serviceProvider); return(Path == null ? o : PathEvaluator.Eval(o, Path)); }
internal BidirectionalTraverserIterator(Resource resource, MonoDirectionalTraversalDescription start, MonoDirectionalTraversalDescription end, SideSelectorPolicy sideSelector, Org.Neo4j.Graphdb.traversal.BranchCollisionPolicy collisionPolicy, PathEvaluator collisionEvaluator, int maxDepth, IEnumerable <Node> startNodes, IEnumerable <Node> endNodes) : base(resource) { this._sides[Direction.OUTGOING] = new Side(start); this._sides[Direction.INCOMING] = new Side(end); this._uniqueness = MakeSureStartAndEndHasSameUniqueness(start, end); // A little chicken-and-egg problem. This happens when constructing the start/end // selectors and they initially call evaluate() and isUniqueFirst, where the selector is used. // Solved this way for now, to have it return the start side to begin with. this._selector = FixedSide(Direction.OUTGOING); BranchSelector startSelector = start.BranchOrdering.create(new AsOneStartBranch(this, startNodes, start.InitialState, start.UniquenessConflict), start.Expander); this._selector = FixedSide(Direction.INCOMING); BranchSelector endSelector = end.BranchOrdering.create(new AsOneStartBranch(this, endNodes, end.InitialState, start.UniquenessConflict), end.Expander); this._selector = sideSelector.Create(startSelector, endSelector, maxDepth); this._collisionDetector = collisionPolicy.Create(collisionEvaluator, _uniqueness.checkFull); }
internal MonoDirectionalTraverserIterator(Resource resource, UniquenessFilter uniqueness, PathExpander expander, BranchOrderingPolicy order, PathEvaluator evaluator, IEnumerable <Node> startNodes, InitialBranchState initialState, UniquenessFactory uniquenessFactory) : base(resource) { this._uniqueness = uniqueness; this._evaluator = evaluator; this._selector = order.Create(new AsOneStartBranch(this, startNodes, initialState, uniquenessFactory), expander); }
public override object ProvideValue(IServiceProvider serviceProvider) { var value = base.ProvideValue(serviceProvider); return(Path == null ? value : PathEvaluator.Eval(value, Path)); }
public static object Eval(object source, PropertyPath path) { PathEvaluator d = new PathEvaluator(); BindingOperations.SetBinding(d, DummyProperty, new Binding(path.Path) { Source=source } ); return d.GetValue(DummyProperty); }
public int GetScore(Direction direction) => PathEvaluator.GetScore(PlayerPosition + direction.ToVector2d(), DiscoveredMap);