コード例 #1
0
        public void Result_is_updated_after_Insert()
        {
            var subject = new ObservableCollection<int>(new [] { 10, 11, 12, 11, 12, 10, 12, 17 });
            var result = subject.ToQueryable().Distinct().ToObservable();
            var eventList = new List<NotifyCollectionChangedEventArgs>();

            result.CollectionChanged += (s, e) => eventList.Add(e);

            Assert.IsInstanceOfType(result, typeof(IQueryableObservableCollection<int>));

            subject.Insert(2, 10);
            EnumerableAssert.AreEqual(result, 10, 11, 12, 17);
            Assert.AreEqual(0, eventList.Count);

            subject.Insert(1, 11);
            EnumerableAssert.AreEqual(result, 10, 11, 12, 17);
            Assert.AreEqual(0, eventList.Count);

            subject.Insert(1, 12);
            EnumerableAssert.AreEqual(result, 10, 12, 11, 17);
            Assert.AreEqual(1, eventList.Count);
            Assert.AreEqual(NotifyCollectionChangedAction.Move, eventList.Last().Action);

            subject.Insert(0, 17);
            EnumerableAssert.AreEqual(result, 17, 10, 12, 11);
            Assert.AreEqual(2, eventList.Count);
            Assert.AreEqual(NotifyCollectionChangedAction.Move, eventList.Last().Action);
        }
コード例 #2
0
ファイル: UnitTest1.cs プロジェクト: KeepRollin/CoffeeAppRepo
        public void Can_Add_Order_Via_Controller()
        {
            //ARRANGE
            List<Order> orders = new List<Order>();
            Mock<IOrderRepository> mockOrder = new Mock<IOrderRepository>();
            mockOrder.Setup(m => m.AddOrder(It.IsAny<Order>())).Returns((Order order) =>
            {
                if (orders.LastOrDefault() == null)
                {
                    order.OrderID = 1;
                }
                else
                {
                    order.OrderID = orders.Last().OrderID + 1;
                }
                orders.Add(order);
                return true;
            });
            mockOrder.Setup(m => m.GetOrder(It.IsAny<int>())).Returns((int id) =>
            {
                return orders.Where(o => o.OrderID == id).FirstOrDefault();
            });
            OrderController target = new OrderController(mockOrder.Object);

            //ACT
            target.Index(new Order { Address = "lalala st.", Name = "lala", OrderDate = DateTime.Now });
            target.Index(new Order { Address = "dadada st.", Name = "dada", OrderDate = DateTime.Now });

            //ASSERT
            Assert.IsNotNull(orders.Last());
            Assert.AreEqual(orders.Last().Name, "dada");
            Assert.AreEqual(orders.Last().OrderID, orders.First().OrderID + 1);
        }
コード例 #3
0
 public void VerifyTerminalVelocityReached()
 {
     List<double> velocities = new List<double> { 0 };
     const int MAX_ITER = 10000;
     while (velocities.Count < MAX_ITER)
         velocities.Add(VelocitySimulation.CalculateNewVelocity(velocities.Last()));
     Assert.IsTrue(Math.Abs(velocities.Skip(MAX_ITER - 100).Take(100).Average() - velocities.Last()) < 0.001);
 }
コード例 #4
0
        public void GenericComparerAsIComparer()
        {
            List<int> ints = new List<int>(new[] { 10, 5, 2, 23, 7, 5, 3, 45, 23, 64, 25 });

            ints.Sort(new GenericComparer<int>());

            Assert.AreEqual(ints.Min(), ints.First());
            Assert.AreEqual(ints.Max(), ints.Last());

            ints.Sort(new GenericComparer<int>((i, i1) => Math.Sin(i) > Math.Sin(i1) ? -1 : Math.Sin(i) < Math.Sin(i1) ? 1 : 0));

            Assert.AreEqual(64, ints.First());
            Assert.AreEqual(5, ints.Last());
        }
