Skip to content

Commit 42cfc67

Browse files
committed
🦄
0 parents  commit 42cfc67

File tree

17 files changed

+566
-0
lines changed

17 files changed

+566
-0
lines changed

.babelrc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"presets": ["env"],
3+
"plugins": [
4+
"transform-minify-booleans",
5+
"minify-dead-code-elimination",
6+
"minify-flip-comparisons",
7+
"minify-guarded-expressions",
8+
"transform-merge-sibling-variables",
9+
"minify-simplify"
10+
],
11+
"comments": true
12+
}

.editorconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
end_of_line = crlf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
# 4 space indentation
15+
[**.{json, htaccess}]
16+
indent_style = space
17+
indent_size = 4

.eslintrc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"root": true,
3+
"env": {
4+
"commonjs": true,
5+
"jest": true,
6+
"node": true,
7+
"es6": true
8+
},
9+
"parser": "babel-eslint",
10+
"parserOptions": {
11+
"sourceType": "module"
12+
},
13+
"extends": "eslint:recommended",
14+
"rules": {
15+
"no-case-declarations": "off",
16+
"no-console": ["warn"]
17+
}
18+
}

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Global
2+
*.map
3+
4+
logs
5+
*.log
6+
npm-debug.log*
7+
node_modules/
8+
build/

.npmignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.vscode
2+
src
3+
.eslintrc
4+
.babelrc
5+
.travis.yml
6+
.editorconfig
7+
.npmrc
8+
.gitignore
9+
__tests__

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package-lock=false

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
language: node_js
2+
node_js:
3+
- '8'
4+
- '6'

__tests__/arrays.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import reverse from '../build/index'
2+
3+
describe('array reverse', () => {
4+
5+
test('reverse an array of strings', () => {
6+
const arr = ['I', 'would', 'love', 'to', 'have', 'some fun']
7+
const reversedArr = reverse(arr)
8+
9+
expect(reversedArr).not.toEqual(arr)
10+
// expect the original array to still retain its items
11+
expect(reverse(reversedArr)).toEqual(arr)
12+
})
13+
14+
test('reverse an array of numbers', () => {
15+
const arr = [1, 2, 3, 4, 5, 1000]
16+
const reversedArr = reverse(arr)
17+
18+
expect(reversedArr).toEqual([1000, 5, 4, 3, 2, 1])
19+
// expect the original array to still retain its items
20+
expect(reverse(reversedArr)).toEqual(arr)
21+
})
22+
23+
test('reverse an array with several types of elements', () => {
24+
const arr = [1, 2, 'one', 'two', true, false]
25+
const reversedArr = reverse(arr)
26+
27+
expect(reversedArr).toEqual([false, true, 'two', 'one', 2, 1])
28+
// expect the original array to still retain its items
29+
expect(reverse(reversedArr)).toEqual(arr)
30+
})
31+
32+
})

__tests__/booleans.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import reverse from '../build/index'
2+
3+
describe('boolean reverse', () => {
4+
test('should reverse `false` and return `true`', () => {
5+
const boolean = false
6+
const boolean2 = !1
7+
expect(reverse(boolean)).toBeTruthy()
8+
expect(reverse(boolean2)).toBeTruthy()
9+
})
10+
11+
test('should reverse `true` and return `false`', () => {
12+
const boolean = true
13+
const boolean2 = !0
14+
expect(reverse(boolean)).toBeFalsy()
15+
expect(reverse(boolean2)).toBeFalsy()
16+
})
17+
})

__tests__/numbers.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import reverse from '../build/index'
2+
3+
describe('number reverse', () => {
4+
test('reverse a number without specifying options', () => {
5+
const number = 12345
6+
expect(reverse(number)).toEqual(54321)
7+
expect(reverse(number)).not.toBeUndefined()
8+
})
9+
10+
test('reverse a negative number without specifying options', () => {
11+
const number = -12345
12+
expect(reverse(number)).toEqual(-54321)
13+
expect(reverse(number)).not.toBeUndefined()
14+
})
15+
16+
test('change the indexes of a positive number', () => {
17+
const number = 54321
18+
expect(reverse(number, {invert: 'index'}))
19+
.toEqual(12345)
20+
})
21+
22+
test('change the indexes of a negative number', () => {
23+
const number = -54321
24+
expect(reverse(number, {invert: 'index'}))
25+
.toEqual(-12345)
26+
})
27+
28+
test('turn a positive number to negative', () => {
29+
const number = 1234
30+
expect(reverse(number, {invert: 'sign'}))
31+
.toEqual(-1234)
32+
})
33+
34+
test('turn a negative number to positive', () => {
35+
const number = -1234
36+
const reversed = reverse(number, {invert: 'sign'})
37+
expect(reversed).toEqual(1234)
38+
})
39+
})

0 commit comments

Comments
 (0)