text: 'use strict';
  
  Object.defineProperty(exports, '__esModule', {
    value: true
  });
  exports.test = exports.serialize = undefined;
  
  var _collections = require('../collections');
  
  /**
   * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *
   *
   */
  
  const asymmetricMatcher = Symbol.for('jest.asymmetricMatcher');
  const SPACE = ' ';
  
  const serialize = (exports.serialize = (
    val,
    config,
    indentation,
    depth,
    refs,
    printer
  ) => {
    const stringedValue = val.toString();
  
    if (
      stringedValue === 'ArrayContaining' ||
      stringedValue === 'ArrayNotContaining'
    ) {
      if (++depth > config.maxDepth) {
        return '[' + stringedValue + ']';
      }
      return (
        stringedValue +
        SPACE +
        '[' +
        (0, _collections.printListItems)(
          val.sample,
          config,
          indentation,
          depth,
          refs,
          printer
        ) +
        ']'
      );
    }
  
    if (
      stringedValue === 'ObjectContaining' ||
      stringedValue === 'ObjectNotContaining'
    ) {
      if (++depth > config.maxDepth) {
        return '[' + stringedValue + ']';
      }
      return (
        stringedValue +
        SPACE +
        '{' +
        (0, _collections.printObjectProperties)(
          val.sample,
          config,
          indentation,
          depth,
          refs,
          printer
        ) +
        '}'
      );
    }
  
    if (
      stringedValue === 'StringMatching' ||
      stringedValue === 'StringNotMatching'
    ) {
      return (
        stringedValue +
        SPACE +
        printer(val.sample, config, indentation, depth, refs)
      );
    }
  
    if (
      stringedValue === 'StringContaining' ||
      stringedValue === 'StringNotContaining'
    ) {
      return (
        stringedValue +
        SPACE +
        printer(val.sample, config, indentation, depth, refs)
      );
    }
  
    return val.toAsymmetricMatcher();
  });
  
  const test = (exports.test = val => val && val.$$typeof === asymmetricMatcher);
  
  exports.default = {serialize: serialize, test: test};
  