Exemple #1
0
        internal async Task <(Dictionary <IAiFactory, (Double meanMoves, Double meanPower, Double meanSamples, Double sampleStdDev)> aggregates, CompletedSimulation worstSim, IAiFactory worstAi)> Simulate(IList <IAiFactory> aiFactories, ILevelGenerator levelGenerator, Int32 runCount, IProgress <Int32> progress)
        {
            var   aggregates             = new Dictionary <IAiFactory, (Double meanMoves, Double meanPower, Double meanSamples, Double sampleStdDev)>();
            Int32 initialLevelSeed       = NextLevelSeed;
            CompletedSimulation worstSim = null;
            IAiFactory          worstAi  = null;

            foreach (var aiFactory in aiFactories)
            {
                var simulator = new Simulator(Parameters, levelGenerator, aiFactory, initialLevelSeed);

                using Completer completer = Completer.Create(Path.Combine(OutputDirectory, $"RoverSim-{aiFactory.Name}.csv"), progress);

                await simulator.SimulateAsync(runCount, completer.Consume);

                NextLevelSeed = simulator.NextLevelSeed;

                aggregates[aiFactory] = completer.GetAggregates();
                worstSim = Completer.ChooseWorst(worstSim, completer.WorstSim);
                if (worstSim == completer.WorstSim)
                {
                    worstAi = aiFactory;
                }
            }

            return(aggregates, worstSim, worstAi);
        }
Exemple #2
0
        public static Future <R> compute <Q, R>(ComputeCallback <Q, R> callback, Q message, string debugLabel = null)
        {
            var completer = Completer.create();
            var isolate   = Isolate.current;

            var backgroundWorker = new BackgroundWorker();

            backgroundWorker.DoWork             += (sender, args) => { args.Result = callback((Q)args.Argument); };
            backgroundWorker.RunWorkerCompleted += (o, a) => {
                if (!isolate.isValid)
                {
                    return;
                }

                using (Isolate.getScope(isolate)) {
                    if (a.Error != null)
                    {
                        completer.completeError(a.Error);
                    }
                    else
                    {
                        completer.complete(FutureOr.value((R)a.Result));
                    }
                }
            };
            backgroundWorker.RunWorkerAsync(message);
            return(completer.future.to <R>());
        }
Exemple #3
0
        IEnumerator _loadCoroutine(string key, Completer completer, Isolate isolate)
        {
            var url = new Uri(key);

            using (var www = UnityWebRequest.Get(url)) {
                if (headers != null)
                {
                    foreach (var header in headers)
                    {
                        www.SetRequestHeader(header.Key, header.Value);
                    }
                }

                yield return(www.SendWebRequest());

                if (www.isNetworkError || www.isHttpError)
                {
                    completer.completeError(new Exception($"Failed to load from url \"{url}\": {www.error}"));
                    yield break;
                }

                var data = www.downloadHandler.data;

                using (Isolate.getScope(isolate)) {
                    completer.complete(data);
                }
            }
        }
        IEnumerator _loadCoroutine(string key, Completer completer, Isolate isolate)
        {
            var url = _urlFromKey(key);

            using (var www = UnityWebRequest.Get(url)) {
                if (headers != null)
                {
                    foreach (var header in headers)
                    {
                        www.SetRequestHeader(header.Key, header.Value);
                    }
                }

                yield return(www.SendWebRequest());

                if (www.isNetworkError || www.isHttpError)
                {
                    completer.completeError(new UIWidgetsError(new List <DiagnosticsNode>()
                    {
                        new ErrorSummary($"Unable to load asset: {key}"),
                        new StringProperty("HTTP status code", www.error)
                    }));
                    yield break;
                }

                var data = www.downloadHandler.data;

                using (Isolate.getScope(isolate)) {
                    completer.complete(data);
                }
            }
        }
        internal async Task <(Dictionary <IAiFactory, (Double meanMoves, Double meanPower, Double meanSamples, Double sampleStdDev)> aggregates, CompletedSimulation worstSim, IAiFactory worstAi)> Simulate(IList <IAiFactory> aiFactories, Int32 runCount)
        {
            var aggregates = new Dictionary <IAiFactory, (Double meanMoves, Double meanPower, Double meanSamples, Double sampleStdDev)>();
            CompletedSimulation worstSim = null;
            IAiFactory          worstAi  = null;
            Int32 levelSeed = Rando.Next(Int32.MinValue, Int32.MaxValue);

            foreach (var aiFactory in aiFactories)
            {
                var levelRand             = new Random(levelSeed);
                var levelGeneratorFactory = new OpenCheckingGeneratorFactory(new DefaultLevelGeneratorFactory(), 6);
                var roverFactory          = new DefaultRoverFactory();
                var simulator             = new Simulator(levelGeneratorFactory, roverFactory, aiFactory);

                using (Completer completer = Completer.Create(Path.Combine(OutputDirectory, $"RoverSim-{aiFactory.Name}.csv")))
                {
                    await simulator.SimulateAsync(runCount, completer.Consume);

                    aggregates[aiFactory] = completer.GetAggregates();
                    worstSim = Completer.ChooseWorst(worstSim, completer.WorstSim);
                    if (worstSim == completer.WorstSim)
                    {
                        worstAi = aiFactory;
                    }
                }
            }

            return(aggregates, worstSim, worstAi);
        }
