Generating Random Values for Primitive Types












0














This is my first code review question in here, so kindly guide me if I need to format the question in a better way.



Task Description




Aim of the task is to create a set of methods that would allow me to
create random values for given primitive type. This would be used
later in a method that would reflect on a Complex Type (Class/Struct)
and assign random values to each of the members (Nested Properties are
also taken care of in the other method).




The code attached set of methods for creating Random Values. I was wondering if this is the best way to create a Random Value for each of the primitive type.



Code



    private static bool RandomBoolean()
{
return Convert.ToBoolean(random.Next(0, 2));
}
private static double RandomDouble(Int32 minValue=Int32.MinValue,Int32 maxValue= Int32.MaxValue)
{
return random.NextDouble() * (double)random.Next(minValue,maxValue);
}

private static char RandomChar(bool isLowerCase = true)
{
if (isLowerCase)
return (char)random.Next((int)'a', (int)'z');
else
return (char)random.Next((int)'A', (int)'A');
}
private static byte RandomByte()
{
var byteArray = new byte[1];
random.NextBytes(byteArray);
return byteArray[0];
}

private static sbyte RandomSByte(int minValue=sbyte.MinValue, int maxValue = sbyte.MaxValue)
{
return (sbyte)random.Next(minValue, maxValue);
}

private static float RandomFloat()
{
double mantissa = (random.NextDouble() * 2.0) - 1.0;
double exponent = Math.Pow(2.0, random.Next(-126, 128));
return (float)(mantissa * exponent);
}

public static int NextInt32(this Random rng)
{
int firstBits = rng.Next(0, 1 << 4) << 28;
int lastBits = rng.Next(0, 1 << 28);
return firstBits | lastBits;
}

public static decimal RandomDecimal()
{
byte scale = (byte)random.Next(29);
bool sign = random.Next(2) == 1;
return new decimal(random.NextInt32(),
random.NextInt32(),
random.NextInt32(),
sign,
scale);
}

private static short RandomInt16(int minValue = Int16.MinValue, int maxValue = Int16.MaxValue)
{
return (short)random.Next(minValue, maxValue);
}

private static int RandomInt32(int minValue = Int32.MinValue, int maxValue = Int32.MaxValue)
{
return random.Next(minValue, maxValue);
}

private static long RandomInt64(long minValue = Int32.MinValue, long maxValue = Int32.MaxValue)
{
long result = random.Next((Int32)(minValue >> 32), (Int32)(maxValue >> 32));
result = (result << 32);
result = result | (long)random.Next((Int32)minValue, (Int32)maxValue);
return result;
}


private static UInt16 RandomUInt16()
{
var byteArray = new byte[2];
random.NextBytes(byteArray);
return BitConverter.ToUInt16(byteArray, 0);
}

private static UInt32 RandomUInt32()
{
var byteArray = new byte[4];
random.NextBytes(byteArray);
return BitConverter.ToUInt32(byteArray,0);
}

private static UInt64 RandomUInt64()
{
var byteArray = new byte[8];
random.NextBytes(byteArray);
return BitConverter.ToUInt64(byteArray, 0);
}

private static string RandomString(int length = 10)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}








share







