microsoft/qdk

Public

mirrored from https://github.com/microsoft/qdkAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v1.27.0

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

katas/content/complex_arithmetic/complex_exponents/Verification.qs

27lines · modepreview

namespace Kata.Verification {
    import Std.Math.*;

    function ComplexExponent_Reference(x : Complex) : Complex {
        let expa = E()^x.Real;
        return Complex(expa * Cos(x.Imag), expa * Sin(x.Imag));
    }

    @EntryPoint()
    operation CheckSolution() : Bool {
        for _ in 0..24 {
            let x = DrawRandomComplex();

            let expected = ComplexExponent_Reference(x);
            let actual = Kata.ComplexExponent(x);

            if not ComplexEqual(expected, actual) {
                Message("Incorrect");
                Message($"For x = {ComplexAsString(x)} expected return {ComplexAsString(expected)}, actual return {ComplexAsString(actual)}.");
                return false;
            }
        }

        Message("Correct!");
        return true;
    }
}