Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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
Lines changed: 16 additions & 16 deletions
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
}

‎src/algorithms/math/complex-number/__test__/ComplexNumber.test.js‎

Lines changed: 45 additions & 45 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /