func atLeastBy(random *rand.Rand, i int) int {
	min := i * RANDOM_MULTIPLIER
	if TEST_NIGHTLY {
		min = 2 * min
	}
	max := min + min/2
	return NextInt(random, min, max)
}
L643
/*
Returns a number of at least i

The actual number returned will be influenced by whether TEST_NIGHTLY
is active and RANDOM_MULTIPLIER, but also with some random fudge.
package util
import (
	"errors"
	"math"
	"math/rand"
	"os"
	"strconv"
	"time"
)
const (
	SYSPROP_NIGHTLY = "tests_nightly"
)
var VERBOSE = ("true" == or(os.Getenv("tests_verbose"), "false"))
var INFOSTREAM = ("true" == or(os.Getenv("tests_infostream"), strconv.FormatBool(VERBOSE)))
var RANDOM_MULTIPLIER = func() int {
	n, err := strconv.Atoi(or(os.Getenv("tests_multiplier"), "1"))
	if err != nil {
		panic(err)
	}
	return n
}()
var (
	TEST_CODEC = or(os.Getenv("tests_codec"), "Lucene49")  
	TEST_POSTINGSFORMAT = or(os.Getenv("tests_postingsformat"), "random")
	TEST_DOCVALUESFORMAT = or(os.Getenv("tests_docvaluesformat"), "random")
	TEST_DIRECTORY = or(os.Getenv("tests_directory"), "random")
)
var TEST_NIGHTLY = ("true" == or(os.Getenv(SYSPROP_NIGHTLY), "false"))
func or(a, b string) string {
	if len(a) > 0 {
		return a
	}
	return b
}
var PREFLEX_IMPERSONATION_IS_ACTIVE bool
var OLD_FORMAT_IMPERSONATION_IS_ACTIVE = false
var SuiteFailureMarker = &TestRuleMarkFailure{}
func Random() *rand.Rand {
	return rand.New(rand.NewSource(time.Now().UTC().UnixNano()))
}