Похоже, проблема в тесте, а не в коде.Swift использует Double для хранения числа из теста, и он недостаточно длинный, десятичное число не округлено, но число для сравнения в тесте было.
Решение заключается в сравнении Decimal
.
XCTAssertEqual(price, Decimal(string:"1535132527181273627"))