コード例 #5
0
        public void PostNewsItemWithValidDataShouldSucceed()
        {
            var news = new List<NewsItem>
            {
                new NewsItem
                {
                    Title = "FirstNews",
                    Content = "FirstNewsContent",
                    PublishDate = DateTime.Now,
                    UserId = "2",
                    User = new ApplicationUser() {UserName = "******" }
                },
                new NewsItem
                {
                    Title = "SecondNews",
                    Content = "SecondNewsContent",
                    PublishDate = DateTime.Now.AddDays(-3),
                    UserId = "2",
                    User = new ApplicationUser() { UserName = "******" }
                },
                new NewsItem
                {
                    Title = "ThirdNews",
                    Content = "ThirdNewsContent",
                    PublishDate = DateTime.Now.AddDays(-10),
                    UserId = "2",
                    User = new ApplicationUser() {UserName = "******"}
                }
            };

            var dataMock = new Mock<INewsData>();
            dataMock.Setup(r => r.News).Returns(this.GetMockedNewsItem(news));

            var controller = new NewsController(dataMock.Object);
            this.SetupController(controller, "NewsController");

            var newNewsItem = new NewsItemOutputModel()
            {
                Title = "ThirdNews",
                Content = "ThirdNewsContent",
                PublishDate = DateTime.Now.AddDays(8)
            };
            var result = controller.Post(newNewsItem).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.Created, result.StatusCode);
            Assert.AreEqual(newNewsItem.Title, news.Last().Title);
            Assert.AreEqual(newNewsItem.Content, news.Last().Content);
            Assert.IsNotNull(news.Last().PublishDate);
        }
コード例 #6
0
        public void ReaderWithHeaderTest()
        {
            using (var reader = new CsvReader<StockValue>(
                "csv-samples/IBM.csv",
                containsHeader: true,
                separator:',',
                dateTimeFormat: "yyyyMMdd"))
            {
                var stockValues = new List<StockValue>();

                StockValue value = null;

                while ((value = reader.ReadObject()) != null)
                {
                    if (value == null)
                        throw new NullReferenceException();

                    stockValues.Add(value);
                }

                Assert.AreEqual(473, stockValues.Count);

                var firstValue = stockValues.First();
                var lastValue = stockValues.Last();

                Assert.AreEqual(new DateTime(2014, 1, 2), firstValue.DateTime);
                Assert.AreEqual(185.529999M, firstValue.Close);

                Assert.AreEqual(new DateTime(2015, 11, 16), lastValue.DateTime);
                Assert.AreEqual(133.710007M, lastValue.Close);
            }
        }
コード例 #7
0
        public void Progressでは_Reportが呼ばれるたびにProgressChangedイベントが起こる()
        {
            var progress = new IteratorTasks.Progress<int>();
            var reportedItems = new List<int>();

            progress.ProgressChanged += i =>
            {
                reportedItems.Add(i);
            };

            var t = Task.Run<int>(c => 進捗報告付きのコルーチン(c, progress));

            var scheduler = Task.DefaultScheduler;

            // RunOnce 仕様のために、最初の1回だけ特殊(Update より前に Report 呼ばれる)
            // テスト仕様的には変だし何とかしたいけども
            scheduler.Update();

            for (int i = 1; i < 100; i++)
            {
                Assert.AreEqual(i, reportedItems.Count);
                scheduler.Update();
                Assert.AreEqual(i + 1, reportedItems.Count);
                Assert.AreEqual(i, reportedItems.Last());
            }
        }
