/**
* Gets the stringified and formatted Complex Number.
* @memberof Complex
* @instance
* @returns {string} The stringified and formatted Complex Number
*/
function toString() {
const {
re,
im,
} = this;
if (Number.isNaN(re) || Number.isNaN(im)) {
return 'NaN';
}
if (re === 0 && im === 0) {
return '0';
}
if (re === 0) {
if (im === 1) {
return 'i';
}
if (im === -1) {
return '-i';
}
return `${im}i`;
}
if (im === 0) {
return `${re}`;
}
if (im > 0) {
if (im === 1) {
return `${re} + i`;
}
return `${re} + ${im}i`;
}
if (im === -1) {
return `${re} - i`;
}
return `${re} - ${Math.abs(im)}i`;
}
module.exports = toString;