public static int[] ToCoordinates(this IGraph self, int index) { var dimensions = self.DimensionsSizes.ToArray(); #region Invariant observance var rangeOfValidIndices = new InclusiveValueRange <int>(self.Size - 1, 0); if (!rangeOfValidIndices.Contains(index)) { throw new ArgumentOutOfRangeException(nameof(index)); } #endregion #region Helper methods int GetCoordinateValue(int dimensionSize) { int coordinate = index % dimensionSize; index /= dimensionSize; return(coordinate); } int Coordinates(int i) => GetCoordinateValue(dimensions[i]); #endregion return(Enumerable .Range(0, dimensions.Length) .Select(Coordinates) .ToArray()); }
public void Constructor_UpperValueIsLesserThanLower_ConstructsCorrectly(int upperValue, int lowerValue) { var range = new InclusiveValueRange <int>(upperValue, lowerValue); Assert.AreEqual(lowerValue, range.UpperValueOfRange); Assert.AreEqual(upperValue, range.LowerValueOfRange); }
static Constants() { GraphWidthValueRange = new InclusiveValueRange <int>(80, 1); GraphLengthValueRange = new InclusiveValueRange <int>(50, 1); ObstaclesPercentValueRange = new InclusiveValueRange <int>(99, 0); AlgorithmDelayTimeValueRange = new InclusiveValueRange <int>(35, 0); }
public MenuList(ICollection <string> menuItemsNames, int columns = 2) { columnsValueRange = new InclusiveValueRange <int>(10, 1); this.columns = columnsValueRange.ReturnInRange(columns); this.menuItemsNames = menuItemsNames; menuList = new Lazy <string>(CreateMenu); }
private IEnumerable <double> RandomValues(InclusiveValueRange <double> valueRange) { for (int i = 0; i < valueRange.Amplitude(); i++) { yield return(valueRange.GetRandomValue()); } }
/// <summary> /// Return user's console input in range of values /// </summary> /// <param name="accompanyingMessage">An input message</param> /// <param name="upperRangeValue">An upper value of input range</param> /// <param name="lowerRangeValue">A lower value of input range</param> /// <returns>A number in the range from /// <paramref name="lowerRangeValue"/> to /// <paramref name="upperRangeValue"/></returns> /// <exception cref="System.IO.IOException"></exception> public static int InputNumber(string accompanyingMessage, int upperRangeValue, int lowerRangeValue = 0) { var rangeOfValidInput = new InclusiveValueRange <int>(upperRangeValue, lowerRangeValue); return(InputNumber(accompanyingMessage, rangeOfValidInput)); }
public bool Contains_ValueIsInValueRange_ReturnsRightCondition(int upperValue, int lowerValue, int testValue) { var range = new InclusiveValueRange <int>(upperValue, lowerValue); return(range.Contains(testValue)); }
public MainView(IMainModel model) { mainModel = model as MainViewModel ?? throw new ArgumentException(nameof(model)); menu = new Menu <Action>(model); menuList = new MenuList(menu.MenuActionsNames, columns: 3); menuValueRange = new InclusiveValueRange <int>(menu.MenuActionsNames.Length, 1); }
static Constants() { GraphWidthValueRange = new InclusiveValueRange <int>(67, 1); GraphLengthValueRange = new InclusiveValueRange <int>(32, 1); ObstaclesPercentValueRange = new InclusiveValueRange <int>(99, 0); AlgorithmDelayTimeValueRange = new InclusiveValueRange <int>(35, 0); GraphParamsValueRanges = new ValueRanges <int>(GraphWidthValueRange, GraphLengthValueRange); }
public void GetRandomValueTest_InclusiveValueRangeDouble_ReturnsValueInRange( double lowerValue, double upperValue) { var valueRange = new InclusiveValueRange <double>(upperValue, lowerValue); var randomValues = RandomValues(valueRange); Assert.IsTrue(randomValues.All(valueRange.Contains)); }
public void GetRandomValueTest_InclusiveValueRangeInt32_ReturnsValueInRange( int lowerValue, int upperValue) { var valueRange = new InclusiveValueRange <int>(upperValue, lowerValue); var randomValues = RandomValues(valueRange); Assert.IsTrue(randomValues.All(valueRange.Contains)); }
public void ReturnInRange_ValueIsLesserThanUpperValue_ReturnsLowerValue(int upperValue, int lowerValue, int outOfRangeValue) { var range = new InclusiveValueRange <int>(upperValue, lowerValue); var valueInRange = range.ReturnInRange(outOfRangeValue); Assert.AreEqual(range.LowerValueOfRange, valueInRange); }
public void ReturnInRange_ValueIsInRange_ReturnsUnchangedValue(int upperValue, int lowerValue, int withinRangeValue) { var range = new InclusiveValueRange <int>(upperValue, lowerValue); var valueInRange = range.ReturnInRange(withinRangeValue); Assert.AreEqual(valueInRange, withinRangeValue); }
static Constants() { ScaleValueRange = new InclusiveValueRange <double>(2.5, 0.1); GraphWidthValueRange = new InclusiveValueRange <int>(150, 1); GraphLengthValueRange = new InclusiveValueRange <int>(75, 1); GraphParamsValueRanges = new ValueRanges <int>(GraphWidthValueRange, GraphLengthValueRange); ObstaclesPercentValueRange = new InclusiveValueRange <double>(99, 0); AlgorithmDelayTimeValueRange = new InclusiveValueRange <double>(35, 0); OffsetValueRange = new InclusiveValueRange <double>(-1000, 1000); }
/// <summary> /// Checks whether coordinate is within graph /// </summary> /// <param name="self"></param> /// <param name="graph"></param> /// <returns>true if <paramref name="self"/> coordinates /// values is not greater than the corresponding dimension if graph /// and is not lesser than 0; false if it is or coordinate has more or /// less coordinates values than <paramref name="graph"/> has dimensions</returns> /// <exception cref="ArgumentNullException">Thrown when any of parametres is null</exception> public static bool IsWithinGraph(this ICoordinate self, IGraph graph) { bool IsWithin(int coordinate, int graphDimension) { var range = new InclusiveValueRange <int>(graphDimension - 1, 0); return(range.Contains(coordinate)); } return(self.IsWithinGraph(graph, IsWithin)); }
public GraphAssemble( IVertexFactory vertexFactory, ICoordinateFactory coordinateFactory, IGraphFactory graphFactory, IVertexCostFactory costFactory, INeighboursCoordinatesFactory radarFactory) { this.vertexFactory = vertexFactory; this.coordinateFactory = coordinateFactory; this.graphFactory = graphFactory; this.costFactory = costFactory; this.radarFactory = radarFactory; percentRange = new InclusiveValueRange <int>(99, 0); }
static Constants() { DistanceBetweenVerticesValueRange = new InclusiveValueRange <double>(70, 0); ZoomValueRange = new InclusiveValueRange <double>(1000, 0); OpacityValueRange = new InclusiveValueRange <double>(1, 0); AngleValueRange = new InclusiveValueRange <double>(360, 0); ObstaclePercentValueRange = new InclusiveValueRange <double>(99, 0); AlgorithmDelayValueRange = new InclusiveValueRange <double>(35, 0); GraphWidthValueRange = new InclusiveValueRange <int>(25, 1); GraphLengthValueRange = GraphWidthValueRange; GraphHeightValueRange = GraphLengthValueRange; GraphParamsValueRanges = new ValueRanges <int>( GraphWidthValueRange, GraphLengthValueRange, GraphHeightValueRange ); }
public static double GetRandomValue(this InclusiveValueRange <double> valueRange) { return(valueRange.Amplitude() * Random.NextDouble() + valueRange.LowerValueOfRange); }
public static int GetRandomValue(this InclusiveValueRange <int> valueRange) { return(Random.Next(valueRange.LowerValueOfRange, valueRange.UpperValueOfRange + 1)); }
static BaseVertexCost() { CostRange = new InclusiveValueRange <int>(9, 1); Random = new Random(); }