コード例 #8
0
    public void SupportVectorMachinePerformanceTest() {
      ex = null;

      var cv = new CrossValidation();
      cv.Algorithm = new SupportVectorRegression();
      var rand = new HeuristicLab.Random.MersenneTwister();
      double[,] data = GenerateData(1000, rand);
      List<string> variables = new List<string>() { "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "y" };
      Dataset ds = new Dataset(variables, data);
      cv.Problem.ProblemDataParameter.ActualValue = new RegressionProblemData(ds, variables.Take(10), variables.Last());
      cv.Folds.Value = 5;
      cv.SamplesStart.Value = 0;
      cv.SamplesEnd.Value = 999;

      cv.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(cv_ExceptionOccurred);
      cv.Stopped += new EventHandler(cv_Stopped);

      cv.Prepare();
      cv.Start();
      trigger.WaitOne();
      if (ex != null) throw ex;

      TestContext.WriteLine("Runtime: {0}", cv.ExecutionTime.ToString());

    }
コード例 #9
0
        public void LendToViewModelLendToTest()
        {
            Book book = new Book() { Title = "The Fellowship of the Ring" };

            List<Person> persons = new List<Person>()
            {
                new Person() { Firstname = "Harry" },
                new Person() { Firstname = "Ron" }
            };

            MockLendToView lendToView = new MockLendToView();

            AssertHelper.ExpectedException<ArgumentNullException>(() => new LendToViewModel(lendToView, null, null));
            AssertHelper.ExpectedException<ArgumentNullException>(() => new LendToViewModel(lendToView, book, null));
            LendToViewModel lendToViewModel = new LendToViewModel(lendToView, book, persons);

            Assert.AreEqual(book, lendToViewModel.Book);
            Assert.AreEqual(persons, lendToViewModel.Persons);

            // Show the dialog
            object owner = new object();
            Action<MockLendToView> showDialogAction = (view) =>
            {
                Assert.AreEqual("", LendToViewModel.Title);
                Assert.IsTrue(lendToView.IsVisible);
                Assert.AreEqual(owner, lendToView.Owner);

                // Check the default values
                Assert.IsTrue(lendToViewModel.IsLendTo);
                Assert.IsFalse(lendToViewModel.IsWasReturned);
                Assert.AreEqual(persons.First(), lendToViewModel.SelectedPerson);

                // Select the last person: Lend to Ron
                AssertHelper.PropertyChangedEvent(lendToViewModel, x => x.SelectedPerson, () =>
                    lendToViewModel.SelectedPerson = persons.Last());

                // Press Ok button
                lendToViewModel.OkCommand.Execute(null);
            };

            lendToView.ShowDialogAction = showDialogAction;
            Assert.IsTrue(lendToViewModel.ShowDialog(owner));
            Assert.IsFalse(lendToView.IsVisible);
            Assert.AreEqual(persons.Last(), lendToViewModel.SelectedPerson);
        }
コード例 #10
0
        public void ShouldReturnRoleItems()
        {
            var expected = new List<string>() { "ItemOne", "ItemTwo" };

            var actual = _dashboardMappingsProvider.GetRoleItems("Admin");

            Assert.AreEqual(expected.First(), actual.First());
            Assert.AreEqual(expected.Last(), actual.Last());
        }
コード例 #11
0
ファイル: SaveTests.cs プロジェクト: Cosmin-Parvulescu/Breeze
    public async Task HasChangesChangedAfterSave() {
      var em1 = await TestFns.NewEm(_serviceName);

      var eventArgsList = new List<EntityManagerHasChangesChangedEventArgs>();
      em1.HasChangesChanged += (s, e) => {
        eventArgsList.Add(e);
      };
      var emp = em1.CreateEntity<Employee>();
      emp.FirstName = "Test Fn";
      emp.LastName = "Test Ln";
      Assert.IsTrue(eventArgsList.Count == 1);
      Assert.IsTrue(eventArgsList.Last().HasChanges);
      Assert.IsTrue(em1.HasChanges());
      var sr1 = await em1.SaveChanges();
      Assert.IsTrue(sr1.Entities.Count == 1);
      Assert.IsTrue(eventArgsList.Count == 2);
      Assert.IsTrue(!eventArgsList.Last().HasChanges);
      Assert.IsTrue(!em1.HasChanges());
    }
コード例 #12
0
 public int[] GetSequence(int length)
 {
     List<int> output = new List<int>();
     output.Add(GetFirst());
     while (output.Count < length)
     {
         output.Add(GetNext(output.Last()));
     }
     return output.ToArray();
 }
コード例 #13
0
    public async Task HasChangesChangedAfterSave() {
      var em1 = await TestFns.NewEm(_serviceName);

      var hccArgs = new List<EntityManagerHasChangesChangedEventArgs>();
      em1.HasChangesChanged += (s, e) => {
        hccArgs.Add(e);
      };

      var emp = new Employee() { FirstName = "Test_Fn", LastName = "Test_Ln" };

      em1.AddEntity(emp);
      Assert.IsTrue(hccArgs.Count == 1);
      Assert.IsTrue(hccArgs.Last().HasChanges == true);
      Assert.IsTrue(em1.HasChanges());
      var sr = await em1.SaveChanges();
      Assert.IsTrue(sr.Entities.Count == 1);
      Assert.IsTrue(hccArgs.Count == 2);
      Assert.IsTrue(hccArgs.Last().HasChanges == false);
      Assert.IsTrue(em1.HasChanges() == false);
    }
コード例 #14
0
        public void MeasurementTracker_Track_Ends_Session()
        {
            var actual = new List<Uri>();
            var sessionManager = MeasurementTestHelpers.CreateSessionManager();
            var tracker = new MeasurementTracker(MeasurementTestHelpers.Configuration, sessionManager, MeasurementTestHelpers.CreateEnvironment(), actual.Add);

            tracker.Track(new ScreenViewActivity("Testing") { EndSession = true });

            Assert.AreEqual(SessionStatus.Ending, sessionManager.SessionStatus);
            StringAssert.Contains(actual.Last().OriginalString, "sc=end");
        }
コード例 #15
0
        public void TestCircularRefs()
        {
            var list = new List<TestMan>
            {
                new TestMan {Name = "Serg", Age = 34},
                new TestMan {Name = "Julia", Age = 32}
            };

            list.First().Parent = list.Last();
            list.Last().Parent = list.First();

            _storage.Put("list", list);

            var result = _storage.Get<List<TestMan>>("list");
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("Serg", result.First().Name);
            Assert.AreEqual(34, result.First().Age);
            Assert.AreEqual(result.First(), result.Last().Parent);
            Assert.AreEqual(result.Last(), result.First().Parent);
        }
コード例 #16
0
        public void TestAddValidNews()
        {
            var controller = new NewsController(repoMock.Object);
            SetupController(controller, "News");

            var news = new List<News>
            {
                new News { Title = "Zaglavie", Content = "dadadada" },
                new News { Title = "Asdjoqwe", Content = "asodojk" }
            };

            repoMock.Setup(repo => repo.Add(It.IsAny<News>())).Callback((News n) => news.Add(n));

            var newNews = new NewsBindingModel { Title = "Teadsad", Content = "koko6ki" };
            var result = controller.AddNews(newNews).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.Created, result.StatusCode);
            Assert.AreEqual(newNews.Title, news.Last().Title);
            Assert.AreEqual(newNews.Content, news.Last().Content);
            Assert.IsNotNull(news.Last().PublishDate);
        }
