@@ -1143,6 +1143,25 @@ class TestDecimal: XCTestCase {
1143
1143
XCTAssertEqual ( NSDecimalString ( & decimal, NSDictionary ( dictionary: d4) ) , " -123456.789 " )
1144
1144
}
1145
1145
1146
+ func test_multiplyingByPowerOf10( ) {
1147
+ let decimalNumber = NSDecimalNumber ( string: " 0.022829306361065572 " )
1148
+ let d1 = decimalNumber. multiplying ( byPowerOf10: 18 )
1149
+ XCTAssertEqual ( d1. stringValue, " 22829306361065572 " )
1150
+ let d2 = d1. multiplying ( byPowerOf10: - 18 )
1151
+ XCTAssertEqual ( d2. stringValue, " 0.022829306361065572 " )
1152
+
1153
+ XCTAssertEqual ( NSDecimalNumber ( string: " 0.01 " ) . multiplying ( byPowerOf10: 0 ) . stringValue, " 0.01 " )
1154
+ XCTAssertEqual ( NSDecimalNumber ( string: " 0.01 " ) . multiplying ( byPowerOf10: 1 ) . stringValue, " 0.1 " )
1155
+ XCTAssertEqual ( NSDecimalNumber ( string: " 0.01 " ) . multiplying ( byPowerOf10: - 1 ) . stringValue, " 0.001 " )
1156
+ XCTAssertEqual ( NSDecimalNumber ( value: 0 ) . multiplying ( byPowerOf10: 0 ) . stringValue, " 0 " )
1157
+ XCTAssertEqual ( NSDecimalNumber ( value: 0 ) . multiplying ( byPowerOf10: - 1 ) . stringValue, " 0 " )
1158
+ XCTAssertEqual ( NSDecimalNumber ( value: 0 ) . multiplying ( byPowerOf10: 1 ) . stringValue, " 0 " )
1159
+
1160
+ XCTAssertEqual ( NSDecimalNumber ( value: 1 ) . multiplying ( byPowerOf10: 128 ) . stringValue, " NaN " )
1161
+ XCTAssertEqual ( NSDecimalNumber ( value: 1 ) . multiplying ( byPowerOf10: 127 ) . stringValue, " 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " )
1162
+ XCTAssertEqual ( NSDecimalNumber ( value: 1 ) . multiplying ( byPowerOf10: - 128 ) . stringValue, " 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " )
1163
+ XCTAssertEqual ( NSDecimalNumber ( value: 1 ) . multiplying ( byPowerOf10: - 129 ) . stringValue, " NaN " )
1164
+ }
1146
1165
1147
1166
static var allTests : [ ( String , ( TestDecimal ) -> ( ) throws -> Void ) ] {
1148
1167
return [
@@ -1171,6 +1190,7 @@ class TestDecimal: XCTestCase {
1171
1190
( " test_bridging " , test_bridging) ,
1172
1191
( " test_stringWithLocale " , test_stringWithLocale) ,
1173
1192
( " test_NSDecimalString " , test_NSDecimalString) ,
1193
+ ( " test_multiplyingByPowerOf10 " , test_multiplyingByPowerOf10) ,
1174
1194
]
1175
1195
}
1176
1196
}
0 commit comments