예제 #1
0
        private void BuildNeighbors()
        {
            using (var status = StatusWrapper.NewStatus("Building Neighbors", this.Data.Count))
            {
                var heap = new EasyHeapSmallFixedSize <NearestNeighbor>(HeapType.MinHeap, withTop, x => x.Distance);

                var rangeList = TimeCalculator.GetIndexRangeByTimeInterval(this.Data.Select(x => x.TimeTick).ToList(), Convert.ToInt64(kDisDiameter.TotalSeconds));

                for (int i = 0; i < this.Data.Count; i++)
                {
                    this.Data.GetRange(rangeList[i].Item1, rangeList[i].Item2 - rangeList[i].Item1)
                    .ForEach(x =>
                    {
                        var g = VectorPointHelper.GetDistance(this.Data[i], x, MathDistance);
                        if (g > 0)
                        {
                            heap.Push(new NearestNeighbor {
                                Distance = g, NeighborIndex = x.Id
                            });
                        }
                    });

                    this.Neighbors.Add(heap.GetList().ToList());
                    status.PushProgress();
                }
            }
        }
예제 #2
0
        public void AndEveryDayOfWeek()
        {
            // Arrange
            var friday = new DateTime(2018, 2, 16);
            var monday = new DateTime(2018, 2, 19);
            var sunday = new DateTime(2018, 2, 25);

            var calculator = new TimeCalculator();
            var run        = new OnceSet(calculator);

            // Act
            run.AndEvery(DayOfWeek.Sunday);
            var calculated = calculator.Calculate(friday);

            // Assert
            var expected = new DateTime(2018, 2, 18);

            Assert.AreEqual(expected, calculated);

            //Act
            calculated = calculator.Calculate(monday);

            // Assert
            expected = new DateTime(2018, 2, 25);
            Assert.AreEqual(expected, calculated);

            // Act
            calculated = calculator.Calculate(sunday);

            // Assert
            Assert.AreEqual(sunday, calculated);
        }
예제 #3
0
    // Use this for initialization
    void Start()
    {
        // moving_manager = GetComponent<MovingManager>();
        timer  = GetComponent <TimeCalculator>();
        arrive = GetComponent <Arrive>();
        radius = 0.1f;

        pos = path.CalcPositionByClosestPoint(transform.position);
    }
예제 #4
0
        public void EveryInterval()
        {
            var now = DateTime.Today;

            var calculator = new TimeCalculator();
            var run        = new OnceSet(calculator);

            // Act
            run.AndEvery(10).Seconds();
            var calculated = calculator.Calculate(now);

            // Assert
            Assert.AreEqual(now.AddSeconds(10), calculated);
        }
 public async Task <JsonResult> IsUserOnBreak()
 {
     try {
         var list = UserBreakModelUtility.FilterByCompanyID(CurrentUser.CompanyID, _userBreakTimeService.GetAll().Result.ToList());
         list = UserBreakModelUtility.FilterByStartDateTime(GetCurrentTime(), list);
         list = UserBreakModelUtility.FilterByUserID(CurrentUser.ID, list);
         list = UserBreakModelUtility.FilterByIsFinished(false, list);
         var isOnBreak = list.FirstOrDefault();
         if (isOnBreak != null)
         {
             var vm             = UserBreakModelUtility.MToVM(isOnBreak);
             var timeDifference = TimeCalculator.SubtructTime(isOnBreak.StartDateTime.Value.TimeOfDay, GetCurrentTime().TimeOfDay);
             //data here is the difference of your break consumed
             return(Json(new { success = true, data = timeDifference, timeLimit = isOnBreak.BreakType.TimeLimit, type = isOnBreak.BreakType.id }, JsonRequestBehavior.AllowGet));
         }
         return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
     } catch { return(Json(new { success = false }, JsonRequestBehavior.AllowGet)); }
 }