public void ManyPolylinesMustApplyCorrectly() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(0, -150) .WithVertex(-150, 0) .Please(), GiveMe.DxfPolyline .WithVertex(0, 100) .WithVertex(100, 0) .WithVertex(0, -100) .WithVertex(-100, 0) .Please()) .Please(); System.Run(); var drillParameters = ncParametersFilter.Get1(0).drillParameters; Assert.That(drillParameters.Count(), Is.EqualTo(8)); }
public void ClosestAngleMustApplyWithDifferentSignForEvenPolyline() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 20) .Please()) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(-75, 75) .WithVertex(150, 0) .Please()).Please(); System.Run(); var drillParameters = ncParametersFilter.Get1(0).drillParameters.ToArray(); Assert.That(drillParameters[0].offsetY, Is.EqualTo(0)); Assert.That(drillParameters[1].offsetY, Is.EqualTo(90)); Assert.That(drillParameters[2].offsetY, Is.EqualTo(-135)); Assert.That(drillParameters[3].offsetY, Is.EqualTo(45)); }
public void EvenPolylinesMustApplyWithReversedSign() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(0, -150) .WithVertex(-150, 0) .Please(), GiveMe.DxfPolyline .WithVertex(0, 100) .WithVertex(100, 0) .WithVertex(0, -100) .WithVertex(-100, 0) .Please()) .Please(); System.Run(); var drillParameters = ncParametersFilter.Get1(0).drillParameters.ToArray(); Assert.That(drillParameters.Take(4).Select(o => o.offsetY), Is.All.GreaterThanOrEqualTo(0)); Assert.That(drillParameters.Skip(4).Select(o => o.offsetY), Is.All.LessThanOrEqualTo(0)); }
public void ObservableCanExecuteShouldShowUpInCommand() { var input = new[] {true, false, false, true, false, true}; var result = (new TestScheduler()).With(sched => { var can_execute = new Subject<bool>(); var fixture = createCommand(can_execute, sched); var changes_as_observable = fixture.CanExecuteObservable.CreateCollection(); int change_event_count = 0; fixture.CanExecuteChanged += (o, e) => { change_event_count++; }; input.Run(x => { can_execute.OnNext(x); sched.Start(); Assert.Equal(x, fixture.CanExecute(null)); }); // N.B. We check against '5' instead of 6 because we're supposed to // suppress changes that aren't actually changes i.e. false => false sched.AdvanceToMs(10*1000); return changes_as_observable; }); // NB: Skip(1) is because CanExecuteObservable should have // BehaviorSubject Nature(tm) input.DistinctUntilChanged().AssertAreEqual(result.Skip(1).ToList()); }
public long Solve(string input) { var system = new System(ParseInput(input)); system.Run(); return(system.MemorySum()); }
static void Main() { $if$ ($sharpdx_platform_winrt_xaml$ == true) global::Windows.UI.Xaml.Application.Start((p) => new App()); $else$ using (var program = new $safeclassname$()) program.Run(); $endif$ }
public void ThirdRowIsStartPoint() { World.NewEntity().Get <NcParameters>() = BuildNcParameters(); System.Run(); Assert.That(ncProgramFilter.Get1(0).programText.Split("\r\n")[2], Is.EqualTo("X10Y10")); }
public void ThirdRowFromTheEndIsEndPoint() { World.NewEntity().Get <NcParameters>() = BuildNcParameters(); System.Run(); Assert.That(ncProgramFilter.Get1(0).programText.Split("\r\n").Reverse().ToArray()[2], Is.EqualTo("G0X100Y100")); }
public void SavedFileNameEqualToSourceDxfFileNameAndExtensionIsNc() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <NcProgram>().programText = "NCPROGRAMTEXT"; System.Run(); Assert.DoesNotThrow(() => { var _ = FileSystemServiceStub.SavedFiles["C:\\tmp\\dxf_file.nc"]; }); }
public void SavedFileConsistsOfNcProgramText() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <NcProgram>().programText = "NCPROGRAMTEXT"; System.Run(); Assert.That(FileSystemServiceStub.SavedFiles["C:\\tmp\\dxf_file.nc"], Is.EqualTo("NCPROGRAMTEXT")); }
public void DxfFileDefinitionComponentsAreCreatedForEachFile() { FileSystemServiceStub.FilesInWorkingDirectory.Add("C:\\tmp\\file1.dxf"); FileSystemServiceStub.FilesInWorkingDirectory.Add("C:\\tmp\\file2.dxf"); System.Run(); Assert.That(dxfFileDefinitionFilter.GetEntitiesCount(), Is.EqualTo(2)); foreach (var idx in dxfFileDefinitionFilter) { ref var dxfFileDefinition = ref dxfFileDefinitionFilter.Get1(idx); Assert.That(dxfFileDefinition.path, Is.EqualTo(FileSystemServiceStub.FilesInWorkingDirectory[idx])); }
public void EnsureSyncPointInformationDoesntSerializeExtraJunk() { var template = new SyncPointInformation(Guid.NewGuid(), Guid.NewGuid(), typeof (string), "Foo", DateTimeOffset.MinValue); var json = JSONHelper.Serialize(template); this.Log().Debug(json); var expected = new[] { "RootObjectHash", "ParentSyncPoint", "RootObjectTypeName", "Qualifier", "CreatedOn" }; // TODO: This test sucks out loud expected.Run(x => Assert.True(json.Contains(x))); }
public int IfCirclesCountLessOneThenEntityMustBeDeleted(int circlesCount) { var document = new DxfDocument(); for (var i = 0; i < circlesCount; i++) { document.AddEntity(new Circle()); } var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = document; System.Run(); return(dxfFileContentFilter.GetEntitiesCount()); }
public void CountOfDrillVertexesMustBeEqualToPolylineVertexes() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(0, -150) .WithVertex(-150, 0) .Please()).Please(); System.Run(); Assert.That(ncParametersFilter.Get1(0).drillParameters.Count(), Is.EqualTo(4)); }
public int ForEachEntityNcParametersComponentMustBeAdded(int entitiesCount) { for (var i = 0; i < entitiesCount; i++) { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(0, -150) .WithVertex(-150, 0) .Please()).Please(); } System.Run(); return(ncParametersFilter.GetEntitiesCount()); }
public void EndPointMustBeEqualToEndPointFromConfigurationService() { ConfigurationServiceStub.EndPoint = new netDxf.Vector2(230, 123); var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(0, -150) .WithVertex(-150, 0) .Please()).Please(); System.Run(); Assert.That(ncParametersFilter.Get1(0).endPointX, Is.EqualTo(230)); Assert.That(ncParametersFilter.Get1(0).endPointY, Is.EqualTo(123)); }
public void DxfFileContentComponentAreCreated() { var file1Entity = World.NewEntity(); file1Entity.Get <DxfFileDefinition>().path = "C:\\tmp\\file1.dxf"; var file2Entity = World.NewEntity(); file2Entity.Get <DxfFileDefinition>().path = "C:\\tmp\\file2.dxf"; var documents = new[] { new DxfDocument(), new DxfDocument() }; DxfServiceStub.DxfDocuments.Add("C:\\tmp\\file1.dxf", documents[0]); DxfServiceStub.DxfDocuments.Add("C:\\tmp\\file2.dxf", documents[1]); System.Run(); foreach (var idx in dxfFileContentFilter) { ref var dxfFileContentComponent = ref dxfFileContentFilter.Get1(idx); Assert.That(dxfFileContentComponent.dfxDocument, Is.EqualTo(documents[idx])); }
public int IfAnyPolylineVertexIsOutsideTheBiggestCircleThenEntityMustBeDeleted(bool hasPolylineVertexOutsideTheBiggestCircle) { var document = new DxfDocument(); document.AddEntity(new Circle(new Vector2(0, 0), 100)); var polyline = new LwPolyline(new[] { new LwPolylineVertex(10, 10), new LwPolylineVertex(20, 20) }, true); if (hasPolylineVertexOutsideTheBiggestCircle) { polyline.Vertexes.Add(new LwPolylineVertex(200, 300)); } document.AddEntity(polyline); var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = document; System.Run(); return(dxfFileContentFilter.GetEntitiesCount()); }
public void MessageBusSmokeTest() { var input = new[] {1, 2, 3, 4}; var result = (new TestScheduler()).With(sched => { var source = new Subject<int>(); var fixture = new MessageBus(); fixture.RegisterMessageSource(source, "Test"); Assert.False(fixture.IsRegistered(typeof (int))); Assert.False(fixture.IsRegistered(typeof (int), "Foo")); var output = fixture.Listen<int>("Test").CreateCollection(); input.Run(source.OnNext); sched.Start(); return output; }); input.AssertAreEqual(result); }
public void StartPointMustBeEqualToBiggestCircleRadiusMinusStartingOffsetOnXAxisAndZeroOnYAxis() { ConfigurationServiceStub.StartPointXOffset = -143; var document = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 150) .WithVertex(150, 0) .WithVertex(0, -150) .WithVertex(-150, 0) .Please()).Please(); document.Circles.First().Radius = 412; var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = document; System.Run(); Assert.That(ncParametersFilter.Get1(0).startPointX, Is.EqualTo(412 - 143)); Assert.That(ncParametersFilter.Get1(0).startPointY, Is.EqualTo(0)); }
public void XOffsetMustApplyCorrectly() { var entity = World.NewEntity(); entity.Get <DxfFileDefinition>().path = "C:\\tmp\\dxf_file.dxf"; entity.Get <DxfFileContent>().dfxDocument = GiveMe.DxfDocument .WithCircle(200) .WithPolylines(GiveMe.DxfPolyline .WithVertex(0, 140) .WithVertex(130, 0) .WithVertex(0, -150) .WithVertex(-160, 0) .Please()).Please(); System.Run(); var drillParameters = ncParametersFilter.Get1(0).drillParameters.ToArray(); Assert.That(drillParameters[0].offsetX, Is.EqualTo(-60)); Assert.That(drillParameters[1].offsetX, Is.EqualTo(-10)); Assert.That(drillParameters[2].offsetX, Is.EqualTo(20)); Assert.That(drillParameters[3].offsetX, Is.EqualTo(10)); }
public void ObservableCanExecuteShouldShowUpInCommand() { var input = new[] {true, false, false, true, false, true}; var result = (new TestScheduler()).With(sched => { var can_execute = new Subject<bool>(); var fixture = createCommand(can_execute, sched); var changes_as_observable = fixture.CanExecuteObservable.CreateCollection(); int change_event_count = 0; fixture.CanExecuteChanged += (o, e) => { change_event_count++; }; input.Run(x => { this.Log().InfoFormat("input = {0}", x); can_execute.OnNext(x); sched.Run(); Assert.Equal(x, fixture.CanExecute(null)); }); // N.B. We check against '5' instead of 6 because we're supposed to // suppress changes that aren't actually changes i.e. false => false sched.RunToMilliseconds(10 * 1000); return changes_as_observable; }); input.DistinctUntilChanged().AssertAreEqual(result.ToList()); }
public void ObservableCanExecuteShouldShowUpInCommand() { var can_execute = new Subject<bool>(); var fixture = new ReactiveCommand(can_execute, null); var changes_as_observable = new ListObservable<bool>(fixture.CanExecuteObservable); var input = new[] { true, false, false, true, false, true }; int change_event_count = 0; fixture.CanExecuteChanged += (o, e) => { change_event_count++; }; input.Run(x => { can_execute.OnNext(x); Assert.AreEqual(x, fixture.CanExecute(null)); }); // N.B. We check against '5' instead of 6 because we're supposed to // suppress changes that aren't actually changes i.e. false => false can_execute.OnCompleted(); Assert.AreEqual(5, change_event_count); input.Zip(changes_as_observable.ToList(), (expected, actual) => new { expected, actual }) .Do(Console.WriteLine) .Run(x => Assert.AreEqual(x.expected, x.actual)); }
public void MultipleSubscribesShouldntResultInMultipleNotifications() { var input = new[] { 1, 2, 1, 2 }; var fixture = new ReactiveCommand(null, null); var odd_list = new List<int>(); var even_list = new List<int>(); fixture.Where(x => ((int)x) % 2 != 0).Subscribe(x => odd_list.Add((int)x)); fixture.Where(x => ((int)x) % 2 == 0).Subscribe(x => even_list.Add((int)x)); input.Run(x => fixture.Execute(x)); new[]{1,1}.Zip(odd_list, (expected, actual) => new { expected, actual }) .Run(x => Assert.AreEqual(x.expected, x.actual)); new[]{2,2}.Zip(even_list, (expected, actual) => new { expected, actual }) .Run(x => Assert.AreEqual(x.expected, x.actual)); }
public override void Do(World value, Model model) { var run1 = System <T1> .Run(() => _counter1 ++); var nodes1 = new[]
public void DisposeTest() { var input = new[] { 1, 1, 1, 1, 1 }; var fixture = new QueuedAsyncMRUCache<int, int>(x => { Thread.Sleep(1000); return x * 5; }, 5, 2); input.Run(x => fixture.AsyncGet(x)); fixture.Dispose(); bool threw = false; try { fixture.AsyncGet(2); } catch(Exception ex) { this.Log().Info("Threw exception correctly", ex); threw = true; } Assert.IsTrue(threw); }
public void MultipleSubscribesShouldntResultInMultipleNotifications() { var input = new[] { 1, 2, 1, 2 }; var sched = new TestScheduler(); var fixture = new ReactiveCommand(null, sched); var odd_list = new List<int>(); var even_list = new List<int>(); fixture.Where(x => ((int)x) % 2 != 0).Subscribe(x => odd_list.Add((int)x)); fixture.Where(x => ((int)x) % 2 == 0).Subscribe(x => even_list.Add((int)x)); input.Run(x => fixture.Execute(x)); sched.RunToMilliseconds(1000); new[]{1,1}.AssertAreEqual(odd_list); new[]{2,2}.AssertAreEqual(even_list); }
public void ObservableCanExecuteShouldShowUpInCommand() { var input = new[] {true, false, false, true, false, true}; var result = (new TestScheduler()).With(sched => { var can_execute = new Subject<bool>(); var fixture = new ReactiveCommand(can_execute, null); var changes_as_observable = new ListObservable<bool>(fixture.CanExecuteObservable); int change_event_count = 0; fixture.CanExecuteChanged += (o, e) => { change_event_count++; }; input.Run(x => { can_execute.OnNext(x); sched.Run(); Assert.AreEqual(x, fixture.CanExecute(null)); }); // N.B. We check against '5' instead of 6 because we're supposed to // suppress changes that aren't actually changes i.e. false => false can_execute.OnCompleted(); sched.Run(); Assert.AreEqual(5, change_event_count); return changes_as_observable; }); input.AssertAreEqual(result.ToList()); }
public void CanGenerate_Multithreaded() { var ids = new ConcurrentBag<KeyValuePair<Int32, UInt64>>(); var cts = new CancellationTokenSource(); ParameterizedThreadStart generateIds = (token) => { var ct = (CancellationToken)token; while (!ct.IsCancellationRequested) { var newIds = new ulong[10000]; for (int i = 0; i < 10000; i++) { newIds[i] = _generator.Generate(); } newIds.Run(x => ids.Add(KeyValuePair.Create(Thread.CurrentThread.ManagedThreadId, x))); } }; var threads = new[] { new Thread(generateIds), new Thread(generateIds), new Thread(generateIds), new Thread(generateIds) }; threads.Run(t => t.Start(cts.Token)); Thread.Sleep(1000); cts.Cancel(); threads.Run(t => t.Join()); var distinctIds = ids.Select(x => x.Value).Distinct().ToArray(); Assert.IsTrue(ids.Count > 0, "Count wasn't greater than zero."); Assert.IsTrue(ids.Count == distinctIds.Count(), "Counts don't match!"); Console.WriteLine("Id count: {0}", ids.Count); var distinctThreadIds = ids.Select(x => x.Key).Distinct().ToArray(); Assert.IsTrue(distinctThreadIds.Length > 1, "Distinct threads not greater than one."); }