コード例 #17
0
        public static void Setup(TestContext context)
        {
            persons = Enumerable.Range(0, 500)
                .Select(i => new Person { FirstName = "F" + i, LastName = "L" + i, Birthdate = DateTime.Today.AddDays(i - 500), Comment = "C" + 1 })
                .ToList();
            lastDate = persons.Last().Birthdate;
            persons.Add(new Person { FirstName = "Mikael", LastName = "Eliasson", Birthdate = DateTime.Parse("1987-03-01"), Comment = "C" });

            SetConfig(session =>
            {
                session.InsertMany<IPerson>(persons);
            });
        }
コード例 #18
0
        public void MeasurementTracker_Track_Carries_Forward_Last_Transaction()
        {
            var actual = new List<Uri>();
            var tracker = new MeasurementTracker(MeasurementTestHelpers.Configuration, MeasurementTestHelpers.CreateSessionManager(), MeasurementTestHelpers.CreateEnvironment(), actual.Add);

            var transaction = new TransactionActivity { OrderId = "123", Currency = "GBP" };
            tracker.Track(transaction);

            var transactionItem = new TransactionItemActivity("ABC", "Unit Test", 1.23m, 4);
            tracker.Track(transactionItem);

            Assert.AreEqual(transaction, transactionItem.Transaction);
            StringAssert.Contains(actual.Last().OriginalString, "ti=123");
        }
