MCPcopy Create free account
hub / github.com/apache/arrow / TestDecimalBasic

Function TestDecimalBasic

cpp/src/arrow/json/from_string_test.cc:568–598  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

566
567template <typename DecimalValue, typename DecimalBuilder>
568void TestDecimalBasic(std::shared_ptr<DataType> type) {
569 std::shared_ptr<Array> expected, actual;
570
571 ASSERT_OK_AND_ASSIGN(actual, ArrayFromJSONString(type, "[]"));
572 ASSERT_OK(actual->ValidateFull());
573 {
574 DecimalBuilder builder(type);
575 ASSERT_OK(builder.Finish(&expected));
576 }
577 AssertArraysEqual(*expected, *actual);
578
579 ASSERT_OK_AND_ASSIGN(actual, ArrayFromJSONString(type, "[\"123.4567\", \"-78.9000\"]"));
580 ASSERT_OK(actual->ValidateFull());
581 {
582 DecimalBuilder builder(type);
583 ASSERT_OK(builder.Append(DecimalValue(1234567)));
584 ASSERT_OK(builder.Append(DecimalValue(-789000)));
585 ASSERT_OK(builder.Finish(&expected));
586 }
587 AssertArraysEqual(*expected, *actual);
588
589 ASSERT_OK_AND_ASSIGN(actual, ArrayFromJSONString(type, "[\"123.4567\", null]"));
590 ASSERT_OK(actual->ValidateFull());
591 {
592 DecimalBuilder builder(type);
593 ASSERT_OK(builder.Append(DecimalValue(1234567)));
594 ASSERT_OK(builder.AppendNull());
595 ASSERT_OK(builder.Finish(&expected));
596 }
597 AssertArraysEqual(*expected, *actual);
598}
599
600TEST(TestDecimal32FromString, Basics) {
601 TestDecimalBasic<Decimal32, Decimal32Builder>(decimal32(8, 4));

Callers

nothing calls this directly

Calls 7

ArrayFromJSONStringFunction · 0.85
AssertArraysEqualFunction · 0.85
ASSERT_OK_AND_ASSIGNFunction · 0.50
ValidateFullMethod · 0.45
FinishMethod · 0.45
AppendMethod · 0.45
AppendNullMethod · 0.45

Tested by

no test coverage detected