Skip to content

Commit

Permalink
Merge pull request #121 from GreenmaskIO/fix/precision_pram_renaming
Browse files Browse the repository at this point in the history
fix: transformers precision parameter to decimal
  • Loading branch information
wwoytenko authored May 16, 2024
2 parents 1c7156b + 8e535ee commit 16c3e09
Show file tree
Hide file tree
Showing 10 changed files with 116 additions and 116 deletions.
4 changes: 2 additions & 2 deletions docs/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -522,8 +522,8 @@ their possible attributes. Below are the key parameters for each transformer:
"default_value": "MC4x"
},
{
"name": "precision",
"description": "precision of noised float value (number of digits after coma)",
"name": "decimal",
"description": "decimal of noised float value (number of digits after coma)",
"required": false,
"is_column": false,
"is_column_container": false,
Expand Down
50 changes: 25 additions & 25 deletions internal/db/postgres/transformers/noise_float.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ var NoiseFloatTransformerDefinition = utils.NewTransformerDefinition(
).SetRequired(true),

toolkit.MustNewParameterDefinition(
"precision",
"precision of noised float value (number of digits after coma)",
"decimal",
"Numbers of decimal",
).SetDefaultValue(toolkit.ParamsValue("4")),

toolkit.MustNewParameterDefinition(
Expand Down Expand Up @@ -74,18 +74,18 @@ type NoiseFloatTransformer struct {
t *transformers.NoiseFloat64Transformer
columnName string
columnIdx int
precision int
decimal int
affectedColumns map[int]string
dynamicMode bool
floatSize int

columnParam toolkit.Parameterizer
maxParam toolkit.Parameterizer
minParam toolkit.Parameterizer
engineParam toolkit.Parameterizer
precisionParam toolkit.Parameterizer
maxRatioParam toolkit.Parameterizer
minRatioParam toolkit.Parameterizer
columnParam toolkit.Parameterizer
maxParam toolkit.Parameterizer
minParam toolkit.Parameterizer
engineParam toolkit.Parameterizer
decimalParam toolkit.Parameterizer
maxRatioParam toolkit.Parameterizer
minRatioParam toolkit.Parameterizer

transform func(context.Context, float64) (float64, error)
}
Expand All @@ -95,15 +95,15 @@ func NewNoiseFloatTransformer(ctx context.Context, driver *toolkit.Driver, param
var columnName, engine string
var dynamicMode bool
var minValueThreshold, maxValueThreshold, minRatio, maxRatio float64
var precision int
var decimal int

columnParam := parameters["column"]
minParam := parameters["min"]
maxParam := parameters["max"]
maxRatioParam := parameters["max_ratio"]
minRatioParam := parameters["min_ratio"]
engineParam := parameters["engine"]
precisionParam := parameters["precision"]
decimalParam := parameters["decimal"]

if err := engineParam.Scan(&engine); err != nil {
return nil, nil, fmt.Errorf(`unable to scan "engine" param: %w`, err)
Expand Down Expand Up @@ -134,8 +134,8 @@ func NewNoiseFloatTransformer(ctx context.Context, driver *toolkit.Driver, param
}
}

if err := precisionParam.Scan(&precision); err != nil {
return nil, nil, fmt.Errorf(`unable to scan "precision" param: %w`, err)
if err := decimalParam.Scan(&decimal); err != nil {
return nil, nil, fmt.Errorf(`unable to scan "decimal" param: %w`, err)
}

if err := minRatioParam.Scan(&minRatio); err != nil {
Expand All @@ -146,7 +146,7 @@ func NewNoiseFloatTransformer(ctx context.Context, driver *toolkit.Driver, param
return nil, nil, fmt.Errorf("unable to scan \"max_ratio\" param: %w", err)
}

limiter, limitsWarnings, err := validateNoiseFloatTypeAndSetLimit(floatSize, minValueThreshold, maxValueThreshold, precision)
limiter, limitsWarnings, err := validateNoiseFloatTypeAndSetLimit(floatSize, minValueThreshold, maxValueThreshold, decimal)
if err != nil {
return nil, nil, err
}
Expand All @@ -169,13 +169,13 @@ func NewNoiseFloatTransformer(ctx context.Context, driver *toolkit.Driver, param
columnName: columnName,
affectedColumns: affectedColumns,
columnIdx: idx,
precision: precision,
decimal: decimal,

columnParam: columnParam,
minParam: minParam,
maxParam: maxParam,
engineParam: engineParam,
precisionParam: precisionParam,
columnParam: columnParam,
minParam: minParam,
maxParam: maxParam,
engineParam: engineParam,
decimalParam: decimalParam,

dynamicMode: dynamicMode,
floatSize: floatSize,
Expand Down Expand Up @@ -207,7 +207,7 @@ func (nft *NoiseFloatTransformer) dynamicTransform(ctx context.Context, v float6
return 0, fmt.Errorf("unable to get min and max values: %w", err)
}

limiter, err := transformers.NewNoiseFloat64Limiter(minVal, maxVal, nft.precision)
limiter, err := transformers.NewNoiseFloat64Limiter(minVal, maxVal, nft.decimal)
if err != nil {
return 0, fmt.Errorf("error creating limiter in dynamic mode: %w", err)
}
Expand Down Expand Up @@ -241,7 +241,7 @@ func (nft *NoiseFloatTransformer) Transform(ctx context.Context, r *toolkit.Reco
}

func validateNoiseFloatTypeAndSetLimit(
size int, requestedMinValue, requestedMaxValue float64, precision int,
size int, requestedMinValue, requestedMaxValue float64, decimal int,
) (limiter *transformers.NoiseFloat64Limiter, warns toolkit.ValidationWarnings, err error) {

minValue, maxValue, err := getFloatThresholds(size)
Expand Down Expand Up @@ -275,13 +275,13 @@ func validateNoiseFloatTypeAndSetLimit(
return nil, warns, nil
}

limiter, err = transformers.NewNoiseFloat64Limiter(-math.MaxFloat64, math.MaxFloat64, precision)
limiter, err = transformers.NewNoiseFloat64Limiter(-math.MaxFloat64, math.MaxFloat64, decimal)
if err != nil {
return nil, nil, err
}

if requestedMinValue != 0 || requestedMaxValue != 0 {
limiter, err = transformers.NewNoiseFloat64Limiter(requestedMinValue, requestedMaxValue, precision)
limiter, err = transformers.NewNoiseFloat64Limiter(requestedMinValue, requestedMaxValue, decimal)
if err != nil {
return nil, nil, err
}
Expand Down
12 changes: 6 additions & 6 deletions internal/db/postgres/transformers/noise_float_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,29 +66,29 @@ func TestNoiseFloatTransformer_Transform(t *testing.T) {
params: map[string]toolkit.ParamsValue{
"min_ratio": toolkit.ParamsValue("0.2"),
"max_ratio": toolkit.ParamsValue("0.9"),
"precision": toolkit.ParamsValue("10"),
"decimal": toolkit.ParamsValue("10"),
},
input: "100",
result: result{min: 10, max: 190, regexp: `^-*\d+[.]*\d{0,10}$`},
},
{
name: "float8 ranges 1 with precision",
name: "float8 ranges 1 with decimal",
columnName: "col_float8",
params: map[string]toolkit.ParamsValue{
"min_ratio": toolkit.ParamsValue("0.2"),
"max_ratio": toolkit.ParamsValue("0.9"),
"precision": toolkit.ParamsValue("0"),
"decimal": toolkit.ParamsValue("0"),
},
input: "100",
result: result{min: 10, max: 190, regexp: `^-*\d+$`},
},
{
name: "float8 ranges 1 with precision and hash engine",
name: "float8 ranges 1 with decimal and hash engine",
columnName: "col_float8",
params: map[string]toolkit.ParamsValue{
"min_ratio": toolkit.ParamsValue("0.2"),
"max_ratio": toolkit.ParamsValue("0.9"),
"precision": toolkit.ParamsValue("0"),
"decimal": toolkit.ParamsValue("0"),
"engine": toolkit.ParamsValue("hash"),
},
input: "100",
Expand All @@ -102,7 +102,7 @@ func TestNoiseFloatTransformer_Transform(t *testing.T) {
"max_ratio": toolkit.ParamsValue("0.9"),
"min": toolkit.ParamsValue("90"),
"max": toolkit.ParamsValue("110"),
"precision": toolkit.ParamsValue("0"),
"decimal": toolkit.ParamsValue("0"),
},
input: "100",
result: result{min: 90, max: 110, regexp: `^-*\d+$`},
Expand Down
40 changes: 20 additions & 20 deletions internal/db/postgres/transformers/noise_numeric.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ var NoiseNumericTransformerDefinition = utils.NewTransformerDefinition(
).SetRequired(true),

toolkit.MustNewParameterDefinition(
"precision",
"precision of noised float value (number of digits after coma)",
"decimal",
"Numbers of decimal",
).SetDefaultValue(toolkit.ParamsValue("4")),

toolkit.MustNewParameterDefinition(
Expand Down Expand Up @@ -91,21 +91,21 @@ type NoiseNumericTransformer struct {
t *transformers.NoiseNumericTransformer
columnName string
columnIdx int
precision int32
decimal int32
affectedColumns map[int]string
dynamicMode bool

minAllowedValue decimal.Decimal
maxAllowedValue decimal.Decimal
numericSize int

columnParam toolkit.Parameterizer
maxParam toolkit.Parameterizer
minParam toolkit.Parameterizer
engineParam toolkit.Parameterizer
precisionParam toolkit.Parameterizer
maxRatioParam toolkit.Parameterizer
minRatioParam toolkit.Parameterizer
columnParam toolkit.Parameterizer
maxParam toolkit.Parameterizer
minParam toolkit.Parameterizer
engineParam toolkit.Parameterizer
decimalParam toolkit.Parameterizer
maxRatioParam toolkit.Parameterizer
minRatioParam toolkit.Parameterizer

transform func(decimal.Decimal) (decimal.Decimal, error)
}
Expand All @@ -124,7 +124,7 @@ func NewNumericFloatTransformer(ctx context.Context, driver *toolkit.Driver, par
maxRatioParam := parameters["max_ratio"]
minRatioParam := parameters["min_ratio"]
engineParam := parameters["engine"]
precisionParam := parameters["precision"]
decimalParam := parameters["decimal"]

if err := engineParam.Scan(&engine); err != nil {
return nil, nil, fmt.Errorf(`unable to scan "engine" param: %w`, err)
Expand Down Expand Up @@ -154,8 +154,8 @@ func NewNumericFloatTransformer(ctx context.Context, driver *toolkit.Driver, par
}
}

if err := precisionParam.Scan(&precision); err != nil {
return nil, nil, fmt.Errorf(`unable to scan "precision" param: %w`, err)
if err := decimalParam.Scan(&precision); err != nil {
return nil, nil, fmt.Errorf(`unable to scan "decimal" param: %w`, err)
}

if err := minRatioParam.Scan(&minRatio); err != nil {
Expand Down Expand Up @@ -190,13 +190,13 @@ func NewNumericFloatTransformer(ctx context.Context, driver *toolkit.Driver, par
columnName: columnName,
affectedColumns: affectedColumns,
columnIdx: idx,
precision: precision,
decimal: precision,

columnParam: columnParam,
minParam: minParam,
maxParam: maxParam,
engineParam: engineParam,
precisionParam: precisionParam,
columnParam: columnParam,
minParam: minParam,
maxParam: maxParam,
engineParam: engineParam,
decimalParam: decimalParam,

minAllowedValue: limiter.MinValue,
maxAllowedValue: limiter.MaxValue,
Expand Down Expand Up @@ -240,7 +240,7 @@ func (nft *NoiseNumericTransformer) dynamicTransform(original decimal.Decimal) (
if err != nil {
return decimal.Decimal{}, fmt.Errorf("error creating limiter in dynamic mode: %w", err)
}
limiter.SetPrecision(nft.precision)
limiter.SetPrecision(nft.decimal)
return nft.t.SetDynamicLimiter(limiter).Transform(original)
}

Expand Down
12 changes: 6 additions & 6 deletions internal/db/postgres/transformers/noise_numeric_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,29 +56,29 @@ func TestNoiseNumericTransformer_Transform(t *testing.T) {
params: map[string]toolkit.ParamsValue{
"min_ratio": toolkit.ParamsValue("0.2"),
"max_ratio": toolkit.ParamsValue("0.9"),
"precision": toolkit.ParamsValue("10"),
"decimal": toolkit.ParamsValue("10"),
},
input: "100",
result: result{min: 10, max: 190, regexp: `^-*\d+[.]*\d{0,10}$`},
},
{
name: "numeric ranges 1 with precision",
name: "numeric ranges 1 with decimal",
columnName: "id_numeric",
params: map[string]toolkit.ParamsValue{
"min_ratio": toolkit.ParamsValue("0.2"),
"max_ratio": toolkit.ParamsValue("0.9"),
"precision": toolkit.ParamsValue("0"),
"decimal": toolkit.ParamsValue("0"),
},
input: "100",
result: result{min: 10, max: 190, regexp: `^-*\d+$`},
},
{
name: "numeric ranges 1 with precision and hash engine",
name: "numeric ranges 1 with decimal and hash engine",
columnName: "id_numeric",
params: map[string]toolkit.ParamsValue{
"min_ratio": toolkit.ParamsValue("0.2"),
"max_ratio": toolkit.ParamsValue("0.9"),
"precision": toolkit.ParamsValue("0"),
"decimal": toolkit.ParamsValue("0"),
"engine": toolkit.ParamsValue("hash"),
},
input: "100.111",
Expand All @@ -92,7 +92,7 @@ func TestNoiseNumericTransformer_Transform(t *testing.T) {
"max_ratio": toolkit.ParamsValue("0.9"),
"min": toolkit.ParamsValue("90"),
"max": toolkit.ParamsValue("110"),
"precision": toolkit.ParamsValue("4"),
"decimal": toolkit.ParamsValue("4"),
},
input: "100",
result: result{min: 90, max: 110, regexp: `^-*\d+$`},
Expand Down
Loading

0 comments on commit 16c3e09

Please sign in to comment.