コード例 #19
0
        public void TestWorkflowTaskGroupMultipleTasksRandom()
        {
            var tasksWith1 = new List<ITask>();
            for (var i = 1; i <= 10; i++)
            {
                var i1 = i;
                tasksWith1.Add(new BaseWorkflowTask($"Task with 1 - {i}",
                    (state) => Debug.WriteLine($"Executing task with 1 - {i1}")));
            }

            var tasksAfter1 = new List<ITask>();
            for (var i = 1; i <= 10; i++)
            {
                var i1 = i;
                tasksAfter1.Add(new BaseWorkflowTask($"Task after 1 - {i}",
                    (state) => Debug.WriteLine($"Executing task after 1 - {i1}")));
            }

            var tasksAfter10 = new List<ITask>();
            for (var i = 1; i <= 5; i++)
            {
                var i1 = i;
                tasksAfter10.Add(new BaseWorkflowTask($"Task after 1.10 - {i}",
                    (state) => Debug.WriteLine($"-- After 1.10, parallel - {i1}")));
            }

            tasksAfter1[4].Then(tasksAfter10[2]);
            tasksWith1.Last().Then(tasksAfter10);
            tasksAfter10.Then(tasksAfter1[3]);

            var group =
                new MockTaskGroup(new BaseWorkflowTask("Step 1", (state) =>
                {
                    Debug.WriteLine("Executing step 1");
                })
                    .Then(tasksAfter1)
                    .Then(new BaseWorkflowTask("Step 3", (state) =>
                    {
                        Debug.WriteLine("Executing step 3");
                    })));
            group.Add(tasksWith1);

            group.Run(new State());
            group.GetTasks().ForEach(t => Assert.AreEqual(WorkflowStatus.Completed, t.Status));
            Assert.AreEqual(WorkflowStatus.Completed, group.Status);
        }
コード例 #20
0
        public void SingleBlockTest()
        {
            var content = new string('X', 100);

            var blocks = new List<FragmentBlock>();
            var bw = new ObjectBlockWriter(b => blocks.Add(b));

            using (var s = new BizTalkBlockStream(bw))
            using (var sw = new StreamWriter(s))
            {
                sw.Write(content);
            }

            Assert.AreEqual(2, blocks.Count);
            Assert.IsTrue(blocks.Last().IsEmpty);

            Assert.AreEqual(100, blocks[0].UncompressedLength);
        }
        public void DeterminateStepProgressNotifier_NotifyCurrentProgress()
        {
            // Setup
            var controller = new ConfigurableProgressController(null);
            const int Steps = 2;
            var testSubject = new DeterminateStepProgressNotifier(controller, Steps);
            List<Tuple<string, double>> expectedProgress = new List<Tuple<string, double>>();

            // Act + Verify
            for (int i = 0; i < Steps; i++)
            {
                expectedProgress.Add(Tuple.Create("hello world " + i, 0.0));
                testSubject.NotifyCurrentProgress(expectedProgress.Last().Item1);

                Assert.AreEqual(0, testSubject.CurrentValue, "Should not change");
                controller.AssertProgressChangeEvents(expectedProgress);
            }
        }
