// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "wtf/dtoa.h"

#include "testing/gtest/include/gtest/gtest.h"

namespace WTF {

TEST(DtoaTest, TestNumberToFixedPrecisionString) {
  NumberToStringBuffer buffer;

  // There should be no trailing decimal or zeros.
  numberToFixedPrecisionString(0.0, 6, buffer);
  EXPECT_STREQ("0", buffer);

  // Up to 6 leading zeros.
  numberToFixedPrecisionString(0.00000123123123, 6, buffer);
  EXPECT_STREQ("0.00000123123", buffer);

  numberToFixedPrecisionString(0.000000123123123, 6, buffer);
  EXPECT_STREQ("1.23123e-7", buffer);

  // Up to 6 places before the decimal.
  numberToFixedPrecisionString(123123.123, 6, buffer);
  EXPECT_STREQ("123123", buffer);

  numberToFixedPrecisionString(1231231.23, 6, buffer);
  EXPECT_STREQ("1.23123e+6", buffer);

  // Don't strip trailing zeros in exponents.
  // http://crbug.com/545711
  numberToFixedPrecisionString(0.000000000123123, 6, buffer);
  EXPECT_STREQ("1.23123e-10", buffer);

  // FIXME: Trailing zeros before exponents should be stripped.
  numberToFixedPrecisionString(0.0000000001, 6, buffer);
  EXPECT_STREQ("1.00000e-10", buffer);
}

}  // namespace WTF
