public static void MockUrbanTypeAndKValues(this Mock<IBroadcastModel> model, UrbanType utype) { model.SetupGet(x => x.UrbanType).Returns(utype); switch (utype) { case UrbanType.Middle: case UrbanType.Large: model.SetupGet(x => x.K1).Returns(69.55); model.SetupGet(x => x.K4).Returns(44.9); break; default: model.SetupGet(x => x.K1).Returns(85.83); model.SetupGet(x => x.K4).Returns(60); break; } }
private void TestDifferentFrequenciesWithUrbanType(UrbanType utype, double distance) { model = new BroadcastModel(utype: utype); double d1 = model.CalculatePathLoss(distance, 40); model = new BroadcastModel(FrequencyBandType.Uplink2100, utype); double d2 = model.CalculatePathLoss(distance, 40); model = new BroadcastModel(FrequencyBandType.Downlink1800, utype); double d3 = model.CalculatePathLoss(distance, 40); model = new BroadcastModel(FrequencyBandType.Uplink1800, utype); double d4 = model.CalculatePathLoss(distance, 40); model = new BroadcastModel(FrequencyBandType.Tdd2600, utype); double d5 = model.CalculatePathLoss(distance, 40); Assert.IsTrue(d5 > d1); Assert.IsTrue(d1 > d2); Assert.IsTrue(d2 > d3); Assert.IsTrue(d3 > d4); }
public void SetKvalue(UrbanType utype) { _urbanType = utype; switch (utype) { case UrbanType.Middle: case UrbanType.Large: K1 = 69.55; K4 = 44.9; break; default: K1 = 85.83; K4 = 60; break; } }
private void TestDifferentFrequenciesWithUrbanType(UrbanType utype, double distance) { model.MockUrbanTypeAndKValues(utype); model.MockFrequencyType(FrequencyBandType.Downlink2100); double d1 = model.Object.CalculatePathLoss(distance, 40); model.MockFrequencyType(FrequencyBandType.Uplink2100); double d2 = model.Object.CalculatePathLoss(distance, 40); model.MockFrequencyType(FrequencyBandType.Downlink1800); double d3 = model.Object.CalculatePathLoss(distance, 40); model.MockFrequencyType(FrequencyBandType.Uplink1800); double d4 = model.Object.CalculatePathLoss(distance, 40); model.MockFrequencyType(FrequencyBandType.Tdd2600); double d5 = model.Object.CalculatePathLoss(distance, 40); Assert.IsTrue(d5 > d1); Assert.IsTrue(d1 > d2); Assert.IsTrue(d2 > d3); Assert.IsTrue(d3 > d4); }
private void AssertTest(UrbanType type, double frequnecy, double height) { model.MockUrbanTypeAndKValues(type); model.SetupGet(x => x.Frequency).Returns(frequnecy); TestDifferentDistancesWithBsHeight(height); }
public static void MockUrbanTypeAndKValues(this Mock <IBroadcastModel> model, UrbanType utype) { model.SetupGet(x => x.UrbanType).Returns(utype); switch (utype) { case UrbanType.Middle: case UrbanType.Large: model.SetupGet(x => x.K1).Returns(69.55); model.SetupGet(x => x.K4).Returns(44.9); break; default: model.SetupGet(x => x.K1).Returns(85.83); model.SetupGet(x => x.K4).Returns(60); break; } }
public LinkBudget(IOutdoorCell cell, UrbanType utype = UrbanType.Large) : this(new BroadcastModel(cell.Frequency, utype), cell.RsPower, cell.AntennaGain) { }
private static double CalculateModifiedFactor(this IBroadcastModel model, double mobileHeight, UrbanType urbanType) { switch (urbanType) { case UrbanType.Middle: return((1.1 * Math.Log10(model.Frequency) - 0.7) * mobileHeight - 1.56 * Math.Log10(model.Frequency) + 0.8); case UrbanType.Large: return(8.29 * Math.Log10(1.54 * model.Frequency) * Math.Log10(1.54 * model.Frequency) - 1.1); default: return(3.2 * Math.Log10(11.75 * model.Frequency) * Math.Log10(11.75 * model.Frequency) - 4.97); } }
public BroadcastModel(int fcn, UrbanType utype = UrbanType.Large) { SetEarfcn(fcn); _urbanType = utype; SetKvalue(utype); }
public BroadcastModel(FrequencyBandType ftype = FrequencyBandType.Downlink2100, UrbanType utype = UrbanType.Large) { SetFrequencyBand(ftype); _urbanType = utype; SetKvalue(utype); }