Skip to content

Commit b331596

Browse files
committed
Refactor complex numbers.
1 parent 7d68544 commit b331596

File tree

2 files changed

+61
-61
lines changed

2 files changed

+61
-61
lines changed

Diff for: src/algorithms/math/complex-number/ComplexNumber.js

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
export default class ComplexNumber {
22
/**
3-
* @param {number} [real]
4-
* @param {number} [imaginary]
3+
* @param {number} [re]
4+
* @param {number} [im]
55
*/
6-
constructor({ real = 0, imaginary = 0 } = {}) {
7-
this.real = real;
8-
this.imaginary = imaginary;
6+
constructor({ re = 0, im = 0 } = {}) {
7+
this.re = re;
8+
this.im = im;
99
}
1010

1111
/**
@@ -14,8 +14,8 @@ export default class ComplexNumber {
1414
*/
1515
add(addend) {
1616
return new ComplexNumber({
17-
real: this.real + addend.real,
18-
imaginary: this.imaginary + addend.imaginary,
17+
re: this.re + addend.re,
18+
im: this.im + addend.im,
1919
});
2020
}
2121

@@ -25,8 +25,8 @@ export default class ComplexNumber {
2525
*/
2626
subtract(subtrahend) {
2727
return new ComplexNumber({
28-
real: this.real - subtrahend.real,
29-
imaginary: this.imaginary - subtrahend.imaginary,
28+
re: this.re - subtrahend.re,
29+
im: this.im - subtrahend.im,
3030
});
3131
}
3232

@@ -36,8 +36,8 @@ export default class ComplexNumber {
3636
*/
3737
multiply(multiplicand) {
3838
return new ComplexNumber({
39-
real: this.real * multiplicand.real - this.imaginary * multiplicand.imaginary,
40-
imaginary: this.real * multiplicand.imaginary + this.imaginary * multiplicand.real,
39+
re: this.re * multiplicand.re - this.im * multiplicand.im,
40+
im: this.re * multiplicand.im + this.im * multiplicand.re,
4141
});
4242
}
4343

@@ -53,11 +53,11 @@ export default class ComplexNumber {
5353
const finalDivident = this.multiply(dividerConjugate);
5454

5555
// Calculating final divider using formula (a + bi)(a − bi) = a^2 + b^2
56-
const finalDivider = (divider.real ** 2) + (divider.imaginary ** 2);
56+
const finalDivider = (divider.re ** 2) + (divider.im ** 2);
5757

5858
return new ComplexNumber({
59-
real: finalDivident.real / finalDivider,
60-
imaginary: finalDivident.imaginary / finalDivider,
59+
re: finalDivident.re / finalDivider,
60+
im: finalDivident.im / finalDivider,
6161
});
6262
}
6363

@@ -66,8 +66,8 @@ export default class ComplexNumber {
6666
*/
6767
conjugate(complexNumber) {
6868
return new ComplexNumber({
69-
real: complexNumber.real,
70-
imaginary: -1 * complexNumber.imaginary,
69+
re: complexNumber.re,
70+
im: -1 * complexNumber.im,
7171
});
7272
}
7373
}

Diff for: src/algorithms/math/complex-number/__test__/ComplexNumber.test.js

+45-45
Original file line numberDiff line numberDiff line change
@@ -2,112 +2,112 @@ import ComplexNumber from '../ComplexNumber';
22

33
describe('ComplexNumber', () => {
44
it('should create complex numbers', () => {
5-
const complexNumber = new ComplexNumber({ real: 1, imaginary: 2 });
5+
const complexNumber = new ComplexNumber({ re: 1, im: 2 });
66

77
expect(complexNumber).toBeDefined();
8-
expect(complexNumber.real).toBe(1);
9-
expect(complexNumber.imaginary).toBe(2);
8+
expect(complexNumber.re).toBe(1);
9+
expect(complexNumber.im).toBe(2);
1010

1111
const defaultComplexNumber = new ComplexNumber();
12-
expect(defaultComplexNumber.real).toBe(0);
13-
expect(defaultComplexNumber.imaginary).toBe(0);
12+
expect(defaultComplexNumber.re).toBe(0);
13+
expect(defaultComplexNumber.im).toBe(0);
1414
});
1515

1616
it('should add complex numbers', () => {
17-
const complexNumber1 = new ComplexNumber({ real: 1, imaginary: 2 });
18-
const complexNumber2 = new ComplexNumber({ real: 3, imaginary: 8 });
17+
const complexNumber1 = new ComplexNumber({ re: 1, im: 2 });
18+
const complexNumber2 = new ComplexNumber({ re: 3, im: 8 });
1919

2020
const complexNumber3 = complexNumber1.add(complexNumber2);
2121
const complexNumber4 = complexNumber2.add(complexNumber1);
2222

23-
expect(complexNumber3.real).toBe(1 + 3);
24-
expect(complexNumber3.imaginary).toBe(2 + 8);
23+
expect(complexNumber3.re).toBe(1 + 3);
24+
expect(complexNumber3.im).toBe(2 + 8);
2525

26-
expect(complexNumber4.real).toBe(1 + 3);
27-
expect(complexNumber4.imaginary).toBe(2 + 8);
26+
expect(complexNumber4.re).toBe(1 + 3);
27+
expect(complexNumber4.im).toBe(2 + 8);
2828
});
2929

3030
it('should add complex and natural numbers', () => {
31-
const complexNumber = new ComplexNumber({ real: 1, imaginary: 2 });
32-
const realNumber = new ComplexNumber({ real: 3 });
31+
const complexNumber = new ComplexNumber({ re: 1, im: 2 });
32+
const realNumber = new ComplexNumber({ re: 3 });
3333

3434
const complexNumber3 = complexNumber.add(realNumber);
3535
const complexNumber4 = realNumber.add(complexNumber);
3636

37-
expect(complexNumber3.real).toBe(1 + 3);
38-
expect(complexNumber3.imaginary).toBe(2);
37+
expect(complexNumber3.re).toBe(1 + 3);
38+
expect(complexNumber3.im).toBe(2);
3939

40-
expect(complexNumber4.real).toBe(1 + 3);
41-
expect(complexNumber4.imaginary).toBe(2);
40+
expect(complexNumber4.re).toBe(1 + 3);
41+
expect(complexNumber4.im).toBe(2);
4242
});
4343

4444
it('should subtract complex numbers', () => {
45-
const complexNumber1 = new ComplexNumber({ real: 1, imaginary: 2 });
46-
const complexNumber2 = new ComplexNumber({ real: 3, imaginary: 8 });
45+
const complexNumber1 = new ComplexNumber({ re: 1, im: 2 });
46+
const complexNumber2 = new ComplexNumber({ re: 3, im: 8 });
4747

4848
const complexNumber3 = complexNumber1.subtract(complexNumber2);
4949
const complexNumber4 = complexNumber2.subtract(complexNumber1);
5050

51-
expect(complexNumber3.real).toBe(1 - 3);
52-
expect(complexNumber3.imaginary).toBe(2 - 8);
51+
expect(complexNumber3.re).toBe(1 - 3);
52+
expect(complexNumber3.im).toBe(2 - 8);
5353

54-
expect(complexNumber4.real).toBe(3 - 1);
55-
expect(complexNumber4.imaginary).toBe(8 - 2);
54+
expect(complexNumber4.re).toBe(3 - 1);
55+
expect(complexNumber4.im).toBe(8 - 2);
5656
});
5757

5858
it('should subtract complex and natural numbers', () => {
59-
const complexNumber = new ComplexNumber({ real: 1, imaginary: 2 });
60-
const realNumber = new ComplexNumber({ real: 3 });
59+
const complexNumber = new ComplexNumber({ re: 1, im: 2 });
60+
const realNumber = new ComplexNumber({ re: 3 });
6161

6262
const complexNumber3 = complexNumber.subtract(realNumber);
6363
const complexNumber4 = realNumber.subtract(complexNumber);
6464

65-
expect(complexNumber3.real).toBe(1 - 3);
66-
expect(complexNumber3.imaginary).toBe(2);
65+
expect(complexNumber3.re).toBe(1 - 3);
66+
expect(complexNumber3.im).toBe(2);
6767

68-
expect(complexNumber4.real).toBe(3 - 1);
69-
expect(complexNumber4.imaginary).toBe(-2);
68+
expect(complexNumber4.re).toBe(3 - 1);
69+
expect(complexNumber4.im).toBe(-2);
7070
});
7171

7272
it('should multiply complex numbers', () => {
73-
const complexNumber1 = new ComplexNumber({ real: 3, imaginary: 2 });
74-
const complexNumber2 = new ComplexNumber({ real: 1, imaginary: 7 });
73+
const complexNumber1 = new ComplexNumber({ re: 3, im: 2 });
74+
const complexNumber2 = new ComplexNumber({ re: 1, im: 7 });
7575

7676
const complexNumber3 = complexNumber1.multiply(complexNumber2);
7777
const complexNumber4 = complexNumber2.multiply(complexNumber1);
7878

79-
expect(complexNumber3.real).toBe(-11);
80-
expect(complexNumber3.imaginary).toBe(23);
79+
expect(complexNumber3.re).toBe(-11);
80+
expect(complexNumber3.im).toBe(23);
8181

82-
expect(complexNumber4.real).toBe(-11);
83-
expect(complexNumber4.imaginary).toBe(23);
82+
expect(complexNumber4.re).toBe(-11);
83+
expect(complexNumber4.im).toBe(23);
8484
});
8585

8686
it('should multiply complex numbers by themselves', () => {
87-
const complexNumber = new ComplexNumber({ real: 1, imaginary: 1 });
87+
const complexNumber = new ComplexNumber({ re: 1, im: 1 });
8888

8989
const result = complexNumber.multiply(complexNumber);
9090

91-
expect(result.real).toBe(0);
92-
expect(result.imaginary).toBe(2);
91+
expect(result.re).toBe(0);
92+
expect(result.im).toBe(2);
9393
});
9494

9595
it('should calculate i in power of two', () => {
96-
const complexNumber = new ComplexNumber({ real: 0, imaginary: 1 });
96+
const complexNumber = new ComplexNumber({ re: 0, im: 1 });
9797

9898
const result = complexNumber.multiply(complexNumber);
9999

100-
expect(result.real).toBe(-1);
101-
expect(result.imaginary).toBe(0);
100+
expect(result.re).toBe(-1);
101+
expect(result.im).toBe(0);
102102
});
103103

104104
it('should divide complex numbers', () => {
105-
const complexNumber1 = new ComplexNumber({ real: 2, imaginary: 3 });
106-
const complexNumber2 = new ComplexNumber({ real: 4, imaginary: -5 });
105+
const complexNumber1 = new ComplexNumber({ re: 2, im: 3 });
106+
const complexNumber2 = new ComplexNumber({ re: 4, im: -5 });
107107

108108
const complexNumber3 = complexNumber1.divide(complexNumber2);
109109

110-
expect(complexNumber3.real).toBe(-7 / 41);
111-
expect(complexNumber3.imaginary).toBe(22 / 41);
110+
expect(complexNumber3.re).toBe(-7 / 41);
111+
expect(complexNumber3.im).toBe(22 / 41);
112112
});
113113
});

0 commit comments

Comments
 (0)