コード例 #22
0
        public void DoesNewEmployeeGetInsertedThenDeleted()
        {
            List<Employee> oldAllEmployees = new List<Employee>();
            oldAllEmployees = _mainprog.GetAllEmployees();

            _mainprog.InsertNewEmployee("New Name", "New Department", "New Job Title", 101, "New E-Mail@ Address");

            List<Employee> newAllEmployees = new List<Employee>();
            newAllEmployees = _mainprog.GetAllEmployees();

            Assert.AreEqual(oldAllEmployees.Count + 1, newAllEmployees.Count);

            _mainprog.DeleteEmployeeById(newAllEmployees.Last().Id);

            List<Employee> newerAllEmployees = new List<Employee>();
            newerAllEmployees = _mainprog.GetAllEmployees();

            Assert.AreEqual(oldAllEmployees.Count, newerAllEmployees.Count);
        }
コード例 #23
0
        public Int32 Q1TripleStep(Int32 steps) // assumption that steps fists in n
        {
            List<Int32> ways = new List<Int32> { 1, 1, 2 };

            if (steps <= 1)
                return ways[steps]; // here we assume that 0 steps can be chosen in one way.

            // Hangs. Bug?
            // Contract.Assert(steps > 2);

            int stepsRemaining = steps - 2;
            while (stepsRemaining > 0)
            {
                stepsRemaining--;
                ways.Add(ways.Sum());
                ways.RemoveAt(0);
            }

            Contract.Ensures(ways.Count == 3);
            return ways.Last();
        }
コード例 #24
0
ファイル: ChangeEvents.cs プロジェクト: velcrome/vvvv-Message
        public void TopicWithDetails()
        {
            var message = new Message("Test");

            List<Message> diffs = new List<Message>();

            message.Init("Field", 1, 2, 3);
            message.Commit(this); // clear now

            // set up anonymous watcher, simply recording all changes
            message.ChangedWithDetails += (orig, diff) => { diffs.Add(diff); };

            Assert.IsFalse(message.IsChanged);

            message.Topic = "OtherTopic";

            var hasChanged = message.Commit(this);
            Assert.IsTrue(hasChanged);

            // notification received
            Assert.AreEqual(1, diffs.Count);

            // change corresponds
            Assert.AreEqual(message.Topic, diffs.First().Topic);

            Assert.IsTrue(diffs.Last().IsEmpty);
            Assert.IsFalse(message.IsChanged);

            message.Topic = "  OtherTopic   "; // adding whitespaces should not matter
            Assert.AreEqual("OtherTopic", message.Topic);

            Assert.IsFalse(message.IsChanged);

            // sync again, should stay silent this time
            hasChanged = message.Commit(this);
            Assert.IsFalse(hasChanged);
            Assert.AreEqual(1, diffs.Count);
        }
コード例 #25
0
        public void Progressでは_Reportが呼ばれるたびにProgressChangedイベントが起こる()
        {
            var progress = new Progress<int>();
            var reportedItems = new List<int>();

            progress.ProgressChanged += i =>
            {
                reportedItems.Add(i);
            };

            var t = new Task<int>(c => 進捗報告付きのコルーチン(c, progress));

            var runner = new SampleTaskRunner.TaskRunner();
            t.Start(runner);

            for (int i = 0; i < 100; i++)
            {
                Assert.AreEqual(i, reportedItems.Count);
                runner.Update();
                Assert.AreEqual(i + 1, reportedItems.Count);
                Assert.AreEqual(i, reportedItems.Last());
            }
        }
