123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- * Copyright (C) 2008-2010, Google Inc. and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
- package org.eclipse.jgit.junit;
-
- /**
- * Toy RNG to ensure we get predictable numbers during unit tests.
- */
- public class TestRng {
- private int next;
-
- /**
- * Create a new random number generator, seeded by a string.
- *
- * @param seed
- * seed to bootstrap, usually this is the test method name.
- */
- public TestRng(String seed) {
- next = 0;
- for (int i = 0; i < seed.length(); i++)
- next = next * 11 + seed.charAt(i);
- }
-
- /**
- * Get the next {@code cnt} bytes of random data.
- *
- * @param cnt
- * number of random bytes to produce.
- * @return array of {@code cnt} randomly generated bytes.
- */
- public byte[] nextBytes(int cnt) {
- final byte[] r = new byte[cnt];
- for (int i = 0; i < cnt; i++)
- r[i] = (byte) nextInt();
- return r;
- }
-
- /**
- * Next int
- *
- * @return the next random integer.
- */
- public int nextInt() {
- next = next * 1103515245 + 12345;
- return next;
- }
- }
|