// Static Constructor static StandardCoinMetrics() { _allCoinMetrics = new StandardCoinMetrics[3]; _allCoinMetrics[0] = new StandardCoinMetrics( name: "Nickel", valueCents: 5, minWeightGrams: 4.990f, maxWeightGrams: 5.020f, minDiameterMm: 21.10f, maxDiameterMm: 21.30f); _allCoinMetrics[1] = new StandardCoinMetrics( name: "Dime", valueCents: 10, minWeightGrams: 2.250f, maxWeightGrams: 2.280f, minDiameterMm: 17.70f, maxDiameterMm: 18.00f); _allCoinMetrics[2] = new StandardCoinMetrics( name: "Quarter", valueCents: 25, minWeightGrams: 5.660f, maxWeightGrams: 5.680f, minDiameterMm: 24.10f, maxDiameterMm: 25.40f); }
/// <summary> /// Coin is valid if in range of weight and diameter /// </summary> /// <param name="coin"></param> /// <param name="standardCoinMetrics"></param> /// <returns></returns> private static bool IsValidCoin(SampleCoin coin, StandardCoinMetrics standardCoinMetrics) { Debug.Assert(coin != null, "coin != null"); Debug.Assert(standardCoinMetrics != null); var actWeight = coin.WeightGrams; var actDiameter = coin.DiameterMm; var minWeight = standardCoinMetrics.MinWeightGrams; var maxWeight = standardCoinMetrics.MaxWeightGrams; var minDiameter = standardCoinMetrics.MinDiameterMm; var maxDiameter = standardCoinMetrics.MaxDiameterMm; bool weightOk = (minWeight <= actWeight && actWeight <= maxWeight); bool diameterOk = (minDiameter <= actDiameter && actDiameter <= maxDiameter); return(weightOk && diameterOk); }