コード例 #26
0
ファイル: ComplexTypeTests.cs プロジェクト: CodeLancer/Breeze
    public async Task EntityAndPropertyChangedEvents() {
      await _emTask;

      var newLocation = new Location() { City = "Bar", Country = "Foo" };
      var q = new EntityQuery<Supplier>().Where(s => s.CompanyName.StartsWith("P")).Take(2);

      var suppliers = await _em1.ExecuteQuery(q);
      Assert.IsTrue(suppliers.Count() > 0, "should have returned some suppliers");

      var supp0 = suppliers.First();
      List<EntityChangedEventArgs> entityChangedList = new List<EntityChangedEventArgs>();
      List<PropertyChangedEventArgs> propChangedList = new List<PropertyChangedEventArgs>();
      List<PropertyChangedEventArgs> aspectPropChangedList = new List<PropertyChangedEventArgs>();
      _em1.EntityChanged += (s, e) => {
        entityChangedList.Add(e);
      };
      ((INotifyPropertyChanged)supp0).PropertyChanged += (s, e) => {
        propChangedList.Add(e);
      };
      supp0.EntityAspect.PropertyChanged += (s, e) => {
        aspectPropChangedList.Add(e);
      };

      supp0.Location.City = "xxxxx";
      var lastEc = entityChangedList.Last();
      Assert.IsTrue(lastEc.EntityAspect == supp0.EntityAspect, "ec should have been fired");
      Assert.IsTrue(entityChangedList[0].Action == EntityAction.PropertyChange && entityChangedList[0].Entity == supp0);
      Assert.IsTrue(entityChangedList[1].Action == EntityAction.EntityStateChange && entityChangedList[1].Entity == supp0);

      Assert.IsTrue(aspectPropChangedList.Count == 2, "2 aspects should have changed"); // isChanged and EntityState.

      Assert.IsTrue(propChangedList.Count == 1);
      Assert.IsTrue(propChangedList[0].PropertyName == "Location");
      entityChangedList.Clear();
      propChangedList.Clear();
      aspectPropChangedList.Clear();
      supp0.Location.City = "city-1";
      supp0.Location.Address = "address-1";
      Assert.IsTrue(entityChangedList.Count == 2, "should be 2 entity changed events");
      Assert.IsTrue(propChangedList.Count == 2, "should be 2 propChanged events");
      Assert.IsTrue(aspectPropChangedList.Count == 0, "no more EntityAspect changes");
    }
コード例 #27
0
        public List<ITimeSeriesTrace> Get3TracesRegular(
                    TSDateCalculator.TimeStepUnitCode u1, short q1, int c1,
                    DateTime sDate1, out DateTime eDate1,
                    Boolean shouldPerturb = false,
                    int perturbTraceIndex = 0, int perturbStep = 0, 
                    double perturbVal = 0, double perturbMinutes = 0)
        {
            eDate1 = DateTime.Now;  // dummy
            TSLibrary tsLib = new TSLibrary();
            List<ITimeSeriesTrace> traceList = new List<ITimeSeriesTrace>();
            int compressionCode;

            for (int t = 0; t < 3; t++)
            {
                TSTrace trace1 = new TSTrace { TraceNumber = t + 1 };
                List<TimeSeriesValue> tsValues = new List<TimeSeriesValue>();
                DateTime curDate = sDate1;
                Double curVal = 20;
                for (int i = 0; i < c1; i++)
                {
                    tsValues.Add(new TimeSeriesValue { Date = curDate, Value = curVal });
                    curDate = tsLib.IncrementDate(curDate, u1, q1, 1);
                    curVal = curVal + i / (t + 1);
                }
                // make a perturbation if called for
                if (shouldPerturb && t==perturbTraceIndex)
                {
                    tsValues[perturbStep].Value += perturbVal;
                    tsValues[perturbStep].Date = tsValues[perturbStep].Date.AddMinutes(perturbMinutes);
                }
                eDate1 = tsValues.Last().Date;
                tsLib.ConvertListToBlobWithChecksum(
                        u1, q1, c1,
                        sDate1, eDate1, tsValues, trace1, out compressionCode);

                traceList.Add(trace1);
            }
            return traceList;
        }
