示例#1
0
    /// <summary>
    /// returns a decimal value
    /// </summary>
    /// <param name="precision"></param>
    /// <param name="scale"></param>
    /// <returns></returns>
    /// <exception cref="Exception"></exception>
    public static decimal GenerateDecimal(int precision, int scale)
    {
        if (precision == 0)
        {
            throw new Exception("precision must be greater than zero.");
        }
        if (precision == scale)
        {
            throw new Exception("precision and scale must have different values");
        }
        if (precision < scale)
        {
            throw new Exception("precision cannot be less than scale");
        }

        int randPrecision = NumericGenerator.GenerateInteger(1, (precision - scale) + 1);
        var a             = StringGenerator.GetNumeric(randPrecision);

        int randScale = NumericGenerator.GenerateInteger(1, scale + 1);
        var b         = StringGenerator.GetNumeric(randScale);

        decimal result = decimal.Parse($"{a}{culture.NumberDecimalSeparator}{b}");

        return(result);
    }
示例#2
0
 public void GenerateShort_SUCCESS()
 {
     for (int i = 0; i < 5000; i++)
     {
         var n = NumericGenerator.GenerateShort();
         Assert.True(n >= short.MinValue && n <= short.MaxValue);
     }
 }
示例#3
0
    public void GenerateDecimal_FixedSize_SUCCESS()
    {
        var lst = new List <decimal>();

        for (int i = 0; i < 1000; i++)
        {
            lst.Add(NumericGenerator.GenerateDecimal(8, 2));
        }
    }
示例#4
0
        public static void TestDatabaseMultiThread()
        {
            var provider  = new DatabaseProvider(_connectionString, 1);
            var generator = new NumericGenerator();

            var sequence = new Sequence.Sequence(generator, provider);

            ShowSequenceMultiThread(sequence);
        }
示例#5
0
        public static void TestMultiThread()
        {
            var generator = new NumericGenerator();
            var provider  = new InMemoryProvider();

            var sequence = new Sequence.Sequence(generator, provider);

            ShowSequenceMultiThread(sequence);
        }
示例#6
0
        public static void TestCyclic()
        {
            var generator = new NumericGenerator();
            var provider  = new InMemoryProvider();

            var sequence = new CyclicSequence(generator, provider);

            ShowSequence(sequence);
        }
示例#7
0
 public void ApplyTo(Fixture generator, StringGenerator stringGenerator, NumericGenerator numericGenerator)
 {
     generator.Register(() => _types.Next());
     generator.Register(() => _methodList.Next());
     generator.Register(() => new Exception(stringGenerator.String(), new Exception(stringGenerator.String())));
     generator.Register(
         () =>
         new IPAddress(new[]
                       { numericGenerator.Octet(), numericGenerator.Octet(), numericGenerator.Octet(), numericGenerator.Octet() }));
     generator.Customize(new MultipleCustomization());
 }
示例#8
0
        /**
         * Creates an instance of DefaultUniqueTicketIdGenerator with default values
         * including a {@link DefaultLongNumericGenerator} with a starting value of
         * 1.
         *
         * @param suffix the value to append at the end of the unique id to ensure
         * uniqueness across JVMs.
         */
        public DefaultUniqueTicketIdGenerator(string suffix)
        {
            this.numericGenerator      = new DefaultLongNumericGenerator(1);
            this.randomStringGenerator = new DefaultRandomStringGenerator();

            if (suffix != null)
            {
                this.suffix = "-" + suffix;
            }
            else
            {
                this.suffix = null;
            }
        }
示例#9
0
        public static AllGenerator Create()
        {
            var emptyCollectionFixture = new Fixture
            {
                RepeatCount = 0
            };
            var methodProxyCalls     = new GenericMethodProxyCalls();
            var fixtureConfiguration = new AutoFixtureConfiguration();
            var fixture                     = fixtureConfiguration.CreateUnconfiguredInstance();
            var collectionGenerator         = new CollectionGenerator(methodProxyCalls);
            var valueGenerator              = new ValueGenerator(fixture);
            var charGenerator               = new CharGenerator(valueGenerator);
            var specificTypeObjectGenerator = new SpecificTypeObjectGenerator(valueGenerator);
            var emptyCollectionGenerator    = new EmptyCollectionGenerator(
                emptyCollectionFixture,
                methodProxyCalls);
            var proxyGenerator      = new ProxyGenerator();
            var proxyBasedGenerator = new ProxyBasedGenerator(
                emptyCollectionFixture,
                methodProxyCalls,
                emptyCollectionGenerator, //TODO make separate chain for this
                proxyGenerator,
                new FakeChainFactory(
                    new CachedReturnValueGeneration(new PerMethodCache <object>()),
                    GlobalNestingLimit.Of(5),
                    proxyGenerator, //TODO get rid of this dependency - its runtime-circular
                    valueGenerator,
                    collectionGenerator));
            var stringGenerator = new StringGenerator(
                charGenerator,
                valueGenerator,
                specificTypeObjectGenerator);
            var numericGenerator = new NumericGenerator(
                valueGenerator);
            var allGenerator = new AllGenerator(valueGenerator,
                                                charGenerator,
                                                specificTypeObjectGenerator,
                                                stringGenerator,
                                                emptyCollectionGenerator,
                                                numericGenerator,
                                                proxyBasedGenerator,
                                                collectionGenerator,
                                                new InvokableGenerator());

            fixtureConfiguration.ApplyTo(fixture, stringGenerator, numericGenerator);
            return(allGenerator);
        }
 /// <summary>
 /// Generates a random boolean value
 /// </summary>
 /// <returns>True or False</returns>
 public static bool GetRandom()
 {
     return(NumericGenerator.GenerateInteger(0, 1) == 1);
 }
        /**
     * Creates an instance of DefaultUniqueTicketIdGenerator with default values
     * including a {@link DefaultLongNumericGenerator} with a starting value of
     * 1.
     * 
     * @param suffix the value to append at the end of the unique id to ensure
     * uniqueness across JVMs.
     */
        public DefaultUniqueTicketIdGenerator(string suffix)
        {
            this.numericGenerator = new DefaultLongNumericGenerator(1);
            this.randomStringGenerator = new DefaultRandomStringGenerator();

            if (suffix != null)
            {
                this.suffix = "-" + suffix;
            }
            else
            {
                this.suffix = null;
            }
        }