package com.lingniu.ingest.api.event;

import org.junit.jupiter.api.Test;

import static org.assertj.core.api.Assertions.assertThat;

class TelemetryMetadataValuesTest {

    @Test
    void formatsDoubleWithoutFloatingPointNoise() {
        assertThat(TelemetryMetadataValues.doubleValue(123456.70000000001)).isEqualTo("123456.7");
        assertThat(TelemetryMetadataValues.doubleValue(1234.5)).isEqualTo("1234.5");
        assertThat(TelemetryMetadataValues.doubleValue(1234.0)).isEqualTo("1234");
        assertThat(TelemetryMetadataValues.doubleValue(1.23456789)).isEqualTo("1.234568");
    }

    @Test
    void rejectsNonFiniteDoubleValuesAsBlankMetadata() {
        assertThat(TelemetryMetadataValues.doubleValue(Double.NaN)).isEmpty();
        assertThat(TelemetryMetadataValues.doubleValue(Double.POSITIVE_INFINITY)).isEmpty();
        assertThat(TelemetryMetadataValues.doubleValue(Double.NEGATIVE_INFINITY)).isEmpty();
    }
}