Exemple #6
0
    void c_Completed(object sender, EventArgs e)
    {
        Completer c = sender as Completer;

        foreach (var name in c.Names)
        {
            People.Add(name);
        }
    }
Exemple #7
0
        public static Task <TResult> FromAsync <TResult>(Func <AsyncCallback, object, IAsyncResult> beginFunc, Func <IAsyncResult, TResult> endFunc)
        {
            var completer = new Completer <TResult>(endFunc);
            var tcs       = new TaskCompletionSource <TResult>(completer);

            completer.TaskCompletionSource = tcs;
            beginFunc(completer.Complete, null);
            return(tcs.Task);
        }
        public IActionResult Uninvite(int Id, int NeoId, int CompleterId)
        {
            ResetAttendedNeo(Id, NeoId, CompleterId);
            Completer completer = _context.Completers.Where(c => c.EmployeeId == Id && c.NeoId == NeoId).SingleOrDefault();

            _context.Completers.Remove(completer);
            _context.SaveChanges();

            return(RedirectToAction("NeoPage", new { Id = NeoId }));
        }
Exemple #9
0
    void win()
    {
        int        _rank = rankreturn();
        GameObject g     = new GameObject("Progressor", typeof(Completer));
        Completer  gc    = g.GetComponent <Completer>();

        gc.Rank      = _rank;
        gc.LevelName = SceneManager.GetActiveScene().name;
        DontDestroyOnLoad(g);
        SceneManager.LoadScene("WinScene");
    }
        static IEnumerator AuthenticateRoutine(Completer completer)
        {
            void FailInitialization(Completer aCompleter, Exception reason)
            {
                Unauthenticate();

                Debug.LogWarning($"{nameof(GameAuthSdk)} failed to authenticate: {reason}");

                _sAuthenticationStatus = AuthenticationStatus.Failed;

                aCompleter.Reject(reason);

                //Raise event.
                authenticatedFailed?.Invoke(reason);
            }

            Promises.GetHandles(out var dalInitDeferred, out var dalInitCompleter);

            try
            {
                authLayer.Authenticate(dalInitCompleter);
            }
            catch (Exception e)
            {
                dalInitCompleter.Reject(e);
            }

            if (!dalInitDeferred.isDone)
            {
                yield return(dalInitDeferred.Wait());
            }

            var isFulfilled = dalInitDeferred.isFulfilled;
            var error       = dalInitDeferred.error;

            dalInitDeferred.Release();

            if (!isFulfilled)
            {
                FailInitialization(completer, error);

                yield break;
            }

            _sAuthenticationStatus = AuthenticationStatus.Authenticated;

            Debug.Log($"Successfully authenticated Game Auth version {currentVersion}");

            completer.Resolve();

            //Raise event.
            authenticated?.Invoke();
        }
        public void Argument_statement_call_with_UO_prefix_after_dot()
        {
            string file        = @"
sub test1()
    UO.Print(UO.
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 17);

            completions.ShouldContainLabel("ignore", "attack");
        }
        public void Statement_call_with_UO_prefix_Then_no_statement_keywords()
        {
            string file        = @"
sub test1()
    UO.
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 8);

            completions.ShouldNotContainLabel("if", "repeat");
        }
        public void Argument_UO_namespace_Then_suggests_UO_subrutines()
        {
            string file        = @"
sub test1()
    UO.Print(UO.
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 17);

            completions.ShouldContainLabel("attack");
        }
        public void Second_argument_empty_Then_suggests_subrutines()
        {
            string file        = @"
sub test1()
    UO.Print('param1',
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 23);

            completions.ShouldContainLabel("test1");
        }
        public void Second_paramter_empty_Then_suggests_native_subrutines_without_namespace()
        {
            string file        = @"
sub test1()
    UO.Print('param1',
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 23);

            completions.ShouldContainLabel("wait", "str", "val");
        }
        public void Second_argument_UO_prefix_Then_suggests_UO_namespace()
        {
            string file        = @"
sub test1()
    UO.Print('param1',U
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 24);

            completions.ShouldContainLabel("UO");
        }
 public BacktorySender(ConnectorClient connectorClient,
                       String destination,
                       Dictionary <String, String> extraHeader,
                       Dictionary <String, object> data,
                       Completer completer)
 {
     this.connectorClient = connectorClient;
     this.destination     = destination;
     this.extraHeader     = extraHeader;
     this.data            = data;
     this.completer       = completer;
 }
        public void Global_native_subrutine_prefix_Then_suggests_global_native_subrutine()
        {
            string file        = @"
sub test1()
    wa
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 7);

            completions.ShouldContainLabel("wait");
        }
        public void Empty_statement_line_Then_suggests_no_native_subrutines_in_UO_namespace()
        {
            string file        = @"
sub test1()
    
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 5);

            completions.ShouldNotContainLabel("attack", "ignore");
        }
        public void Statement_call_with_UO_prefix_without_dot_Then_no_subrutines_in_UO_namespace()
        {
            string file        = @"
sub test1()
    UO
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 7);

            completions.ShouldNotContainLabel("ignore", "attack");
        }
        public void Empty_statement_line_Then_suggests_subrutines()
        {
            string file        = @"
sub test1()
    
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 5);

            completions.ShouldContainLabel("test1");
        }
        public void Argument_empty_operand_Then_suggests_arguments()
        {
            string file = @"
sub test1(myParam, yourParam)
    UO.Print('x' + )
end sub";

            var completer   = new Completer();
            var completions = completer.GetCompletions(file, 3, 20);

            completions.ShouldContainLabel("myParam", "yourParam");
        }
        public void Second_argument_global_native_subrutine_prefix_Then_suggests_global_native_subrutine()
        {
            string file        = @"
sub test1()
    UO.Print('param1',s
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 24);

            completions.ShouldContainLabel("str");
        }
