Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

testifylint->float-compare - Should we enable it? #15534

Open
zak-pawel opened this issue Jun 20, 2024 · 2 comments · May be fixed by #15566
Open

testifylint->float-compare - Should we enable it? #15534

zak-pawel opened this issue Jun 20, 2024 · 2 comments · May be fixed by #15566
Labels

Comments

@zak-pawel
Copy link
Collaborator

Description

This issue starts a discussion about enabling:

Example

Before:

assert.Equal(t, 42.42, result)
assert.EqualValues(t, 42.42, result)
assert.Exactly(t, 42.42, result)
assert.True(t, result == 42.42)
assert.False(t, result != 42.42)

After:

assert.InEpsilon(t, 42.42, result, 0.0001) // Or assert.InDelta

Expected output

Decision about enabling or not enabling this checker.

Findings

For this checker, the following findings were found in the current codebase:

agent/accumulator_test.go:35:2                                                 testifylint  float-compare: use require.InEpsilon (or InDelta)
metric/metric_test.go:115:2                                                    testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ceph/ceph_test.go:45:2                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ceph/ceph_test.go:53:2                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ceph/ceph_test.go:61:2                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/cloud_pubsub/cloud_pubsub_test.go:296:2                         testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ctrlx_datalayer/ctrlx_datalayer_test.go:209:4                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ctrlx_datalayer/ctrlx_datalayer_test.go:229:4                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:203:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:208:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:209:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:210:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:215:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:216:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:217:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:218:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:219:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:220:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:221:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:222:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:223:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:224:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:225:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:226:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:227:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:228:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:233:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:234:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:235:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:236:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:237:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:238:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/fluentd/fluentd_test.go:239:2                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/google_cloud_storage/google_cloud_storage_test.go:95:2          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/google_cloud_storage/google_cloud_storage_test.go:96:2          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/http/http_test.go:65:2                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/http_response/http_response_test.go:52:4                        testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_powerstat/intel_powerstat_test.go:4951:3                  testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_powerstat/intel_powerstat_test.go:4952:3                  testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:47:3                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:48:3                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:49:3                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:50:3                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:51:3                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:52:3                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:134:3                               testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:135:3                               testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:136:3                               testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:137:3                               testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:138:3                               testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/intel_rdt/publisher_test.go:139:3                               testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/mock/mock_test.go:78:4                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/mock/mock_test.go:91:4                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/mock/mock_test.go:93:4                                          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/netflow/type_conversion_test.go:69:2                            testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ping/ping_test.go:470:3                                         testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ping/ping_test.go:472:3                                         testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/ping/ping_test.go:474:3                                         testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/postgresql_extensible/postgresql_extensible_test.go:139:4       testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/statsd/statsd_test.go:1555:2                                    testifylint  float-compare: use require.InEpsilonf (or InDeltaf)
plugins/inputs/vsphere/vsphere_test.go:181:3                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/inputs/vsphere/vsphere_test.go:207:3                                   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/application_insights/application_insights_test.go:406:4        testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/application_insights/application_insights_test.go:410:2        testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/application_insights/application_insights_test.go:428:2        testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/azure_data_explorer/azure_data_explorer_test.go:152:5          testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/bigquery/bigquery_test.go:175:2                                testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/elasticsearch/elasticsearch_test.go:773:2                      testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/elasticsearch/elasticsearch_test.go:796:2                      testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/graylog/graylog_test_linux.go:181:3                            testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/graylog/graylog_test_linux.go:251:3                            testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/groundwork/groundwork_test.go:95:3                             testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/groundwork/groundwork_test.go:96:3                             testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/groundwork/groundwork_test.go:97:3                             testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/groundwork/groundwork_test.go:164:3                            testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/groundwork/groundwork_test.go:165:3                            testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/groundwork/groundwork_test.go:166:3                            testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/nebius_cloud_monitoring/nebius_cloud_monitoring_test.go:74:5   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/nebius_cloud_monitoring/nebius_cloud_monitoring_test.go:96:5   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/nebius_cloud_monitoring/nebius_cloud_monitoring_test.go:118:5  testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/nebius_cloud_monitoring/nebius_cloud_monitoring_test.go:143:5  testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/sensu/sensu_test.go:203:4                                      testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/stackdriver/stackdriver_test.go:1141:2                         testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/yandex_cloud_monitoring/yandex_cloud_monitoring_test.go:74:5   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/yandex_cloud_monitoring/yandex_cloud_monitoring_test.go:95:5   testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/outputs/yandex_cloud_monitoring/yandex_cloud_monitoring_test.go:116:5  testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/parsers/csv/parser_test.go:238:2                                       testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/parsers/nagios/parser_test.go:522:3                                    testifylint  float-compare: use require.InEpsilon (or InDelta)
plugins/parsers/nagios/parser_test.go:523:3                                    testifylint  float-compare: use require.InEpsilon (or InDelta)

Additional configuration

For this checker, no additional configuration can be provided.

@srebhan
Copy link
Contributor

srebhan commented Jun 24, 2024

We can enable this, for the findings the values are crafter I think to be exactly representable. But yeah in-epsilon seems to be the better choice.

@srebhan srebhan removed their assignment Jun 24, 2024
@powersj
Copy link
Contributor

powersj commented Jun 25, 2024

+1 this has bit us a couple times across platforms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants