Exemplo n.º 1
0
        private void btnTesting_Click(object sender, EventArgs e)
        {
            const UInt16 MAXROUNDS = 7;
            bool         bTestRunning;
            Int32        iRet;
            Int32        i, j, iNumberOfValues, iCreatedNumbers;

            Double[]  fArray;
            Double    sum, aSum;
            Int64     aNum;
            Stopwatch sw = new Stopwatch();

            bTestRunning = true;
            Memo.Items.Clear();
            Application.DoEvents();
            Memo.Items.Add("Testing mean Values from 10 to " + Convert.ToString(Math.Pow(10, (MAXROUNDS - 1))));
            iNumberOfValues = Convert.ToInt32(Math.Pow(10, MAXROUNDS));
            fArray          = new Double[iNumberOfValues];
            iNumberOfValues = 1; // Count of Values to catch / test
            aNum            = 0; // over all Count of Values catched / tested
            aSum            = 0; // Sum over all Values
            // Main loop
            for (i = 1; i < MAXROUNDS; i++)
            {
                iCreatedNumbers = 0;
                iNumberOfValues = iNumberOfValues * 10; // increase count by an order of magnitude
                sw.Start();
                iRet = QRNG.qrng_get_double_array(ref fArray[0], iNumberOfValues, ref iCreatedNumbers);
                sw.Stop();
                if (iRet != 0)
                {
                    try
                    {
                        Memo.Items.Add("can't get random numbers: " + QRNG.qrng_error_strings[iRet]);
                    }
                    catch
                    {
                        Memo.Items.Add("can't get random numbers: " + Convert.ToString(iRet));
                    }
                }
                Memo.Items.Add("got " + Convert.ToString(iCreatedNumbers) + " numbers in " + Convert.ToString(sw.ElapsedMilliseconds) + " ms");
                sum = 0; // calculate sum over all Values
                for (j = 0; j < (iCreatedNumbers - 1); j++)
                {
                    sum = sum + fArray[j];
                    Application.DoEvents();
                    if (!bTestRunning)
                    {
                        return;
                    }
                }
                aSum = aSum + sum;             // add to over all sum
                aNum = aNum + iCreatedNumbers; // add count to over all count
                // calculate mean
                Memo.Items.Add(Convert.ToString(iCreatedNumbers) + " Values, Mean: " + Convert.ToString(sum / iCreatedNumbers));
                Memo.Items.Add("");
            }
            // Calculate over all mean
            Memo.Items.Add("Finished total: " + Convert.ToString(aNum) + " Values, total Mean: " + Convert.ToString(aSum / aNum));
        }
Exemplo n.º 2
0
        private void btnInt_Click(object sender, EventArgs e)
        {
            Int32 iRet;
            Int32 i, iCreatedNumbers, iNumberOfValues;

            Int32[]   iArray;
            Stopwatch sw = new Stopwatch();

            iNumberOfValues = Convert.ToInt32(edtNum.Value);
            iArray          = new Int32[iNumberOfValues];
            iCreatedNumbers = 0;

            Memo.Items.Clear();
            Memo.Items.Add("get " + Convert.ToString(iNumberOfValues) + " random integer values.");
            sw.Start();
            iRet = QRNG.qrng_get_int_array(ref iArray[0], iNumberOfValues, ref iCreatedNumbers);
            sw.Stop();
            if (iRet != 0)
            {
                try
                {
                    Memo.Items.Add("can't get random numbers: " + QRNG.qrng_error_strings[iRet]);
                }
                catch
                {
                    Memo.Items.Add("can't get random numbers: " + Convert.ToString(iRet));
                }
                return;
            }
            Memo.Items.Add("got " + Convert.ToString(iCreatedNumbers) + " numbers");
            for (i = 0; i < iCreatedNumbers; i++)
            {
                Memo.Items.Add(Convert.ToString(i) + "." + Convert.ToString((char)9) + Convert.ToString(iArray[i]));
            }
            Memo.Items.Add("Finished in " + Convert.ToString(sw.ElapsedMilliseconds) + " ms");
            sw.Reset();
        }
Exemplo n.º 3
0
        private string randomQuantumSelectAnswer(StringCollection a)
        {
            try
            {
                QRNG pqDLL = new QRNG();
                Int32 iRet = 0;
                if (pqDLL.CheckDLL() == true)
                {
                    StringBuilder strUser = new StringBuilder(32);
                    StringBuilder strPass = new StringBuilder(32);

                    strUser.Insert(0, "llopin");
                    strPass.Insert(0, "kR63LyowFi8n");
                    try
                    {
                        iRet = QRNG.qrng_connect(strUser, strPass);
                    }
                    catch (System.Exception ex)
                    {
                        logger.Trace("Could not connect to Quantum Generator");
                        randomSelectAnswer(a);
                    }
                    if (iRet == 0)
                    {
                        Int32 iCreatedNumbers, iNumberOfValues;
                        Double[] fArray;
                        iNumberOfValues = 1;
                        fArray = new Double[iNumberOfValues];
                        iCreatedNumbers = 0;
                        try
                        {
                            iRet = QRNG.qrng_get_double_array(ref fArray[0], iNumberOfValues, ref iCreatedNumbers);
                            if (iRet == 0)
                            {
                                double qrandom = fArray[0];

                                string b = "";
                                if (a.Count <= 0)
                                    return b;
                                else
                                {
                                    if (qrandom < 1)
                                    {
                                        int position = Convert.ToInt32(a.Count * qrandom);
                                        b = a[position];
                                        return b;
                                    }
                                    else
                                    {
                                        Console.WriteLine("oops: " + qrandom);
                                        return randomSelectAnswer(a);
                                    }
                                }
                            }
                            else
                                return randomSelectAnswer(a);
                        }
                        catch (System.Exception ex)
                        {
                            logger.Trace("Error trying to retrieve quantum fluctuation: " + ex.Message);
                            return randomSelectAnswer(a);
                        }
                    }
                    else
                        return randomSelectAnswer(a);
                }
                else
                {
                    return randomSelectAnswer(a);
                }
            }
            catch (System.Exception ex)
            {
                return randomSelectAnswer(a);
            }
        }
