aboutsummaryrefslogtreecommitdiff
path: root/node_modules/pretty-format/perf/test.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/pretty-format/perf/test.js
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
node_modules
Diffstat (limited to 'node_modules/pretty-format/perf/test.js')
-rw-r--r--node_modules/pretty-format/perf/test.js215
1 files changed, 0 insertions, 215 deletions
diff --git a/node_modules/pretty-format/perf/test.js b/node_modules/pretty-format/perf/test.js
deleted file mode 100644
index 3edd40f62..000000000
--- a/node_modules/pretty-format/perf/test.js
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-'use strict';
-
-const prettyFormat = require('../build');
-const util = require('util');
-const chalk = require('chalk');
-const leftPad = require('left-pad');
-const worldGeoJson = require('./world.geo.json');
-const React = require('react');
-const ReactTestRenderer = require('react-test-renderer');
-const ReactTestComponent = require('../build/plugins/ReactTestComponent');
-
-const NANOSECONDS = 1000000000;
-let TIMES_TO_RUN = 100000;
-
-function testCase(name, fn) {
- let result, error, time, total;
-
- try {
- result = fn();
- } catch (err) {
- error = err;
- }
-
- if (!error) {
- const start = process.hrtime();
-
- for (let i = 0; i < TIMES_TO_RUN; i++) {
- fn();
- }
-
- const diff = process.hrtime(start);
-
- total = diff[0] * 1e9 + diff[1];
- time = Math.round(total / TIMES_TO_RUN);
- }
-
- return {
- error,
- name,
- result,
- time,
- total,
- };
-}
-
-function test(name, value, ignoreResult, prettyFormatOpts) {
- const formatted = testCase(
- 'prettyFormat() ',
- () => prettyFormat(value, prettyFormatOpts)
- );
-
- const inspected = testCase('util.inspect() ', () => {
- return util.inspect(value, {
- depth: null,
- showHidden: true,
- });
- });
-
- const stringified = testCase('JSON.stringify()', () => {
- return JSON.stringify(value, null, ' ');
- });
-
- const results = [formatted, inspected, stringified].sort((a, b) => {
- return a.time - b.time;
- });
-
- const winner = results[0];
-
- results.forEach((item, index) => {
- item.isWinner = index === 0;
- item.isLoser = index === results.length - 1;
- });
-
- function log(current) {
- let message = current.name;
-
- if (current.time) {
- message += ' - ' + leftPad(current.time, 6) + 'ns';
- }
- if (current.total) {
- message +=
- ' - ' + (current.total / NANOSECONDS) + 's total (' +
- TIMES_TO_RUN + ' runs)';
- }
- if (current.error) {
- message += ' - Error: ' + current.error.message;
- }
-
- if (!ignoreResult && current.result) {
- message += ' - ' + JSON.stringify(current.result);
- }
-
- message = ' ' + message + ' ';
-
- if (current.error) {
- message = chalk.dim(message);
- }
-
- const diff = (current.time - winner.time);
-
- if (diff > (winner.time * 0.85)) {
- message = chalk.bgRed.black(message);
- } else if (diff > (winner.time * 0.65)) {
- message = chalk.bgYellow.black(message);
- } else if (!current.error) {
- message = chalk.bgGreen.black(message);
- } else {
- message = chalk.dim(message);
- }
-
- console.log(' ' + message);
- }
-
- console.log(name + ': ');
- results.forEach(log);
- console.log();
-}
-
-function returnArguments() {
- return arguments;
-}
-
-test('empty arguments', returnArguments());
-test('arguments', returnArguments(1, 2, 3));
-test('an empty array', []);
-test('an array with items', [1, 2, 3]);
-test('a typed array', new Uint32Array(3));
-test('an array buffer', new ArrayBuffer(3));
-test('a nested array', [[1, 2, 3]]);
-test('true', true);
-test('false', false);
-test('an error', new Error());
-test('a typed error with a message', new TypeError('message'));
-/* eslint-disable no-new-func */
-test('a function constructor', new Function());
-/* eslint-enable no-new-func */
-test('an anonymous function', () => {});
-function named() {}
-test('a named function', named);
-test('Infinity', Infinity);
-test('-Infinity', -Infinity);
-test('an empty map', new Map());
-const mapWithValues = new Map();
-const mapWithNonStringKeys = new Map();
-mapWithValues.set('prop1', 'value1');
-mapWithValues.set('prop2', 'value2');
-mapWithNonStringKeys.set({prop: 'value'}, {prop: 'value'});
-test('a map with values', mapWithValues);
-test('a map with non-string keys', mapWithNonStringKeys);
-test('NaN', NaN);
-test('null', null);
-test('a number', 123);
-test('a date', new Date(10e11));
-test('an empty object', {});
-test('an object with properties', {prop1: 'value1', prop2: 'value2'});
-const objectWithPropsAndSymbols = {prop: 'value1'};
-objectWithPropsAndSymbols[Symbol('symbol1')] = 'value2';
-objectWithPropsAndSymbols[Symbol('symbol2')] = 'value3';
-test('an object with properties and symbols', objectWithPropsAndSymbols);
-test('an object with sorted properties', {a: 2, b: 1});
-test('regular expressions from constructors', new RegExp('regexp'));
-test('regular expressions from literals', /regexp/ig);
-test('an empty set', new Set());
-const setWithValues = new Set();
-setWithValues.add('value1');
-setWithValues.add('value2');
-test('a set with values', setWithValues);
-test('a string', 'string');
-test('a symbol', Symbol('symbol'));
-test('undefined', undefined);
-test('a WeakMap', new WeakMap());
-test('a WeakSet', new WeakSet());
-test('deeply nested objects', {prop: {prop: {prop: 'value'}}});
-const circularReferences = {};
-circularReferences.prop = circularReferences;
-test('circular references', circularReferences);
-const parallelReferencesInner = {};
-const parallelReferences = {
- prop1: parallelReferencesInner,
- prop2: parallelReferencesInner,
-};
-test('parallel references', parallelReferences);
-test('able to customize indent', {prop: 'value'});
-const bigObj = {};
-for (let i = 0; i < 50; i++) {
- bigObj[i] = i;
-}
-test('big object', bigObj);
-
-const element = React.createElement(
- 'div',
- {onClick: () => {}, prop: {a: 1, b: 2}},
- React.createElement('div', {prop: {a: 1, b: 2}}),
- React.createElement('div'),
- React.createElement('div', {prop: {a: 1, b: 2}},
- React.createElement('div', null,
- React.createElement('div')
- )
- )
-);
-
-test('react', ReactTestRenderer.create(element).toJSON(), false, {
- plugins: [ReactTestComponent],
-});
-
-TIMES_TO_RUN = 100;
-test('massive', worldGeoJson, true);