QuantumLibraries icon indicating copy to clipboard operation
QuantumLibraries copied to clipboard

New checks are required in SequenceL and SequenceI

Open weucode opened this issue 2 years ago • 1 comments

Describe the bug The checks in SequenceL and SequenceI are not complete now, the following situations will still throw unhandled exceptions. It suggested that update the boundary value for to-from.

To Reproduce Testcase1

mutable result = SequenceL(0L, 9223372036854775806L);

Result1

Unhandled exception. Microsoft.Quantum.Simulation.Core.ExecutionFailException: `Length(bits)` must be less than 64, but was 64.

Testcas2( one of the three statements will throw the exception in Result2)

mutable result = SequenceL(0L, 2147483647L); // or
mutable result = SequenceI(0, 9223372036854775806); //or
mutable result = SequenceI(0, 2147483647);

Result2

Unhandled exception. System.OverflowException: Value was either too large or too small for an Int32.

Testcase3( one of the two statements will throw the exception in Result3)

mutable result = SequenceL(0L, 2147483646L); // or
mutable result = SequenceI(0, 2147483646);

Result3

Unhandled exception. System.OutOfMemoryException: Array dimensions exceeded supported range.

System information operating system : Windows10 & Ubuntu18.04 dotnet version : 7.0.100 QDK : 0.27.258160

weucode avatar Mar 03 '23 12:03 weucode

I'd like to submit a PR to fix two APIs, but the value of to-from that will not throw an exception may be uncertain. Would you like to give me some suggestions about the proper value of to-from? @msoeken

weucode avatar Mar 28 '23 02:03 weucode