コード例 #28
0
        // the maximum number of time steps to put into the series
        // The series of tests below is for ConvertBlobToListLimited and ConvertListToBlob.
        // The tests take advantage of the fact that the methods are designed so that
        // the series that is put into the BLOB must be identical to the series that
        // comes out of the BLOB.
        // This method is re-used by the actual test methods that follow.
        public void ConvertBlobLimited(List<TimeSeriesValue> inList,
                TSDateCalculator.TimeStepUnitCode timeStepUnit, short timeStepQuantity,
                DateTime blobStartDate,
                int nCutStart,          // the number of time steps that the test will truncate from the start of the series
                int nCutEnd,            // the number of time steps that the test will truncate from the end of the series
                int nMax)
        {
            TSLibrary tsLib = new TSLibrary();
            List<TimeSeriesValue> outList = new List<TimeSeriesValue>();
            int compressionCode;

            byte[] blobData = tsLib.ConvertListToBlobWithChecksum(timeStepUnit, timeStepQuantity,
                                inList.Count, inList.First().Date, inList.Last().Date, inList,
                                new TSTrace { TraceNumber = 1 }, out compressionCode);

            int ret = tsLib.ConvertBlobToListLimited(timeStepUnit, timeStepQuantity,
                            inList.Count, blobStartDate,
                            nMax, inList[nCutStart].Date, inList[inList.Count - nCutEnd - 1].Date,
                            blobData, ref outList, compressionCode);

            // The return value of the function must match the number of items in the original list
            Assert.AreEqual(ret, Math.Min(nMax, inList.Count - nCutStart - nCutEnd));
            // the count in both lists must match
            Assert.AreEqual(outList.Count, Math.Min(nMax, inList.Count - nCutStart - nCutEnd));

            // now check each item in the two lists
            Boolean AreEqual = true;
            for (int i = 0; i < ret; i++)
            {
                if (outList[i].ValueEquals(inList[i + nCutStart]) == false)
                    AreEqual = false;
            }

            Assert.IsTrue(AreEqual);
        }
コード例 #29
0
        // The series of tests below is for ConvertBlobToListAll and ConvertListToBlob.
        // The tests take advantage of the fact that the methods are designed so that
        // the series that is put into the BLOB must be identical to the series that
        // comes out of the BLOB.
        // This method is re-used by the actual test methods that follow.
        public void ConvertBlobAll(List<TimeSeriesValue> inList,
                TSDateCalculator.TimeStepUnitCode timeStepUnit, short timeStepQuantity,
                DateTime blobStartDate)
        {
            TSLibrary tsLib = new TSLibrary();
            List<TimeSeriesValue> outList = new List<TimeSeriesValue>();
            int compressionCode;

            byte[] blobData = tsLib.ConvertListToBlobWithChecksum(timeStepUnit, timeStepQuantity,
                                inList.Count, inList.First().Date, inList.Last().Date, inList,
                                new TSTrace { TraceNumber=1 }, out compressionCode);

            int ret = tsLib.ConvertBlobToListAll(timeStepUnit, timeStepQuantity,
                            inList.Count, blobStartDate, blobData, ref outList, compressionCode);

            // The return value of the function must match the number of items in the original list
            Assert.AreEqual(ret, inList.Count);
            // the count in both lists must match
            Assert.AreEqual(outList.Count, inList.Count);

            // now check each item in the two lists
            Boolean AreEqual = true;
            for (int i = 0; i < ret; i++)
            {
                if (outList[i].ValueEquals(inList[i]) == false)
                    AreEqual = false;
            }

            Assert.IsTrue(AreEqual);
        }
コード例 #30
0
        private void VerificationScenario(uint testKey)
        {
            // setup
            List<SiloAddress> silos = new List<SiloAddress>();

            foreach (var siloHandle in GetActiveSilos())
            {
                long hash = siloHandle.Silo.SiloAddress.GetConsistentHashCode();
                int index = silos.FindLastIndex(siloAddr => siloAddr.GetConsistentHashCode() < hash) + 1;
                silos.Insert(index, siloHandle.Silo.SiloAddress);
            }

            // verify parameter key
            VerifyKey(testKey, silos);
            // verify some other keys as well, apart from the parameter key            
            // some random keys
            for (int i = 0; i < 3; i++)
            {
                VerifyKey((uint)random.Next(), silos);
            }
            // lowest key
            uint lowest = (uint)(silos.First().GetConsistentHashCode() - 1);
            VerifyKey(lowest, silos);
            // highest key
            uint highest = (uint)(silos.Last().GetConsistentHashCode() + 1);
            VerifyKey(lowest, silos);
        }