New contributor




Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    0














    This is my first code review question in here, so kindly guide me if I need to format the question in a better way.



    Task Description




    Aim of the task is to create a set of methods that would allow me to
    create random values for given primitive type. This would be used
    later in a method that would reflect on a Complex Type (Class/Struct)
    and assign random values to each of the members (Nested Properties are
    also taken care of in the other method).




    The code attached set of methods for creating Random Values. I was wondering if this is the best way to create a Random Value for each of the primitive type.



    Code



        private static bool RandomBoolean()
    {
    return Convert.ToBoolean(random.Next(0, 2));
    }
    private static double RandomDouble(Int32 minValue=Int32.MinValue,Int32 maxValue= Int32.MaxValue)
    {
    return random.NextDouble() * (double)random.Next(minValue,maxValue);
    }

    private static char RandomChar(bool isLowerCase = true)
    {
    if (isLowerCase)
    return (char)random.Next((int)'a', (int)'z');
    else
    return (char)random.Next((int)'A', (int)'A');
    }
    private static byte RandomByte()
    {
    var byteArray = new byte[1];
    random.NextBytes(byteArray);
    return byteArray[0];
    }

    private static sbyte RandomSByte(int minValue=sbyte.MinValue, int maxValue = sbyte.MaxValue)
    {
    return (sbyte)random.Next(minValue, maxValue);
    }

    private static float RandomFloat()
    {
    double mantissa = (random.NextDouble() * 2.0) - 1.0;
    double exponent = Math.Pow(2.0, random.Next(-126, 128));
    return (float)(mantissa * exponent);
    }

    public static int NextInt32(this Random rng)
    {
    int firstBits = rng.Next(0, 1 << 4) << 28;
    int lastBits = rng.Next(0, 1 << 28);
    return firstBits | lastBits;
    }

    public static decimal RandomDecimal()
    {
    byte scale = (byte)random.Next(29);
    bool sign = random.Next(2) == 1;
    return new decimal(random.NextInt32(),
    random.NextInt32(),
    random.NextInt32(),
    sign,
    scale);
    }

    private static short RandomInt16(int minValue = Int16.MinValue, int maxValue = Int16.MaxValue)
    {
    return (short)random.Next(minValue, maxValue);
    }

    private static int RandomInt32(int minValue = Int32.MinValue, int maxValue = Int32.MaxValue)
    {
    return random.Next(minValue, maxValue);
    }

    private static long RandomInt64(long minValue = Int32.MinValue, long maxValue = Int32.MaxValue)
    {
    long result = random.Next((Int32)(minValue >> 32), (Int32)(maxValue >> 32));
    result = (result << 32);
    result = result | (long)random.Next((Int32)minValue, (Int32)maxValue);
    return result;
    }


    private static UInt16 RandomUInt16()
    {
    var byteArray = new byte[2];
    random.NextBytes(byteArray);
    return BitConverter.ToUInt16(byteArray, 0);
    }

    private static UInt32 RandomUInt32()
    {
    var byteArray = new byte[4];
    random.NextBytes(byteArray);
    return BitConverter.ToUInt32(byteArray,0);
    }

    private static UInt64 RandomUInt64()
    {
    var byteArray = new byte[8];
    random.NextBytes(byteArray);
    return BitConverter.ToUInt64(byteArray, 0);
    }

    private static string RandomString(int length = 10)
    {
    const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    return new string(Enumerable.Repeat(chars, length)
    .Select(s => s[random.Next(s.Length)]).ToArray());
    }








    share







    New contributor




    Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      0












      0








      0







      This is my first code review question in here, so kindly guide me if I need to format the question in a better way.



      Task Description




      Aim of the task is to create a set of methods that would allow me to
      create random values for given primitive type. This would be used
      later in a method that would reflect on a Complex Type (Class/Struct)
      and assign random values to each of the members (Nested Properties are
      also taken care of in the other method).




      The code attached set of methods for creating Random Values. I was wondering if this is the best way to create a Random Value for each of the primitive type.



      Code



          private static bool RandomBoolean()
      {
      return Convert.ToBoolean(random.Next(0, 2));
      }
      private static double RandomDouble(Int32 minValue=Int32.MinValue,Int32 maxValue= Int32.MaxValue)
      {
      return random.NextDouble() * (double)random.Next(minValue,maxValue);
      }

      private static char RandomChar(bool isLowerCase = true)
      {
      if (isLowerCase)
      return (char)random.Next((int)'a', (int)'z');
      else
      return (char)random.Next((int)'A', (int)'A');
      }
      private static byte RandomByte()
      {
      var byteArray = new byte[1];
      random.NextBytes(byteArray);
      return byteArray[0];
      }

      private static sbyte RandomSByte(int minValue=sbyte.MinValue, int maxValue = sbyte.MaxValue)
      {
      return (sbyte)random.Next(minValue, maxValue);
      }

      private static float RandomFloat()
      {
      double mantissa = (random.NextDouble() * 2.0) - 1.0;
      double exponent = Math.Pow(2.0, random.Next(-126, 128));
      return (float)(mantissa * exponent);
      }

      public static int NextInt32(this Random rng)
      {
      int firstBits = rng.Next(0, 1 << 4) << 28;
      int lastBits = rng.Next(0, 1 << 28);
      return firstBits | lastBits;
      }

      public static decimal RandomDecimal()
      {
      byte scale = (byte)random.Next(29);
      bool sign = random.Next(2) == 1;
      return new decimal(random.NextInt32(),
      random.NextInt32(),
      random.NextInt32(),
      sign,
      scale);
      }

      private static short RandomInt16(int minValue = Int16.MinValue, int maxValue = Int16.MaxValue)
      {
      return (short)random.Next(minValue, maxValue);
      }

      private static int RandomInt32(int minValue = Int32.MinValue, int maxValue = Int32.MaxValue)
      {
      return random.Next(minValue, maxValue);
      }

      private static long RandomInt64(long minValue = Int32.MinValue, long maxValue = Int32.MaxValue)
      {
      long result = random.Next((Int32)(minValue >> 32), (Int32)(maxValue >> 32));
      result = (result << 32);
      result = result | (long)random.Next((Int32)minValue, (Int32)maxValue);
      return result;
      }


      private static UInt16 RandomUInt16()
      {
      var byteArray = new byte[2];
      random.NextBytes(byteArray);
      return BitConverter.ToUInt16(byteArray, 0);
      }

      private static UInt32 RandomUInt32()
      {
      var byteArray = new byte[4];
      random.NextBytes(byteArray);
      return BitConverter.ToUInt32(byteArray,0);
      }

      private static UInt64 RandomUInt64()
      {
      var byteArray = new byte[8];
      random.NextBytes(byteArray);
      return BitConverter.ToUInt64(byteArray, 0);
      }

      private static string RandomString(int length = 10)
      {
      const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
      return new string(Enumerable.Repeat(chars, length)
      .Select(s => s[random.Next(s.Length)]).ToArray());
      }








      share







      New contributor




      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      This is my first code review question in here, so kindly guide me if I need to format the question in a better way.



      Task Description




      Aim of the task is to create a set of methods that would allow me to
      create random values for given primitive type. This would be used
      later in a method that would reflect on a Complex Type (Class/Struct)
      and assign random values to each of the members (Nested Properties are
      also taken care of in the other method).




      The code attached set of methods for creating Random Values. I was wondering if this is the best way to create a Random Value for each of the primitive type.



      Code



          private static bool RandomBoolean()
      {
      return Convert.ToBoolean(random.Next(0, 2));
      }
      private static double RandomDouble(Int32 minValue=Int32.MinValue,Int32 maxValue= Int32.MaxValue)
      {
      return random.NextDouble() * (double)random.Next(minValue,maxValue);
      }

      private static char RandomChar(bool isLowerCase = true)
      {
      if (isLowerCase)
      return (char)random.Next((int)'a', (int)'z');
      else
      return (char)random.Next((int)'A', (int)'A');
      }
      private static byte RandomByte()
      {
      var byteArray = new byte[1];
      random.NextBytes(byteArray);
      return byteArray[0];
      }

      private static sbyte RandomSByte(int minValue=sbyte.MinValue, int maxValue = sbyte.MaxValue)
      {
      return (sbyte)random.Next(minValue, maxValue);
      }

      private static float RandomFloat()
      {
      double mantissa = (random.NextDouble() * 2.0) - 1.0;
      double exponent = Math.Pow(2.0, random.Next(-126, 128));
      return (float)(mantissa * exponent);
      }

      public static int NextInt32(this Random rng)
      {
      int firstBits = rng.Next(0, 1 << 4) << 28;
      int lastBits = rng.Next(0, 1 << 28);
      return firstBits | lastBits;
      }

      public static decimal RandomDecimal()
      {
      byte scale = (byte)random.Next(29);
      bool sign = random.Next(2) == 1;
      return new decimal(random.NextInt32(),
      random.NextInt32(),
      random.NextInt32(),
      sign,
      scale);
      }

      private static short RandomInt16(int minValue = Int16.MinValue, int maxValue = Int16.MaxValue)
      {
      return (short)random.Next(minValue, maxValue);
      }

      private static int RandomInt32(int minValue = Int32.MinValue, int maxValue = Int32.MaxValue)
      {
      return random.Next(minValue, maxValue);
      }

      private static long RandomInt64(long minValue = Int32.MinValue, long maxValue = Int32.MaxValue)
      {
      long result = random.Next((Int32)(minValue >> 32), (Int32)(maxValue >> 32));
      result = (result << 32);
      result = result | (long)random.Next((Int32)minValue, (Int32)maxValue);
      return result;
      }


      private static UInt16 RandomUInt16()
      {
      var byteArray = new byte[2];
      random.NextBytes(byteArray);
      return BitConverter.ToUInt16(byteArray, 0);
      }

      private static UInt32 RandomUInt32()
      {
      var byteArray = new byte[4];
      random.NextBytes(byteArray);
      return BitConverter.ToUInt32(byteArray,0);
      }

      private static UInt64 RandomUInt64()
      {
      var byteArray = new byte[8];
      random.NextBytes(byteArray);
      return BitConverter.ToUInt64(byteArray, 0);
      }

      private static string RandomString(int length = 10)
      {
      const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
      return new string(Enumerable.Repeat(chars, length)
      .Select(s => s[random.Next(s.Length)]).ToArray());
      }






      c#





      share







      New contributor




      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 mins ago









      Anu Viswan

      10111




      10111




      New contributor




      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Anu Viswan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.



























          active

          oldest

          votes











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "196"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Anu Viswan is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210677%2fgenerating-random-values-for-primitive-types%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          Anu Viswan is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Anu Viswan is a new contributor. Be nice, and check out our Code of Conduct.













          Anu Viswan is a new contributor. Be nice, and check out our Code of Conduct.












          Anu Viswan is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Code Review Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210677%2fgenerating-random-values-for-primitive-types%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Morgemoulin

          Scott Moir

          Souastre