2017-02-22 00:59:19 +03:00
|
|
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
|
|
|
2018-11-25 11:21:14 +03:00
|
|
|
exports[`array_lib.js 1`] = `
|
|
|
|
====================================options=====================================
|
|
|
|
parsers: ["flow"]
|
|
|
|
printWidth: 80
|
|
|
|
| printWidth
|
|
|
|
=====================================input======================================
|
2017-04-12 23:41:51 +03:00
|
|
|
/* @flow */
|
2016-12-23 22:31:38 +03:00
|
|
|
function foo(x:string) { }
|
|
|
|
|
|
|
|
var a = [0];
|
2017-04-12 23:41:51 +03:00
|
|
|
var b = a.map(function (x) { foo(x); return "" + x; });
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
var c: number = a[0];
|
|
|
|
var d: number = b[0];
|
|
|
|
|
|
|
|
var e:Array<string> = a.reverse();
|
|
|
|
|
2017-04-12 23:41:51 +03:00
|
|
|
var f = [""];
|
2016-12-23 22:31:38 +03:00
|
|
|
var g:number = f.map(function () { return 0; })[0];
|
|
|
|
|
|
|
|
var h: Array<number> = [1,2,3];
|
2017-02-22 00:59:19 +03:00
|
|
|
var i: Array<string> = ['a', 'b', 'c'];
|
2016-12-23 22:31:38 +03:00
|
|
|
var j: Array<number | string> = h.concat(i);
|
|
|
|
var k: Array<number> = h.concat(h);
|
|
|
|
var l: Array<number> = h.concat(1,2,3);
|
2017-02-22 00:59:19 +03:00
|
|
|
var m: Array<number | string> = h.concat('a', 'b', 'c');
|
|
|
|
var n: Array<number> = h.concat('a', 'b', 'c'); // Error
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
function reduce_test() {
|
|
|
|
/* Adapted from the following source:
|
|
|
|
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
|
|
|
|
*/
|
|
|
|
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
|
|
|
|
return previousValue + currentValue + array[index];
|
|
|
|
});
|
|
|
|
|
|
|
|
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
|
|
|
|
return previousValue + currentValue + array[index];
|
|
|
|
}, 10);
|
|
|
|
|
|
|
|
var total = [0, 1, 2, 3].reduce(function(a, b) {
|
|
|
|
return a + b;
|
|
|
|
});
|
|
|
|
|
|
|
|
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
|
|
|
|
return a.concat(b);
|
|
|
|
});
|
|
|
|
|
|
|
|
/* Added later, because the above is insufficient */
|
|
|
|
|
|
|
|
// acc is element type of array when no init is provided
|
2017-04-12 23:41:51 +03:00
|
|
|
[""].reduce((acc, str) => acc * str.length); // error, string ~> number
|
|
|
|
[""].reduceRight((acc, str) => acc * str.length); // error, string ~> number
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function from_test() {
|
|
|
|
var a: Array<string> = Array.from([1, 2, 3], function(val, index) {
|
2017-04-12 23:41:51 +03:00
|
|
|
return index % 2 ? "foo" : String(val);
|
2016-12-23 22:31:38 +03:00
|
|
|
});
|
|
|
|
var b: Array<string> = Array.from([1, 2, 3], function(val) {
|
|
|
|
return String(val);
|
|
|
|
});
|
|
|
|
}
|
2018-11-25 11:21:14 +03:00
|
|
|
|
|
|
|
=====================================output=====================================
|
2016-12-27 21:29:31 +03:00
|
|
|
/* @flow */
|
2017-01-24 20:37:01 +03:00
|
|
|
function foo(x: string) {}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-24 22:38:12 +03:00
|
|
|
var a = [0];
|
2017-01-04 23:24:10 +03:00
|
|
|
var b = a.map(function(x) {
|
|
|
|
foo(x);
|
2017-04-12 23:41:51 +03:00
|
|
|
return "" + x;
|
2017-01-04 23:24:10 +03:00
|
|
|
});
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-28 05:40:04 +03:00
|
|
|
var c: number = a[0];
|
|
|
|
var d: number = b[0];
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
var e: Array<string> = a.reverse();
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-04-12 23:41:51 +03:00
|
|
|
var f = [""];
|
2017-01-04 23:24:10 +03:00
|
|
|
var g: number = f.map(function() {
|
|
|
|
return 0;
|
|
|
|
})[0];
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-24 22:38:12 +03:00
|
|
|
var h: Array<number> = [1, 2, 3];
|
2017-04-12 23:41:51 +03:00
|
|
|
var i: Array<string> = ["a", "b", "c"];
|
2016-12-27 21:29:31 +03:00
|
|
|
var j: Array<number | string> = h.concat(i);
|
|
|
|
var k: Array<number> = h.concat(h);
|
2016-12-28 05:40:04 +03:00
|
|
|
var l: Array<number> = h.concat(1, 2, 3);
|
2017-04-12 23:41:51 +03:00
|
|
|
var m: Array<number | string> = h.concat("a", "b", "c");
|
|
|
|
var n: Array<number> = h.concat("a", "b", "c"); // Error
|
2017-01-31 19:27:44 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
function reduce_test() {
|
2017-01-10 05:49:06 +03:00
|
|
|
/* Adapted from the following source:
|
|
|
|
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
|
|
|
|
*/
|
2017-01-24 22:38:12 +03:00
|
|
|
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
|
2017-01-04 23:24:10 +03:00
|
|
|
return previousValue + currentValue + array[index];
|
|
|
|
});
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-03-18 21:20:07 +03:00
|
|
|
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
|
|
|
|
return previousValue + currentValue + array[index];
|
|
|
|
}, 10);
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-24 22:38:12 +03:00
|
|
|
var total = [0, 1, 2, 3].reduce(function(a, b) {
|
2017-01-04 23:24:10 +03:00
|
|
|
return a + b;
|
|
|
|
});
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2019-10-25 19:12:08 +03:00
|
|
|
var flattened = [
|
|
|
|
[0, 1],
|
|
|
|
[2, 3],
|
|
|
|
[4, 5]
|
|
|
|
].reduce(function(a, b) {
|
2017-01-04 23:24:10 +03:00
|
|
|
return a.concat(b);
|
|
|
|
});
|
2017-01-10 05:49:06 +03:00
|
|
|
|
|
|
|
/* Added later, because the above is insufficient */
|
2017-01-27 22:05:41 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// acc is element type of array when no init is provided
|
2017-04-12 23:41:51 +03:00
|
|
|
[""].reduce((acc, str) => acc * str.length); // error, string ~> number
|
|
|
|
[""].reduceRight((acc, str) => acc * str.length); // error, string ~> number
|
2016-12-27 21:29:31 +03:00
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
function from_test() {
|
2017-01-24 22:38:12 +03:00
|
|
|
var a: Array<string> = Array.from([1, 2, 3], function(val, index) {
|
2017-04-12 23:41:51 +03:00
|
|
|
return index % 2 ? "foo" : String(val);
|
2017-01-04 23:24:10 +03:00
|
|
|
});
|
2017-01-24 22:38:12 +03:00
|
|
|
var b: Array<string> = Array.from([1, 2, 3], function(val) {
|
2017-01-04 23:24:10 +03:00
|
|
|
return String(val);
|
|
|
|
});
|
2017-01-11 18:16:38 +03:00
|
|
|
}
|
2017-04-12 23:41:51 +03:00
|
|
|
|
2018-11-25 11:21:14 +03:00
|
|
|
================================================================================
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|