33
44namespace Microsoft .Quantum .Numerics .ToffoliTests {
55 open Microsoft .Quantum .Arrays ;
6+ open Microsoft .Quantum .Canon ;
67 open Microsoft .Quantum .Convert ;
78 open Microsoft .Quantum .Math ;
89 open Microsoft .Quantum .Intrinsic ;
@@ -21,6 +22,33 @@ namespace Microsoft.Quantum.Numerics.ToffoliTests {
2122 }
2223 }
2324
25+ internal operation PrepareAsSignedAndMeasure (value : Int , fxp : FixedPoint ) : Double {
26+ ApplyXorInPlace (value , LittleEndian (Snd (fxp ! )));
27+ return MeasureFxP (fxp );
28+ }
29+
30+ operation MeasureFxPTest () : Unit {
31+ use qs = Qubit [4 ];
32+ let qsFxP = FixedPoint (2 , qs );
33+
34+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0000 , qsFxP ), 0.0 );
35+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0001 , qsFxP ), 0 .25 );
36+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0010 , qsFxP ), 0.5 );
37+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0011 , qsFxP ), 0 .75 );
38+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0100 , qsFxP ), 1.0 );
39+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0101 , qsFxP ), 1 .25 );
40+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0110 , qsFxP ), 1.5 );
41+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b0111 , qsFxP ), 1 .75 );
42+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1000 , qsFxP ), - 2.0 );
43+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1001 , qsFxP ), - 1 .75 );
44+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1010 , qsFxP ), - 1.5 );
45+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1011 , qsFxP ), - 1 .25 );
46+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1100 , qsFxP ), - 1 .00 );
47+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1101 , qsFxP ), - 0 .75 );
48+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1110 , qsFxP ), - 0.5 );
49+ NearEqualityFactD (PrepareAsSignedAndMeasure (0b1111 , qsFxP ), - 0 .25 );
50+ }
51+
2452 operation CompareGreaterThanFxPTest () : Unit {
2553 for a in [1.2 , 3.9 , 3 .14159 , - 0.6 , - 4.5 , - 3 .1931 , 0.0 ] {
2654 for b in [1.1 , 3 .95 , 3 .14259 , - 0.4 , - 4.6 , - 3 .931 , 0.1 ] {
0 commit comments