Exemplo n.º 4
0
        private string randomQuantumSelectAnswer(StringCollection a)
        {
            try
            {
                QRNG  pqDLL = new QRNG();
                Int32 iRet  = 0;
                if (pqDLL.CheckDLL() == true)
                {
                    StringBuilder strUser = new StringBuilder(32);
                    StringBuilder strPass = new StringBuilder(32);

                    strUser.Insert(0, "llopin");
                    strPass.Insert(0, "kR63LyowFi8n");
                    try
                    {
                        iRet = QRNG.qrng_connect(strUser, strPass);
                    }
                    catch (System.Exception ex)
                    {
                        logger.Trace("Could not connect to Quantum Generator");
                        randomSelectAnswer(a);
                    }
                    if (iRet == 0)
                    {
                        Int32    iCreatedNumbers, iNumberOfValues;
                        Double[] fArray;
                        iNumberOfValues = 1;
                        fArray          = new Double[iNumberOfValues];
                        iCreatedNumbers = 0;
                        try
                        {
                            iRet = QRNG.qrng_get_double_array(ref fArray[0], iNumberOfValues, ref iCreatedNumbers);
                            if (iRet == 0)
                            {
                                double qrandom = fArray[0];

                                string b = "";
                                if (a.Count <= 0)
                                {
                                    return(b);
                                }
                                else
                                {
                                    if (qrandom < 1)
                                    {
                                        int position = Convert.ToInt32(a.Count * qrandom);
                                        b = a[position];
                                        return(b);
                                    }
                                    else
                                    {
                                        Console.WriteLine("oops: " + qrandom);
                                        return(randomSelectAnswer(a));
                                    }
                                }
                            }
                            else
                            {
                                return(randomSelectAnswer(a));
                            }
                        }
                        catch (System.Exception ex)
                        {
                            logger.Trace("Error trying to retrieve quantum fluctuation: " + ex.Message);
                            return(randomSelectAnswer(a));
                        }
                    }
                    else
                    {
                        return(randomSelectAnswer(a));
                    }
                }
                else
                {
                    return(randomSelectAnswer(a));
                }
            }
            catch (System.Exception ex)
            {
                return(randomSelectAnswer(a));
            }
        }
Exemplo n.º 5
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            Int32 iRet = 0;

            Memo.Items.Clear();
            if (bConnected == false)
            {
                try
                {
                    if (pqDLL.CheckDLL() == false)
                    {
                        MessageBox.Show("loading library libQRNG.dll failed", "Warning",
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        Memo.Items.Add("loading library libQRNG.dll failed");
                        Memo.Items.Add("make sure libQRNG.dll is in the same directory as CsharpQRNG.exe");
                    }
                    else
                    {
                        StringBuilder strUser = new StringBuilder(32);
                        StringBuilder strPass = new StringBuilder(32);

                        strUser.Insert(0, edtUser.Text);
                        strPass.Insert(0, edtPass.Text);
                        if (chkSSL.Checked == false)
                        {
                            iRet = QRNG.qrng_connect(strUser, strPass);
                        }
                        else
                        {
                            iRet = QRNG.qrng_connect_SSL(strUser, strPass);
                        }
                        if (iRet != 0)
                        {
                            try
                            {
                                MessageBox.Show("can't connect: " + QRNG.qrng_error_strings[iRet], "Warning",
                                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                            catch
                            {
                                MessageBox.Show("can't connect: " + Convert.ToString(iRet), "Warning",
                                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                        }
                        else
                        {
                            bConnected        = true;
                            btnConnect.Text   = "Disconnect";
                            grpRandom.Enabled = true;
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("loading library libQRNG.dll failed", "Warning",
                                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    Memo.Items.Add("loading library libQRNG.dll failed");
                    Memo.Items.Add("make sure libQRNG.dll is in the same directory as CsharpQRNG.exe");
                }
            }
            else
            {
                QRNG.qrng_disconnect();
                bConnected        = false;
                btnConnect.Text   = "Connect";
                grpRandom.Enabled = false;
                edtUser.Clear();
                edtPass.Clear();
            }
        }