From 58a54ca07ea66e5ca379f90c185f1f923bf4b3ac Mon Sep 17 00:00:00 2001 From: Devika Mehra Date: Thu, 29 Aug 2024 09:47:29 -0700 Subject: [PATCH] Added DoubleAsStringWithPrecision function - Single Qubit Gate (#1884) Added DoubleAsStringWithPrecision function to Single Qubit Gate Kata This is to address the issue #1788 --- .../single_qubit_gates/amplitude_change/Verification.qs | 3 ++- katas/content/single_qubit_gates/complex_phase/Verification.qs | 3 ++- .../single_qubit_gates/prepare_arbitrary_state/Verification.qs | 3 ++- .../single_qubit_gates/prepare_rotated_state/Verification.qs | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/katas/content/single_qubit_gates/amplitude_change/Verification.qs b/katas/content/single_qubit_gates/amplitude_change/Verification.qs index bd7ba2a0e6..9c188af79f 100644 --- a/katas/content/single_qubit_gates/amplitude_change/Verification.qs +++ b/katas/content/single_qubit_gates/amplitude_change/Verification.qs @@ -14,8 +14,9 @@ namespace Kata.Verification { let reference = register => AmplitudeChange(alpha, register[0]); let isCorrect = CheckOperationsAreEqualStrict(1, solution, reference); if not isCorrect { + let precision = 3; Message("Incorrect."); - Message($"The solution was incorrect for the test case alpha = {alpha}."); + Message($"The solution was incorrect for the test case alpha = {DoubleAsStringWithPrecision(alpha, precision)}."); Message("Hint: examine the effect your solution has on the state 0.6|0〉 + 0.8|1〉 and compare it with the effect it " + "is expected to have."); ShowQuantumStateComparison(1, qs => Ry(ArcTan2(0.8, 0.6) * 2.0, qs[0]), solution, reference); diff --git a/katas/content/single_qubit_gates/complex_phase/Verification.qs b/katas/content/single_qubit_gates/complex_phase/Verification.qs index 9da1988806..605d6cfb8d 100644 --- a/katas/content/single_qubit_gates/complex_phase/Verification.qs +++ b/katas/content/single_qubit_gates/complex_phase/Verification.qs @@ -14,8 +14,9 @@ namespace Kata.Verification { let reference = register => PhaseChange(alpha, register[0]); let isCorrect = CheckOperationsAreEqualStrict(1, solution, reference); if not isCorrect { + let precision = 3; Message("Incorrect."); - Message($"The solution was incorrect for the test case alpha = {alpha}."); + Message($"The solution was incorrect for the test case alpha = {DoubleAsStringWithPrecision(alpha, precision)}."); Message("Hint: examine the effect your solution has on the state 0.6|0〉 + 0.8|1〉 and compare it with the effect it " + "is expected to have."); ShowQuantumStateComparison(1, qs => Ry(ArcTan2(0.8, 0.6) * 2.0, qs[0]), solution, reference); diff --git a/katas/content/single_qubit_gates/prepare_arbitrary_state/Verification.qs b/katas/content/single_qubit_gates/prepare_arbitrary_state/Verification.qs index 123bfb9e46..fb020ef51d 100644 --- a/katas/content/single_qubit_gates/prepare_arbitrary_state/Verification.qs +++ b/katas/content/single_qubit_gates/prepare_arbitrary_state/Verification.qs @@ -19,8 +19,9 @@ namespace Kata.Verification { let reference = register => PrepareArbitraryState(alpha, beta, theta, register[0]); let isCorrect = CheckOperationsEquivalenceOnZeroStateStrict(solution, reference, 1); if not isCorrect { + let precision = 3; Message("Incorrect."); - Message($"The solution was incorrect for the test case alpha = {alpha}, beta = {beta}, theta = {theta}."); + Message($"The solution was incorrect for the test case alpha = {DoubleAsStringWithPrecision(alpha, precision)}, beta = {DoubleAsStringWithPrecision(beta, precision)}, theta = {DoubleAsStringWithPrecision(theta, precision)}."); Message("Hint: examine the state prepared by your solution and compare it with the state it " + "is expected to prepare."); ShowQuantumStateComparison(1, qs => (), solution, reference); diff --git a/katas/content/single_qubit_gates/prepare_rotated_state/Verification.qs b/katas/content/single_qubit_gates/prepare_rotated_state/Verification.qs index fc29dc6387..d79ac988a0 100644 --- a/katas/content/single_qubit_gates/prepare_rotated_state/Verification.qs +++ b/katas/content/single_qubit_gates/prepare_rotated_state/Verification.qs @@ -17,8 +17,9 @@ namespace Kata.Verification { let reference = register => PrepareRotatedState(alpha, beta, register[0]); let isCorrect = CheckOperationsEquivalenceOnZeroStateStrict(solution, reference, 1); if not isCorrect { + let precision = 3; Message("Incorrect."); - Message($"The solution was incorrect for the test case alpha = {alpha}, beta = {beta}."); + Message($"The solution was incorrect for the test case alpha = {DoubleAsStringWithPrecision(alpha, precision)}, beta = {DoubleAsStringWithPrecision(beta, precision)}."); Message("Hint: examine the state prepared by your solution and compare it with the state it " + "is expected to prepare."); ShowQuantumStateComparison(1, qs => (), solution, reference);