From 574a3ce929d8becfa4d0a2311bc5a5f3c5242890 Mon Sep 17 00:00:00 2001 From: Tarkan Al-Kazily Date: Wed, 20 Mar 2019 21:27:05 -0700 Subject: [PATCH] Added HiddenShift Kata --- HiddenShift/.gitignore | 357 ++++++++++++++++++++ HiddenShift/GaussianElimination.qs | 152 +++++++++ HiddenShift/GaussianEliminationTestSuite.cs | 30 ++ HiddenShift/GaussianEliminationTests.qs | 225 ++++++++++++ HiddenShift/HiddenShift.csproj | 19 ++ HiddenShift/HiddenShift.sln | 25 ++ HiddenShift/Hidden_Shift_Problem.pdf | Bin 0 -> 160292 bytes HiddenShift/README.md | 24 ++ HiddenShift/ReferenceImplementation.qs | 206 +++++++++++ HiddenShift/Tasks.qs | 220 ++++++++++++ HiddenShift/TestSuiteRunner.cs | 35 ++ HiddenShift/Tests.qs | 320 ++++++++++++++++++ 12 files changed, 1613 insertions(+) create mode 100755 HiddenShift/.gitignore create mode 100755 HiddenShift/GaussianElimination.qs create mode 100755 HiddenShift/GaussianEliminationTestSuite.cs create mode 100755 HiddenShift/GaussianEliminationTests.qs create mode 100755 HiddenShift/HiddenShift.csproj create mode 100755 HiddenShift/HiddenShift.sln create mode 100755 HiddenShift/Hidden_Shift_Problem.pdf create mode 100755 HiddenShift/README.md create mode 100755 HiddenShift/ReferenceImplementation.qs create mode 100755 HiddenShift/Tasks.qs create mode 100755 HiddenShift/TestSuiteRunner.cs create mode 100755 HiddenShift/Tests.qs diff --git a/HiddenShift/.gitignore b/HiddenShift/.gitignore new file mode 100755 index 00000000000..1b2a32a9ad7 --- /dev/null +++ b/HiddenShift/.gitignore @@ -0,0 +1,357 @@ +### Backup files ### +*.swp +*~ + +### Other files ### +.DS_Store +.vscode + +# Created by https://www.gitignore.io/api/visualstudio +# Edit at https://www.gitignore.io/?templates=visualstudio + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ +# ASP.NET Core default setup: bower directory is configured as wwwroot/lib/ and bower restore is true +**/wwwroot/lib/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- Backup*.rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# End of https://www.gitignore.io/api/visualstudio + diff --git a/HiddenShift/GaussianElimination.qs b/HiddenShift/GaussianElimination.qs new file mode 100755 index 00000000000..ca01cf8a87a --- /dev/null +++ b/HiddenShift/GaussianElimination.qs @@ -0,0 +1,152 @@ +namespace Quantum.Kata.HiddenShift +{ + open Microsoft.Quantum.Primitive; + open Microsoft.Quantum.Canon; + + /// + /// Returns an array of bool vectors which together form the basis of the null space. + /// The input matrix may have any dimensions >= 1. It must be rectangular (and not jagged). + /// + /// Example: + /// + /// let matrix = [ + /// [1, 0, 0, 0], + /// [0, 1, 0, 0] + /// ]; + /// let kernel = KernelMod2(matrix); + /// + /// + /// kernel is [[0, 0, 1, 0], [0, 0, 0, 1]]. + /// + function KernelMod2(matrix: Int[][]) : Int[][] { + let reduced = GaussianEliminationMod2(matrix); + let rank = QuickRank(reduced); + let nullSpaceDims = Length(matrix[0]) - rank; + + mutable resultNumber = 0; + mutable result = new Int[][nullSpaceDims]; + for (reducedCol in 0..Length(reduced[0])-1) { + // Find a column with a non-pivot row to take from + // If the element to check to see if this column is a pivot is off the end of the matrix, + // treat it as if it's a 0 + if (reducedCol-resultNumber >= Length(reduced) || reduced[reducedCol-resultNumber][reducedCol] != 1) { + + set result[resultNumber] = new Int[Length(matrix[0])]; + + mutable skippedRows = 0; + for (resultDimension in 0..Length(matrix[0])-1) { + if (resultDimension+skippedRows >= Length(reduced) || reduced[resultDimension-skippedRows][resultDimension] != 1) { + // Pull from identity matrix. Each of the skipped rows should be an element of the + // identity matrix, instead of the reduced matrix + set result[resultNumber][resultDimension] = skippedRows == resultNumber ? 1 | 0; + set skippedRows = skippedRows + 1; + } else { + set result[resultNumber][resultDimension] = reduced[resultDimension+skippedRows][reducedCol]; // Pull from result matrix + } + } + set resultNumber = resultNumber + 1; + } + } + + return result; + } + + /// + /// Computes the rank of the given matrix. + /// The input matrix may have any dimensions >= 1. It must be rectangular (and not jagged). + /// + /// Example: + /// + /// let matrix = [ + /// [1, 1, 0, 0], + /// [0, 1, 0, 0], + /// [0, 0, 0, 0] + /// ]; + /// let rank = RankMod2(matrix); + /// + /// rank is now 2. + /// + function RankMod2(matrix: Int[][]) : Int { + return QuickRank(GaussianEliminationMod2(matrix)); + } + + /// Computes the rank of the given matrix. Assumes the matrix is in row echelon form. + /// The input matrix may have any dimensions > 1. It must be rectangular (and not jagged). + function QuickRank(matrix: Int[][]) : Int { + mutable zeroRows = 0; + for (i in 0..Length(matrix)-1) { + mutable onlyZeroes = true; + for (j in 0..Length(matrix[i])-1) { + if (matrix[i][j] != 0) { + set onlyZeroes = false; + } + } + + if (onlyZeroes) { + set zeroRows = zeroRows + 1; + } + } + return Length(matrix) - zeroRows; + } + + /// + /// Returns the result of computing Gaussian elimination on the given matrix. + /// Assumes elements of the matrix are in Z2. + /// The input matrix may have any dimensions > 1. It must be rectangular (and not jagged). + /// + /// Example: + /// + /// let matrix = [ + /// [1, 0, 1, 1], + /// [0, 1, 1, 0] + /// ]; + /// let rowReduced = GaussianEliminationMod2(matrix); + /// + /// + /// rowReduced is: + /// + /// [ + /// [0, 0, 1, 0], + /// [0, 0, 0, 1] + /// ] + /// + /// + function GaussianEliminationMod2(matrix_: Int[][]) : Int[][] { + mutable matrix = matrix_; + mutable minPivotRow = 0; + for (column in 0..Length(matrix[0])-1) { + mutable pivotRow = -1; + for (row in minPivotRow..Length(matrix)-1) { + if (matrix[row][column] == 1 && pivotRow == -1) { + set pivotRow = row; + // Add the other rows when needed + for (i in 0..Length(matrix)-1) { + if (matrix[i][column] == 1 && i != row) { + set matrix = AddRowsMod2(matrix, row, i); + } + } + } + } + + if (pivotRow != -1) { + let temp = matrix[minPivotRow]; + set matrix[minPivotRow] = matrix[pivotRow]; + set matrix[pivotRow] = temp; + + set minPivotRow = minPivotRow + 1; + } + } + + return matrix; + } + + /// Helper function to add a source row into a destination row + /// matrix[destRow] += matrix[srcRow] + function AddRowsMod2(matrix_: Int[][], srcRow: Int, destRow: Int) : Int[][] { + mutable matrix = matrix_; + for (col in 0..Length(matrix[0])-1) { + set matrix[destRow][col] = matrix[destRow][col] ^^^ matrix[srcRow][col]; + } + return matrix; + } +} diff --git a/HiddenShift/GaussianEliminationTestSuite.cs b/HiddenShift/GaussianEliminationTestSuite.cs new file mode 100755 index 00000000000..9f8afeef980 --- /dev/null +++ b/HiddenShift/GaussianEliminationTestSuite.cs @@ -0,0 +1,30 @@ +using Microsoft.Quantum.Simulation.XUnit; +using Microsoft.Quantum.Simulation.Simulators; +using Xunit.Abstractions; +using System.Diagnostics; + +namespace Quantum.Kata.HiddenShift +{ + public class GaussianEliminationTestSuite + { + private readonly ITestOutputHelper output; + + public GaussianEliminationTestSuite(ITestOutputHelper output) + { + this.output = output; + } + + // Use another namespace so tests are seperated in VSTest + [OperationDriver(TestNamespace = "Quantum.Kata.HiddenShift.GaussianEliminationTests", DisplayName = "Gaussian Elimination")] + public void TestGaussianElimination(TestOperation op) + { + using (var sim = new QuantumSimulator()) + { + // OnLog defines action(s) performed when Q# test calls function Message + sim.OnLog += (msg) => { output.WriteLine(msg); }; + sim.OnLog += (msg) => { Debug.WriteLine(msg); }; + op.TestOperationRunner(sim); + } + } + } +} diff --git a/HiddenShift/GaussianEliminationTests.qs b/HiddenShift/GaussianEliminationTests.qs new file mode 100755 index 00000000000..1e4f85ab623 --- /dev/null +++ b/HiddenShift/GaussianEliminationTests.qs @@ -0,0 +1,225 @@ +namespace Quantum.Kata.HiddenShift.GaussianEliminationTests +{ + open Microsoft.Quantum.Primitive; + open Microsoft.Quantum.Canon; + open Quantum.Kata.HiddenShift; + + operation BasicTest () : Unit + { + let result = GaussianEliminationMod2([ + [1, 0], + [1, 1] + ]); + + AssertIntMatrixEqual(result, [ + [1, 0], + [0, 1] + ], ""); + } + + operation FirstColumnHasZerosTest() : Unit + { + let result = GaussianEliminationMod2([ + [0, 1, 1], + [0, 0, 1] + ]); + + AssertIntMatrixEqual(result, [ + [0, 1, 0], + [0, 0, 1] + ], ""); + } + + operation MiddleColumnHasZerosTest() : Unit + { + let result = GaussianEliminationMod2([ + [1, 0, 1], + [0, 0, 1] + ]); + + AssertIntMatrixEqual(result, [ + [1, 0, 0], + [0, 0, 1] + ], ""); + } + + operation TwoIdenticalRowsTest() : Unit + { + let result = GaussianEliminationMod2([ + [1, 1, 0], + [1, 1, 0], + [0, 0, 0] + ]); + + AssertIntMatrixEqual(result, [ + [1, 1, 0], + [0, 0, 0], + [0, 0, 0] + ], ""); + } + + operation OnlyFlipIf1Test () : Unit + { + // In the second column, only one value is 1, so none of the rows should be modified + let result = GaussianEliminationMod2([ + [1, 0, 1, 0], + [0, 1, 1, 0], + [0, 0, 0, 0] + ]); + + AssertIntMatrixEqual(result, [ + [1, 0, 1, 0], + [0, 1, 1, 0], + [0, 0, 0, 0] + ], ""); + } + + operation FlipIf1Test () : Unit + { + // In the second column, both the first and third rows and added with the second + let result = GaussianEliminationMod2([ + [1, 1, 1, 0], + [0, 1, 1, 0], + [0, 1, 0, 0] + ]); + + AssertIntMatrixEqual(result, [ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0] + ], ""); + } + + operation DoSwapsTest() : Unit + { + // In the second column, both the first and third rows and added with the second + let result = GaussianEliminationMod2([ + [0, 0, 1, 0], + [0, 1, 0, 0], + [1, 0, 0, 0] + ]); + + AssertIntMatrixEqual(result, [ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0] + ], ""); + } + + operation EliminateRowTest() : Unit + { + let result = GaussianEliminationMod2([ + [0, 0, 1, 0], + [0, 1, 0, 0], + [0, 1, 0, 0], + [1, 0, 0, 0] + ]); + + AssertIntMatrixEqual(result, [ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0], + [0, 0, 0, 0] + ], ""); + } + + operation BasicKernelTest() : Unit + { + let result = KernelMod2([ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0], + [0, 0, 0, 0] + ]); + + AssertSubspaceEqual(result, [ + [0, 0, 0, 1] + ], ""); + } + + operation TrickyKernelTest() : Unit + { + let result = KernelMod2([ + [1, 0, 0, 1], + [0, 1, 1, 1] + ]); + + AssertSubspaceEqual(result, [ + [1, 1, 0, 1], + [0, 1, 1, 0] + ], ""); + } + + operation TwoIdenticalRowsKernelTest() : Unit + { + let result = KernelMod2([ + [1, 1, 0], + [1, 1, 0], + [0, 0, 0] + ]); + + AssertSubspaceEqual(result, [ + [1, 1, 0], + [0, 0, 1] + ], ""); + } + + operation NonPivotInMiddleTest() : Unit { + + let result = KernelMod2([ + [1,0,1,0,0], + [0,1,0,0,0], + [0,0,0,1,0], + [0,0,0,0,1] + ]); + + AssertSubspaceEqual(result, [ + [1, 0, 1, 0, 0] + ], ""); + } + + operation MultipleNonPivotInMiddleTest() : Unit { + + let result = KernelMod2([ + [1,0,1,0,0], + [0,1,0,0,0], + [0,0,0,0,1] + ]); + + AssertSubspaceEqual(result, [ + [1, 0, 1, 0, 0], + [0, 0, 0, 1, 0] + ], ""); + } + + function AssertIntMatrixEqual(actual: Int[][], expected: Int[][], message: String) : Unit { + AssertIntEqual(Length(actual), Length(expected), message); + for (i in 0..Length(actual)-1) { + AssertBoolEqual(IntVectorEqual(actual[i], expected[i]), true, $"Expected: {expected} Actual: {actual}. {message}"); + } + } + + function AssertSubspaceEqual(actualBasis: Int[][], expectedBasis: Int[][], message: String) : Unit { + AssertIntEqual(Length(actualBasis), Length(expectedBasis), message); + for (i in 0..Length(actualBasis)-1) { + mutable foundMatch = false; + for (j in 0..Length(expectedBasis) - 1) { + set foundMatch = foundMatch || IntVectorEqual(actualBasis[i], expectedBasis[j]); + } + AssertBoolEqual(foundMatch, true, $"Expected: {expectedBasis} Actual: {actualBasis}. {message}"); + } + } + + function IntVectorEqual(a: Int[], b: Int[]) : Bool { + if (Length(a) != Length(b)) { + return false; + } + + mutable equal = true; + for (i in 0..Length(a)-1) { + set equal = equal && a[i] == b[i]; + } + + return equal; + } +} diff --git a/HiddenShift/HiddenShift.csproj b/HiddenShift/HiddenShift.csproj new file mode 100755 index 00000000000..7921f0dca4b --- /dev/null +++ b/HiddenShift/HiddenShift.csproj @@ -0,0 +1,19 @@ + + + netcoreapp2.0 + x64 + false + false + latest + + + + + + + + + + + + diff --git a/HiddenShift/HiddenShift.sln b/HiddenShift/HiddenShift.sln new file mode 100755 index 00000000000..cc4fc24bc95 --- /dev/null +++ b/HiddenShift/HiddenShift.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.438 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HiddenShift", "HiddenShift.csproj", "{20F82642-A1E2-4159-AFC2-848AD4F4C801}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {20F82642-A1E2-4159-AFC2-848AD4F4C801}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20F82642-A1E2-4159-AFC2-848AD4F4C801}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20F82642-A1E2-4159-AFC2-848AD4F4C801}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20F82642-A1E2-4159-AFC2-848AD4F4C801}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {49B39155-036B-4F43-9DE6-95DA9A5FC8CE} + EndGlobalSection +EndGlobal diff --git a/HiddenShift/Hidden_Shift_Problem.pdf b/HiddenShift/Hidden_Shift_Problem.pdf new file mode 100755 index 0000000000000000000000000000000000000000..d94de5cd2d39fffa5f173736f1e1435549b56840 GIT binary patch literal 160292 zcmeFYW02&{x9{7w?XI?MbK16T+nly-+xE0MZQJIw?K98*@4fFnXWzJSUY$4hR7BM; z5|LT!lNIY*xpF0$f~XiB6FnOYS?_b<7Yq|KfDvGCWCg>^3t*73v@&xR^TqecBkh zn2MSj+nfCD_OGXcp_8pM;2#Pi_BO7zcFzCUq~K&~VrlGR@ATKyzjgr_)c+v?VEOz0 zi$T)P#MI-T3T6Nk2kXCT%Y!6Qi9%0j*AK8lS94V@$}RPI4d# zIfm$rx)x)|EnoBtQFV`BT;{vVV7zY2{q zfQ$3r#Pjb^|0zqX?EkZ`HZb_dQOB7W7#bk?3;{-gzzx`8L22U0?gE8&FUiF4At6FX z1>e!TzA;$|oilF-tk+$Cizn)g!L}5Z=&f?nyd{@=QT%RvrghGA%K?_;0|kK+W&#yq z0TloZ(wyitN&UUh`KQz-?{Sp7^u0d}8y*pRCtHhltx0_((Pv>} z<@m37*Dtj+oex`){Z{JIU&yi>Ax0#Dvc?B%FX`&=2^&;WlH*hqS@0sZv6ZBqXeWC4 zW1_$)rzNblr=_i`)Bun+4`G8t%e>QPlAY7?Xc?Poz;~{KWE?4WW z)Ia!ED&zZcjaWb-06Y@rY(t0gxyzsA3Wf$k3jK1N+OD81=eW0ZI|^sM>I( zzA~L^tRJEiyXcu_Ki*r*g`5JL(mIzghwGNE{5lfRqW&y=k$<>2Dr0_6)qH!`SLUzTZhWZJdOx?Ge?aa{%v4U5R&TxRm#)8g?ley=)o$kTpoDm@;n)6Z zluwiF5zx_Xo7!V1n)AeQ=RiNj3I-Dxa-mMS_1y~w@kwxG@i3JKlp>5r|~89^t31sK?WY!XD14CQaXIYkLSd*VuH<_!S(5j_Jx$;!lWZ z94U?_2mjjj%FSPf9i*O56SfPgzDpkCQ}sW;ZR!!CgIos7CoA1!L&oK8 zCv@l1a(8;L!SbZ0*=&%ZLe%aI==*cbxe0eQRqNctWL5P$e^)hLeU@9gm2AxOZV;Te zBvARdDqd#2)kzaIPIrgrBzb>LDNUDo9wzbLj_paKeIP|izyZHT(-;i~p&uO8R@Cv_ z43fAFF5BJsoS1K-Nk^h~)@(F7#IoYtMinwZ`2M<112Z4Kvh@e8*4vSZ*0{6}G@n&P z*7V}ZSZp5l!u(^RVnmjWBWWZGu=e7^np`2?AIQa|Nx`tDmuOf5@LcvfhFQ&&EKF3n zn$)CXjAOS6?&%fD*yDJyqVdZPTE-(}t=n=tw3|yYWDb2gf!wbNuJb7vE?DsC(C2Q? z5*w-nNL=(S#{I^4LeNf~^mG3$LA6~tUB2fGf!v>wRu<+|o~|5?_~%q@dEqMvGH<|7 z!umcIR%|6Fps?P_xly(_i#`lvEffDdV|fz(>8Di8_bdn$ zh_R2Pjgk3c9bhVVbrn~@p?ULBrwDjPJ01!wZX5IhSJ#c=bEQTv8+65!VJrQF>?k5T zejm>ZvVw?yFc*Kr-kJ+S-GNVd(_Ry0UR-mh8OI?7>JcBbAUfkSWc1mupE>sNt+F!l zguJTH=3q+X9i9PA!IRv@Dv4!^*;JGi&Edc_m}@;}w0*mpx({I(NGZPf37Ez|oltcf z(bh`Ommy(+_xjDKUL3a;1zv#;{cf@cN6SW`F#0Bd;Uci$9K+(Kt_hqSqPTX$(gHK? zfdU~c>||)Uh^2yu);WVkAV22}L|_uz{9JT}JB-M}!jPM0!J1}=e$ieKHDwqa64=qg zbh*oiOnKS)ECq*Dt$WO`3xgUmHvK4~_3m&rSW$ywS62(X*xpYV;R8zoyC0XZDrc&g z^sTpXgT(yKS;n<*F}Ph=7kE~?FO{;f`AFvxXno+8pKH$py-w)%1e?D^1l1R_D@V~+ zcWnUup7vzdMDrQ#Tgc#p%Z2L*gpR}lqoKJ9%5emjxV{{*?Z7JTm+wJ~da9$-f#kFk zPTuJXK#R0Gp+mm(QAb&efu(P{_g>=^fek;OO+6uU3C4%d@4hZ2Dp<9#>DWy!YSMLG z!cb852zEbFmv*p;PK=)864Ie81BW~S1i zG*?=TApr8$*+(r>~x4<3YAB#=XJ+ zNc^;G3w(Vg&P1gi+r=fKc4au$3R3xb|Ff88fu|&PfZ}Rm_I{ST=oEQW0&BFgpT)^z ztjip$*}8j)C(vx|DDjq-b3mNl2M@r$9*Z=?Z%2+*5jA^m!#TV86qn>WXPgB)l;L;K zg`t6!v(1m7=lwOi0)h(R?KB<$@Q_`t`Oa|MMyH(&c}-IGT?}CxU!y_{9d7>!;?>B3 z@dZn4ay0Z}e#mH1GK*Ck=WPo^jo7yxAN9>jSaZlf&_nOyK}OimCuJm7A$z>~CK18G z)|=#H>I0u-MQQ>JOnqEVzYkftrz=k;U*kQ1Em>V*e?LdB1sDs# z9puAQClTXDZa5NzSyESDJdPO&gTz;4YWx^9*Frw7vayqmvfL;1WQF_yU55TM-=U;S zRgaU*t--HAB2X#@mHt9Rw~&s5MQ%(fy9jEbh=pJ~!`xUYqmo1c55_AJ1`N(_X*6nl z&er9_DMHFMM`ac>L>W<>n>4D5L`7jK^HWL*#W+I9f@CqD=;cQr#=cjoh_N~z+RX7m?6T|6u-FA@H~z7_A=^e=l#_plG^7g42i&<>60UZft<+T2Hp{MS zoR{JCGZGnC%Ta#I3mXjN1Oo|{j5guJdk-JSL+@|OIEpl}<5~t6)2$SXQbSMz$vy$5JX@xWDg%pYS@2*B zJae;;dUN06AIU63hXD>JUc&QF>^Bau*S>G@^M91z{=`V!X|ultxq-fdzQgZBe?la< z5sM?%v^s}WM>C{ap$Zu=9%72_x3lw%_yqFkE=gN;Zq4%Cwz`$KNf02wv+B;G`&_3)`p_ zaDN8sPF{N2&RMK*=z$GFjFw(9UGd$`-I@#O6oK|HbVkg?W5-6>ds3INPYNaRFt#Y5?mr$2`?`T(d9jijn%O)Jmm9YT&?c35u=jvEo!?b-dW?P7`!{=l_wdrsY zjkrLU?{LnBG=-Na#OI_qK);^d$wT$kSa~BkHTfWJvTy0YKU3g=W6QnMM0in8BKwZa zE}-AMf&`Z5ppzl}DbY-E?W{8fd`me30iKih%Sar(*yT&bIcvjJXUy>JYZlzv`?_&% z2t4YI_gApVF=^^^O~N+_Y|;h%e+xS@asKb^5t;tRVwwJlcK=(Lm>Iy%&iXgv{jbtL zA?5$rsB^IYFI&l&W^ffWElhS94hdK(I6#g_m`j9yoh^{1l2r1LXw7T z9^_|0adU8UGx1}=%6rdq&v)0Y z(%!cTl%JdowsY+eP>72L4H~oyWQ#NoeeTvof^`VPC>mg>kbK>%lTQ>=uxKI(fh_fV3BI2SHR2 zfZK--5jwzUC(OHtM2X_i#M7rB0-Jw<5b{m7{3hK8`Qpq8ln-_zjQ|nY z55?h*w22Af4#wH1QvjsPMhBdX7>NkKLZ67x{x8A51}c5i-Dz z`(q&w5)0Z{+!M;9Psjg}@`Ywf5wl|;TgbewPsUi3kK5;+ni99j}uIy?$AKMqKNus&(G4nEpv ztDskMm*J%}45*oB0DsqE0fH6i7^wS|NZ31|D<24L9u+6xi{kbg9T^EKps$ZIfNv2Q zg5u5o2^Z`9X65bpD}j+Ppky}YGXSVSKkxgasmBou4A}kgv+m;=9oDKctFk=v=F9R` zpg0j_05aeh69fDPRyqO}IH1s|5C|IDP_VBT^(@f9ALdoO9%2(1IR33_J1gj|)2vQ_ zeD{roXfwe7WL{`f0~2QVt!|+vcqq7!L%;9ay!RX7^}Fe{j`mxunL9X5RgjK#E$3Z@nyUXW{&;akE z0lz{x0UWs7+XR#U-bk<66gouMIT5cxuO23lfP%!Se|r`%Xy;}ZfPka*LsrQC`0p;d za-bh-v`z>W0~InLULu}hZi;QEdI-p3cS=+^pT9Q-4hb!QM1g}SAnOSP2my+8u8s#C z6CCQ-P8XgQ08S?1VOT&_^7=NIXq{DI#iuM4tgW%}}tB!64sxNG4}#w$wqmP#Dq(uZj8 z(dPHSQ$zo$7VO*ulG#VMq@|n4|jLql*m?T%TUgY0okl$QLrOdk}BMDcC6cfrIfxVwI6NQ9rcWk)J zQzy3&Wxl|zCg7!)3DV?Nri(Ut?Hchz+n0x%$~z9RM0h0R+GtrK$mjT2 zm#7YeDZuO(?$OlU%h8WB%xRz?GO>;>x_~?C(zd5G=(Pv)-qQGwlPKC8pB;TxXR-E} zkl%%o{5H`Exg928tCK3JFmjxk-}k^@pg*wM3D#?klOgJ4W6lyTuz*JW=4MJG*2fp9 zv7+*Dr<>h75t+NO9Xn%bRlBxlLQ+?zgkpIDl&7Fd{7npED@f0cW~wnD#Xk6hPIGDL@<7*o@x&y=JlU$xK0C`ng8Ho zreW(EI}n2Jy+$O~Q+wZ@pllBtBCF`-ApvL{9PpA-CH{!@XYOpH#XP2PH}AeoU3AZx zJJI{dL+pl0YiEd#hEesv(q?T2al$2JQt_wCX?e~_eD@namBg4$)fsM};_ITju;S}) zzIQ<*`h0WsT~tdrPimK1wHd25O)Qjs`#qsNf66}r*RO3|2_eFKjR?n%YN9lz;XT~p zrMGOkouY1rotWh4vhT+uRES{pCPoRq;y=dwedSj^aQXN-YC}(b{GP{DgxYxZb}!}x zDRcUWAf^cG+*KXOSR&vAs!!WkV-e4_#BS$OQ;{RgHvL)zf8l`TY$h>~u~(%p@KO}j zKRJicqX%6mta_5Ov8?w?@ecCd5hIz<7{XwTt^_@T0XD=D_tA?vbr z-5`aBQ>SVmh`aqE-49_HJgjaXT^o`>dt3m48@C-{6zYw%fMsH9FphhVzL83OX}2*$ zdakvr1q#dByUF%Y!Rpnm^Ybcy=YyQvJ{C)|mX}Ir$<7b#t8i0!F-&_?xnCv1^|;>6 z^L^49NzbzR#G?3+)A(Q(uU1;uL`w)y=u1u1dHdEHf703C_zha+>gp^*PFeI$WgT%m z5_58gFa@Lx9vp%K)+0$PWcxSRmj0KX(bh{pO_|j^{LcQno}-?C9`)=63s4OrHadUHqHPInhebJx_X98o60 zs&o_Wd;s~z%5t_mLMtC%Th5sp

