• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

JaCraig / Mirage / 19348840851

13 Nov 2025 11:16PM UTC coverage: 88.835% (+0.6%) from 88.272%
19348840851

push

github

web-flow
Merge pull request #365 from JaCraig/dependabot/nuget/dot-config/dependencies-4d55452e5e

chore: Bump the dependencies group with 2 updates

569 of 860 branches covered (66.16%)

Branch coverage included in aggregate %.

3847 of 4111 relevant lines covered (93.58%)

14713.46 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

63.64
/Mirage/Generators/Default/Nullable/NullableLongGenerator.cs
1
/*
2
Copyright 2017 James Craig
3

4
Licensed under the Apache License, Version 2.0 (the "License");
5
you may not use this file except in compliance with the License.
6
You may obtain a copy of the License at
7

8
    http://www.apache.org/licenses/LICENSE-2.0
9

10
Unless required by applicable law or agreed to in writing, software
11
distributed under the License is distributed on an "AS IS" BASIS,
12
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
See the License for the specific language governing permissions and
14
limitations under the License.
15
*/
16

17
using Mirage.Generators.BaseClasses;
18
using Mirage.Interfaces;
19
using System;
20
using System.Collections.Generic;
21

22
namespace Mirage.Generators.Default.Nullable
23
{
24
    /// <summary>
25
    /// long generator
26
    /// </summary>
27
    /// <seealso cref="GeneratorAttributeBase"/>
28
    /// <seealso cref="IGenerator{Int}"/>
29
    public sealed class NullableLongGeneratorAttribute : GeneratorAttributeBase, IGenerator<long?>
30
    {
31
        /// <summary>
32
        /// Initializes a new instance of the <see cref="NullableLongGeneratorAttribute"/> class.
33
        /// </summary>
34
        /// <param name="min">The minimum.</param>
35
        /// <param name="max">The maximum.</param>
36
        public NullableLongGeneratorAttribute(long min, long max)
37
            : base(min == 0 && max == 0 ? long.MinValue : min, min == 0 && max == 0 ? long.MaxValue : max)
5!
38
        {
39
        }
5✔
40

41
        /// <summary>
42
        /// Initializes a new instance of the <see cref="NullableLongGeneratorAttribute"/> class.
43
        /// </summary>
44
        public NullableLongGeneratorAttribute()
45
            : this(long.MinValue, long.MaxValue)
5✔
46
        {
47
        }
5✔
48

49
        /// <summary>
50
        /// Gets a value indicating whether this <see cref="IGenerator"/> is a default one.
51
        /// </summary>
52
        /// <value><c>true</c> if default; otherwise, <c>false</c>.</value>
53
        public override bool Default => true;
2✔
54

55
        /// <summary>
56
        /// Gets the type generated.
57
        /// </summary>
58
        /// <value>The type generated.</value>
59
        public override Type TypeGenerated => typeof(long?);
3✔
60

61
        /// <summary>
62
        /// Generates a random value of the specified type
63
        /// </summary>
64
        /// <param name="rand">Random number generator that it can use</param>
65
        /// <returns>A randomly generated object of the specified type</returns>
66
        public long? Next(Random rand)
67
        {
68
            return !(rand?.Next<bool>() ?? false) ? null : (long?)rand.Next<long>();
5,613✔
69
        }
70

71
        /// <summary>
72
        /// Generates a random value of the specified type
73
        /// </summary>
74
        /// <param name="rand">Random number generator that it can use</param>
75
        /// <param name="min">Minimum value (inclusive)</param>
76
        /// <param name="max">Maximum value (inclusive)</param>
77
        /// <returns>A randomly generated object of the specified type</returns>
78
        public long? Next(Random rand, long? min, long? max)
79
        {
80
            if (!(rand?.Next<bool>() ?? false))
2!
81
                return null;
2✔
82
            min ??= long.MinValue;
×
83
            max ??= long.MaxValue;
×
84
            return rand.Next(min.Value, max.Value);
×
85
        }
86

87
        /// <summary>
88
        /// Generates next object
89
        /// </summary>
90
        /// <param name="rand">The rand.</param>
91
        /// <param name="previouslySeen">The previously seen.</param>
92
        /// <returns>The next object</returns>
93
        public override object? NextObj(Random rand, List<object> previouslySeen)
94
        {
95
            return Next(rand);
5,509✔
96
        }
97
    }
98
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc