Beispiel #1
0
        public void IsCorrectRotation(int[] values, int expectedCount, int hiddenInEachItemExpectedCount)
        {
            foreach (var value in values)
            {
                var dataItem = new DataItem();
                if (value < 0)
                {
                    dataItem.Hide = true;
                }
                _colonLabelHelper.Add(dataItem);
            }
            var rotation = _colonLabelHelper.GetPossibleVariants().ToArray();

            Assert.AreEqual(expectedCount, rotation.Length);
            Assert.IsTrue(rotation.All(_ => _.Count(__ => __ == LabelPosition.Hidden) == hiddenInEachItemExpectedCount));
        }
Beispiel #2
0
		/// <summary>
        ///     Производит обсчёт расположения лэйблов значений и пытается максимально раздвинуть их между собой
        /// </summary>
		private void CalculateLabelPosition() {
			var tasks = BuildColons().Select(_ => Task.Factory.StartNew(() => {
				var helper = new DataColonLabelHelper {
					LabelHeight = LabelHeight,
					ScaleMax = FirstScale.Max,
					ScaleMin = FirstScale.Min,
					Height = Preferences.Height,
					Order = ColonDataItemOrder.Real
				};

				helper.Clear();
				foreach (var dataItem in _) {
					helper.Add(dataItem);
				}

				helper.EnsureBestLabels();
			})).ToArray();

			Task.WaitAll(tasks);
		}