Exemple #24
0
    private void AutoCompleteBox_Populating(object sender, PopulatingEventArgs e)
    {
        // Have we already populated with this text?
        if (People.Any(person => person.ToLower().StartsWith(e.Parameter.ToLower())))
        {
            return;
        }
        Completer c = new Completer();

        c.Completed += new EventHandler <EventArgs>(c_Completed);
        c.Complete(e.Parameter);
    }
        public void Empty_statement_line_Then_suggests_native_subrutines_without_namespace()
        {
            string file        = @"
sub test1()
    
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 5);

            completions.ShouldContainLabel("wait", "str", "val");
        }
        public void Second_argument_empty_Then_suggests_no_native_subrutines_in_UO_namespace()
        {
            string file        = @"
sub test1()
    UO.Print('param1',
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 23);

            completions.ShouldNotContainLabel("attack", "ignore");
        }
        public override Future <byte[]> load(string key)
        {
            var completer = Completer.create();
            var isolate   = Isolate.current;
            var panel     = UIWidgetsPanelWrapper.current.window;

            if (panel.isActive())
            {
                panel.startCoroutine(_loadCoroutine(key, completer, isolate));
            }
            return(completer.future.to <byte[]>());
        }
        public void UO_prefix_Then_suggests_UO_namespace()
        {
            string file        = @"
sub test1()
    U  
end sub
";
            var    completer   = new Completer();
            var    completions = completer.GetCompletions(file, 3, 6);

            completions.ShouldContainLabel("UO");
        }
        public IActionResult inviteMore(int Id, int NeoId)
        {
            Employee  NewInvited   = _context.Employees.Where(e => e.Id == Id).SingleOrDefault();
            Completer NewCompleter = new Completer
            {
                NeoId      = NeoId,
                EmployeeId = NewInvited.Id
            };

            _context.Completers.Add(NewCompleter);
            _context.SaveChanges();
            return(RedirectToAction("NeoPage", new { Id = NeoId }));
        }
        // Resets time showed up and times attended
        public void ResetAttendedNeo(int EmployeeId, int NeoId, int CompleterId)
        {
            Employee  employee  = _context.Employees.Where(e => e.Id == EmployeeId).SingleOrDefault();
            Completer completer = _context.Completers.Where(c => c.Id == CompleterId).SingleOrDefault();

            if (completer.AttendedTime.TimeOfDay != TimeSpan.Zero)
            {
                employee.TimesAttended--;
                completer.Attended     = 0;
                completer.AttendedTime = default(DateTime);
            }
            _context.SaveChanges();
        }