fTjnRfN!Vm(qW-@hwdeogHQIfT-#{i=ILY3Ol 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%0A$!zpqql@eln}`;G4y$h(a;(k)4MaU7P^wwUT~M^ zdQS~k|3WH)=0(jT3w!RfnIr~5tzCA~F z4w=rAvSL#VTnhF)vgFuE(@&)#cJWyvBoVGmXZ*nRp)R;OG9Zf{=U0F+V!IyPt@j{4 zz@@W{QY~?Z-QIY)jAK7{Je@nTQkbgpr40^qDgmxIa36J4vB93uu3BGCmUpbwQWZ2h zvjP;Kxbu1qg^`4h*Nk{qX|in~!@Jq!T5`H0O1HHd-5QhJaR|y2oi0hDMP8g~-{5kA z;b*hxY#$mj{K;{%R^$ibWNa@4Z}hzt+b5Y$09+M>3>+xMU7^K-7ZGKT_KYv{3?%P1iQUyg^y-&C{i5ql73&-GAj(Srw6v|G!E1@uPRK$or#$}o$he2Rnbu=oyQVqY%0DD=W5Dd_ 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

+ /// This driver will run all Q# tests (operations named "...Test") + /// that belong to namespace HiddenShiftKata. + /// + /// To execute your tests, just type "dotnet test" from the command line. + /// + [OperationDriver(TestNamespace = "Quantum.Kata.HiddenShift")] + public void TestTarget(TestOperation op) + { + using (var sim = new QuantumSimulator()) + { + // OnLog defines action(s) performed when Q# test calls function Message + sim.OnLog += (msg) => { output.WriteLine(msg); }; + sim.OnLog += (msg) => { Debug.WriteLine(msg); }; + op.TestOperationRunner(sim); + } + } + } +} diff --git a/HiddenShift/Tests.qs b/HiddenShift/Tests.qs new file mode 100755 index 00000000000..b26965d5202 --- /dev/null +++ b/HiddenShift/Tests.qs @@ -0,0 +1,320 @@ +namespace Quantum.Kata.HiddenShift +{ + open Microsoft.Quantum.Canon; + open Microsoft.Quantum.Primitive; + open Microsoft.Quantum.Extensions.Testing; + + //-------------------------------------------------------------------- + + // We test the InnerProductOracle by testing it on all possible input + // states and comparing the results with a classical implementation. + function InnerProductClassical (arr : Int[]) : Int { + mutable res = 0; + for (i in 0 .. 2 .. Length(arr) - 1) { + if ((arr[i] == 1) && (arr[i+1] == 1)) { + set res = res + 1; + } + } + return res % 2; + } + + operation InnerProductOracle_TestCase (arr : Int[]) : Unit { + let expected = InnerProductClassical(arr); + let N = Length(arr); + using ((qs, target) = (Qubit[N], Qubit())) { + PrepareQubitRegister(qs, arr); + InnerProductOracle(qs, target); + if (expected == 1) { + X(target); + } + Adjoint PrepareQubitRegister(qs, arr); + AssertAllZero(qs); + AssertAllZero([target]); + } + } + + operation InnerProductOracle_Test () : Unit { + for (N in 2 .. 2 .. 10) { + IterateThroughCartesianPower(N, 2, InnerProductOracle_TestCase); + } + } + + //-------------------------------------------------------------------- + + // We test the QuadraticOracle by testing it with specific inputs Q and L, + // on all possible input states and comparing the results with a classical + // implementation. + function QuadraticClassical (arr : Int[], Q : Int[][], L : Int[]) : Int { + let N = Length(arr); + mutable res = 0; + for (j in 0 .. N - 1) { + set res = res + L[j]*arr[j]; + for (i in 0 .. j - 1) { + set res = res + Q[i][j] * arr[i] * arr[j]; + } + set res = res % 2; + } + return res; + } + + operation QuadraticOracle_TestCase (arr : Int[], Q : Int[][], L : Int[]) : Unit { + let expected = QuadraticClassical(arr, Q, L); + let N = Length(arr); + using ((qs, target) = (Qubit[N], Qubit())) { + PrepareQubitRegister(qs, arr); + QuadraticOracle(qs, target, Q, L); + if (expected == 1) { + X(target); + } + Adjoint PrepareQubitRegister(qs, arr); + AssertAllZero(qs); + AssertAllZero([target]); + } + } + + operation QuadraticOracle_Test () : Unit { + mutable Q = new Int[][2]; + set Q[0] = [0, 1]; + set Q[1] = [0, 0]; + mutable L = [1, 1]; + IterateThroughCartesianPower(Length(L), 2, QuadraticOracle_TestCase(_, Q, L)); + + set Q = new Int[][4]; + set Q[0] = [0, 1, 1, 1]; + set Q[1] = [0, 0, 1, 1]; + set Q[2] = [0, 0, 0, 1]; + set Q[3] = [0, 0, 0, 0]; + set L = [1, 0, 0, 0]; + IterateThroughCartesianPower(Length(L), 2, QuadraticOracle_TestCase(_, Q, L)); + + set Q = new Int[][6]; + set Q[0] = [0, 1, 1, 1, 1, 1]; + set Q[1] = [0, 0, 1, 1, 1, 1]; + set Q[2] = [0, 0, 0, 1, 1, 1]; + set Q[3] = [0, 0, 0, 0, 1, 1]; + set Q[4] = [0, 0, 0, 0, 0, 1]; + set Q[5] = [0, 0, 0, 0, 0, 0]; + set L = [0, 1, 0, 1, 0, 1]; + IterateThroughCartesianPower(Length(L), 2, QuadraticOracle_TestCase(_, Q, L)); + } + + //-------------------------------------------------------------------- + + operation ShiftedOracle_TestCase (s : Int[]) : Unit { + let f = InnerProductOracle_Reference(_, _); + let fshifted = ShiftedOracle(f, s); + let expected = ShiftedOracle_Reference(f, s); + AssertTwoOraclesAreEqual(Length(s) .. Length(s), fshifted, expected); + } + + operation ShiftedOracle_Test () : Unit { + for (N in 2 .. 2 .. 6) { + IterateThroughCartesianPower(N, 2, ShiftedOracle_TestCase); + } + } + + //-------------------------------------------------------------------- + + operation PhaseFlipOracle_Test () : Unit { + let f = InnerProductOracle_Reference(_, _); + let fphased = PhaseFlipOracle(f); + let expected = PhaseFlipOracle_Reference(f); + for (N in 2 .. 2 .. 6) { + AssertOperationsEqualReferenced(fphased, expected, N); + } + } + + //-------------------------------------------------------------------- + + operation WalshHadamard_Test () : Unit { + for (N in 1 .. 6) { + AssertOperationsEqualReferenced(WalshHadamard, WalshHadamard_Reference, N); + } + } + + operation DeterministicHiddenShiftSolution_TestCase (s : Int[]) : Unit { + let N = Length(s); + // The choices of f and g are arbitrary for testing purposes. + let f = InnerProductOracle_Reference(_, _); + let g = ShiftedOracle_Reference(f, s); + let phasef = PhaseFlipOracle_Reference(f); + let phaseg = PhaseFlipOracle_Reference(g); + let res = DeterministicHiddenShiftSolution(N, phaseg, phasef); + for (j in 0 .. N-1) { + if (not (res[j] == s[j])) { + fail $"Got {res}. Expected {s}"; + } + } + } + + operation DeterministicHiddenShiftSolution_Test () : Unit { + for (N in 2 .. 2 .. 4) { + IterateThroughCartesianPower(N, 2, DeterministicHiddenShiftSolution_TestCase); + } + } + + //-------------------------------------------------------------------- + + operation HidingFunctionOracle_TestCase (s : Int[]) : Unit { + using (b = Qubit()) { + // The choices of f and g are arbitrary for testing purposes. + let f = InnerProductOracle_Reference(_, _); + let g = ShiftedOracle_Reference(f, s); + let hUser = HidingFunctionOracle(PhaseFlipOracle_Reference(f), PhaseFlipOracle_Reference(g)); + let hRef = HidingFunctionOracle_Reference(PhaseFlipOracle_Reference(f), PhaseFlipOracle_Reference(g)); + let nqubits = Length(s); + + AssertTwoHidingOraclesAreEqual(nqubits .. nqubits, hUser(b, _, _), hRef(b, _, _)); + X(b); + AssertTwoHidingOraclesAreEqual(nqubits .. nqubits, hUser(b, _, _), hRef(b, _, _)); + X(b); + } + } + + operation HidingFunctionOracle_Test () : Unit { + for (N in 2 .. 2 .. 4) { + IterateThroughCartesianPower(N, 2, HidingFunctionOracle_TestCase); + } + } + + operation HiddenShiftIteration_TestCase (s : Int[]) : Unit { + let N = Length(s); + // The choices of f and g are arbitrary for testing purposes. + let f = InnerProductOracle_Reference(_, _); + let g = ShiftedOracle_Reference(f, s); + let phasef = PhaseFlipOracle_Reference(f); + let phaseg = PhaseFlipOracle_Reference(g); + + // Verify that HiddenShiftIteration does not return all zeros by trying up to 4 attempts. + mutable res = new Int[N]; + let num_iterations = 4; + mutable iterations = num_iterations; + repeat { + set res = HiddenShiftIteration(N, phasef, phaseg); + set iterations = iterations - 1; + } until ((iterations == 0) || (QuickRank([res]) == 1)) + fixup {} + + if (QuickRank([res]) == 0) { + fail $"HiddenShiftIteration did not produce a non-zero result in {num_iterations} iterations"; + } + + mutable sum = res[0]; + for (i in 1 .. N) { + set sum = sum + s[i - 1] * res[i]; + } + if (not (sum % 2 == 0)) { + fail $"{res} is not orthogonal to (1, {s})"; + } + } + + // Implements the full Hidden Subgroup Based Hidden Shift Algorithm to produce s. + operation GeneralizedHiddenShift(n: Int, Uf : ((Qubit[]) => Unit : Adjoint, Controlled), Ug : ((Qubit[]) => Unit : Adjoint, Controlled)) : Int[] { + mutable results = new Int[][n+1]; + for (i in 0 .. Length(results) - 1) { + set results[i] = new Int[n+1]; + } + repeat { + let newResult = HiddenShiftIteration(n, Uf, Ug); + + let currentRank = RankMod2(results); + set results[currentRank] = newResult; + } until (Length(KernelMod2(results)) == 1) + fixup {} + + return (KernelMod2(results))[0]; + } + + operation GeneralizedHiddenShift_TestCase (s : Int[]) : Unit { + let f = InnerProductOracle_Reference(_, _); + let g = ShiftedOracle_Reference(f, s); + let phasef = PhaseFlipOracle_Reference(f); + let phaseg = PhaseFlipOracle_Reference(g); + + let res = (GeneralizedHiddenShift(Length(s), phasef, phaseg))[1 .. Length(s)]; + for (i in 0 .. Length(s) - 1) { + if (not (s[i] == res[i])) { + fail $"Got {res}. Expected {s}"; + } + } + } + + operation HiddenShiftIteration_Test () : Unit { + for (N in 2 .. 2 .. 4) { + IterateThroughCartesianPower(N, 2, HiddenShiftIteration_TestCase); + } + for (N in 2 .. 2 .. 4) { + IterateThroughCartesianPower(N, 2, GeneralizedHiddenShift_TestCase); + } + } + + // Utilities + // ------------------------------------------------------ + operation PrepareQubitRegister (qs : Qubit[], arr : Int[]) : Unit { + body (...) { + let N = Length(qs); + for (i in 0 .. N - 1) { + if (arr[i] == 1) { + X(qs[i]); + } + } + } + adjoint auto; + } + + operation ApplyHidingOracleA (qs : Qubit[], oracle : ((Qubit[], Qubit[]) => Unit : Adjoint)) : Unit { + + body (...) { + let N = Length(qs)/2; + oracle(qs[0 .. N-1], qs[N..2*N-1]); + } + + adjoint invert; + } + + operation AssertTwoHidingOraclesAreEqual ( + nQubits : Range, + oracle1 : ((Qubit[], Qubit[]) => Unit : Adjoint), + oracle2 : ((Qubit[], Qubit[]) => Unit : Adjoint)) : Unit { + let sol = ApplyHidingOracleA(_, oracle1); + let refSol = ApplyHidingOracleA(_, oracle2); + + for (i in nQubits) { + AssertOperationsEqualReferenced(sol, refSol, 2 * i); + } + } + + // These operations are taken from the DeutschJozsaAlgorithm Kata. + operation ApplyOracleA (qs : Qubit[], oracle : ((Qubit[], Qubit) => Unit : Adjoint)) : Unit { + + body (...) { + let N = Length(qs); + oracle(qs[0 .. N - 2], qs[N - 1]); + } + + adjoint invert; + } + + operation ApplyOracleWithOutputArrA (qs : Qubit[], oracle : ((Qubit[], Qubit[]) => Unit : Adjoint), outputSize : Int) : Unit { + + body (...) { + let N = Length(qs); + oracle(qs[0 .. (N - 1) - outputSize], qs[N - outputSize .. N - 1]); + } + + adjoint invert; + } + + operation AssertTwoOraclesAreEqual ( + nQubits : Range, + oracle1 : ((Qubit[], Qubit) => Unit : Adjoint), + oracle2 : ((Qubit[], Qubit) => Unit : Adjoint)) : Unit { + let sol = ApplyOracleA(_, oracle1); + let refSol = ApplyOracleA(_, oracle2); + + for (i in nQubits) { + AssertOperationsEqualReferenced(sol, refSol, i + 1); + } + } + +}