Package com.google.javascript.jscomp.fuzzing

Source Code of com.google.javascript.jscomp.fuzzing.StringNumberGenerator

/*
* Copyright 2013 The Closure Compiler Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.javascript.jscomp.fuzzing;

import com.google.common.base.Joiner;

import java.util.Random;

/**
* Generates strings and numbers to be used in, for example, string literals,
* variable names
* UNDER DEVELOPMENT. DO NOT USE!
* @author zplin@google.com (Zhongpeng Lin)
*/
public class StringNumberGenerator {
  private static final int LARGEST_NUMBER = 1000;
  private Random random;
  private int counter = 0;
  private static final String[] ADJECTIVES = {
      "Amazing",
      "Breezy",
      "Cheerful",
      "Dapper",
      "Edgy",
      "Feisty",
      "Gutsy",
      "Hardy",
      "Intrepid",
      "Jaunty",
      "Karmic",
      "Lucid",
      "Maverick",
      "Natty",
      "Oneiric",
      "Precise",
      "Quantal",
      "Raring",
      "Saucy",
      "Tranquil",
      "Ubiquitous",
      "Vigilant",
      "Wild",
      "Xenial",
      "Yelping",
      "Zealous"
      };
  private static final String[] ANIMALS = {
      "Ape",
      "Badger",
      "Chipmunk",
      "Drake",
      "Eft",
      "Fawn",
      "Gibbon",
      "Heron",
      "Ibex",
      "Jackalope",
      "Koala",
      "Lynx",
      "Meerkat",
      "Narwhal",
      "Ocelot",
      "Pangolin",
      "Quetzal",
      "Ringtail",
      "Salamander",
      "Turtle",
      "Unicorn",
      "Vixen",
      "Wolf",
      "Xerus",
      "Yeti",
      "Zebra"
      };

  public StringNumberGenerator(Random random) {
    this.random = random;
  }

  public String getString() {
    Joiner joiner = Joiner.on(' ');
    return joiner.join(getCombination());
  }

  public String getPropertyName() {
    Joiner joiner = Joiner.on("");
    String[] combination = getCombination();
    return joiner.join(combination[0].toLowerCase(), combination[1]);
  }

  public int getNextNumber() {
    return counter++;
  }

  public int getRandomNumber() {
    return random.nextInt(LARGEST_NUMBER);
  }

  private String[] getCombination() {
    String[] result = new String[2];
    result[0] = ADJECTIVES[random.nextInt(ADJECTIVES.length)];
    result[1] = ANIMALS[random.nextInt(ANIMALS.length)];
    return result;
  }
}
TOP

Related Classes of com.google.javascript.jscomp.fuzzing.StringNumberGenerator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.