public void GivenAgeValue_WhenPerturb_PerturbedValueShouldBeReturned(AgeObject value, PerturbSetting perturbSetting, uint lowerBound, uint upperBound) { var function = new PerturbFunction(perturbSetting); var result = function.Perturb(value); Assert.InRange(result.Value, lowerBound, upperBound); Assert.Equal(value.AgeType, value.AgeType); }
public void GivenAnUnsignedLongInteger_WhenPerturb_PerturbedValueShouldBeReturned(ulong value, PerturbSetting perturbSetting, ulong lowerBound, ulong upperBound) { var function = new PerturbFunction(perturbSetting); var result = function.Perturb(value); Assert.InRange(result, lowerBound, upperBound); Assert.IsType <ulong>(result); }
public PerturbProcessor(JObject settingObject) { EnsureArg.IsNotNull(settingObject, nameof(settingObject)); var settingFactory = new AnonymizerSettingsFactory(); var perturbSetting = settingFactory.CreateAnonymizerSetting <PerturbSetting>(settingObject); _perturbFunction = new PerturbFunction(perturbSetting); }
public void GivenALongInteger_WhenPerturb_PerturbedValueShouldBeReturned(long value, PerturbSetting perturbSetting, long lowerBound, long upperBound) { var function = new PerturbFunction(perturbSetting); var result = function.Perturb(value); Assert.InRange(result, lowerBound, upperBound); Assert.True(GetDecimalPlaces(result) <= perturbSetting.RoundTo); Assert.IsType <long>(result); }
public void GivenAnUnsignedShortInteger_WhenPerturb_PerturbedValueShouldBeReturned(ushort value, PerturbSetting perturbSetting, ushort lowerBound, ushort upperBound) { var function = new PerturbFunction(perturbSetting); var result = function.Perturb(value); Assert.InRange(result, lowerBound, upperBound); Assert.True(GetDecimalPlaces(result) <= perturbSetting.RoundTo); Assert.IsType <ushort>(result); }
public void GivenAFloat_WhenPerturb_PerturbedValueShouldBeReturned(float value, PerturbSetting perturbSetting, float lowerBound, float upperBound) { var function = new PerturbFunction(perturbSetting); var result = function.Perturb(value); Assert.InRange(result, lowerBound, upperBound); Assert.True(GetDecimalPlaces((decimal)result) <= perturbSetting.RoundTo); Assert.IsType <float>(result); }
public void GivenAValueString_WhenPerturb_PerturbedValueShouldBeReturned(string value, PerturbSetting perturbSetting, decimal lowerBound, decimal upperBound) { var function = new PerturbFunction(perturbSetting); var result = function.Perturb(value); Assert.IsType <string>(result); Assert.InRange(decimal.Parse(result), lowerBound, upperBound); Assert.True(GetDecimalPlaces(decimal.Parse(result)) <= perturbSetting.RoundTo); }
public void Process(DicomDataset dicomDataset, DicomItem item, Dictionary<string, object> settings = null) { var perturbSetting = settings == null ? new PerturbSetting() : CreatePertubSettings(settings); var perturbedValues = new List<decimal>() { }; if (item.ValueRepresentation == DicomVR.AS) { var values = ((DicomAgeString)item).Get<string[]>().Select(Utility.ParseAge).Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.DS) { var values = ((DicomDecimalString)item).Get<decimal[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.FL) { var values = ((DicomFloatingPointSingle)item).Get<float[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if ( item.ValueRepresentation == DicomVR.OF) { var values = ((DicomOtherFloat)item).Get<float[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.FD) { var values = ((DicomFloatingPointSingle)item).Get<double[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.OD) { var values = ((DicomFloatingPointSingle)item).Get<double[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.IS) { var values = ((DicomIntegerString)item).Get<int[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.SL) { var values = ((DicomSignedLong)item).Get<int[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.SS) { var values = ((DicomSignedShort)item).Get<short[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.US) { var values = ((DicomUnsignedShort)item).Get<ushort[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.OW) { var values = ((DicomOtherWord)item).Get<ushort[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.UL) { var values = ((DicomUnsignedLong)item).Get<uint[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.OL) { var values = ((DicomOtherLong)item).Get<uint[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.UV) { var values = ((DicomUnsignedVeryLong)item).Get<ulong[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.OV) { var values = ((DicomOtherVeryLong)item).Get<ulong[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else if (item.ValueRepresentation == DicomVR.SV) { var values = ((DicomSignedVeryLong)item).Get<long[]>().Select(x => PerturbFunction.Perturb(x, perturbSetting)); dicomDataset.AddOrUpdate(item.Tag, values.ToArray()); } else { throw new Exception(); } }