Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{"env": {
"development": {
"plugins": ["transform-es2015-modules-commonjs"]
},
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}}
13,557 changes: 13,557 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@
"stylelint-config-standard": "^18.2.0",
"webpack": "^4.22.0",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.9"
"webpack-dev-server": "^3.1.9",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-preset-env": "^1.7.0"
}
}
22 changes: 21 additions & 1 deletion src/dragon-curve/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
/* eslint-disable-next-line */
export const dragonCurve = n => {
// logic...

const stepOfDragon = path => {
return parseInt('1'.concat(
path
.toString()
.split('')
.map( (el, idx) => el.concat((idx % 2).toString()) )
.join('')
));
};

let idx = 1;
let path = 1;

while ( idx < n) {
path = stepOfDragon(path);
idx++;
}

return path;
};
10 changes: 8 additions & 2 deletions src/dragon-curve/index.spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import {dragonCurve} from './index'
import {dragonCurve} from './index';

describe('dragonCurve::', () => {
// need to implement

it('Should rotate matrix', () => {
expect(dragonCurve(1)).toEqual(1);
expect(dragonCurve(2)).toEqual(110);
expect(dragonCurve(3)).toEqual(1101100);
expect(dragonCurve(4)).toEqual(110110011100100);
});
});
3 changes: 2 additions & 1 deletion src/dragon-curve/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ dragonCurve(1); // 1
dragonCurve(2); // 110
dragonCurve(3); // 1101100
dragonCurve(4); // 110110011100100
dragonCurve(n); // ...
dragonCurve(n); // 110110011100100
```

6 changes: 5 additions & 1 deletion src/rotate-matrix/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
/* eslint-disable-next-line */
export const rotateMatrix = arr => {
// logic...
return arr[0]
.map( (el, idx) => {
return arr.map(el => el[idx]);
});
};

29 changes: 27 additions & 2 deletions src/rotate-matrix/index.spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
import {rotateMatrix} from './index'
import {rotateMatrix} from './index';

describe('rotateMatrix::', () => {
// need to implement
const arr1 = [
[1, 2],
[3, 4]
];
const arr2 = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
const arr1r = [
[1,3],
[2,4]
];
const arr2r = [
[1,4,7],
[2,5,8],
[3,6,9]
];

it('Should rotate matrix', () => {
expect(rotateMatrix(arr1)).toEqual(arr1r);
expect(rotateMatrix(arr2)).toEqual(arr2r);
});

});