public void ValidationErrorTest() { var options = new ProjectOptions(); options.VisualizerOptions.NDRange3D = true; var selector = new GroupIndexSelector(options) { DimX = 20, X = 19 }; Assert.False(selector.HasErrors); selector.IndexChanged += (s, e) => { e.DataGroupCount = 1; e.IsValid = false; }; selector.Update(); Assert.True(selector.HasErrors); Assert.Equal("Invalid group index: 19 >= 1", selector.GetErrors("X").Cast <string>().First()); Assert.Equal("Invalid group index: 19 >= 1", selector.GetErrors("Y").Cast <string>().First()); Assert.Equal("Invalid group index: 19 >= 1", selector.GetErrors("Z").Cast <string>().First()); Assert.Empty(selector.GetErrors("").Cast <string>()); selector.IndexChanged += (s, e) => { e.DataGroupCount = 20; e.IsValid = true; }; selector.Update(); Assert.False(selector.HasErrors); Assert.Empty(selector.GetErrors("").Cast <string>()); }
public void DimensionClippingTest() { var options = new ProjectOptions(); options.VisualizerOptions.NDRange3D = true; var selector = new GroupIndexSelector(options); var changedPropertyName = ""; selector.PropertyChanged += (s, e) => changedPropertyName = e.PropertyName; selector.DimX = 2; Assert.Equal(nameof(selector.DimX), changedPropertyName); selector.X = 3; Assert.Equal(nameof(selector.X), changedPropertyName); Assert.Equal <uint>(1, selector.X); // clipped to DimX - 1 }
public void GroupIndexChangeArgsTest() { GroupIndexChangedEventArgs eventArgs = null; var options = new ProjectOptions(); options.VisualizerOptions.NDRange3D = true; var selector = new GroupIndexSelector(options); selector.IndexChanged += (s, e) => { eventArgs = e; e.IsValid = true; }; selector.DimX = 10; selector.DimY = 100; selector.DimZ = 1000; selector.X = 3; selector.Y = 2; selector.Z = 1; Assert.NotNull(eventArgs); Assert.Equal((uint)(3 + 2 * 10 + 10 * 100), eventArgs.GroupIndex); Assert.Equal("(3; 2; 1)", eventArgs.Coordinates); }