microsoft/qdk

Public

mirrored fromhttps://github.com/microsoft/qdkAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
sccarda/BlochLearning

Branches

Tags

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

Clone

HTTPS

Download ZIP

library/src/tests/core.rs

117lines · modecode

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4use super::test_expression;
5use qsc::interpret::{Value, ValueRange};
6
7// Tests for the core namespace
8
9#[test]
10fn check_range_1_5() {
11 test_expression(
12 "{let r = 1..5; [RangeStart(r), RangeStep(r), RangeEnd(r)]}",
13 &Value::Array(vec![Value::Int(1), Value::Int(1), Value::Int(5)].into()),
14 );
15}
16
17#[test]
18fn check_range_2_3_4() {
19 test_expression(
20 "{let r = 2..3..4; [RangeStart(r), RangeStep(r), RangeEnd(r)]}",
21 &Value::Array(vec![Value::Int(2), Value::Int(3), Value::Int(4)].into()),
22 );
23}
24
25#[test]
26fn check_range_2_3_n4() {
27 test_expression(
28 "{let r = 2..3..-4; [RangeStart(r), RangeStep(r), RangeEnd(r)]}",
29 &Value::Array(vec![Value::Int(2), Value::Int(3), Value::Int(-4)].into()),
30 );
31}
32
33#[test]
34fn check_range_n2_3_n4() {
35 test_expression(
36 "{let r = -2..3..-4; [RangeStart(r), RangeStep(r), RangeEnd(r)]}",
37 &Value::Array(vec![Value::Int(-2), Value::Int(3), Value::Int(-4)].into()),
38 );
39}
40
41#[test]
42fn check_range_n2_n3_n4() {
43 test_expression(
44 "{let r = -2..-3..-4; [RangeStart(r), RangeStep(r), RangeEnd(r)]}",
45 &Value::Array(vec![Value::Int(-2), Value::Int(-3), Value::Int(-4)].into()),
46 );
47}
48
49#[test]
50fn check_range_empty_1_5() {
51 test_expression("IsRangeEmpty(1..5)", &Value::Bool(false));
52}
53
54#[test]
55fn check_range_empty_1_10_5() {
56 test_expression("IsRangeEmpty(1..10..5)", &Value::Bool(false));
57}
58
59#[test]
60fn check_range_empty_3_2() {
61 test_expression("IsRangeEmpty(3..2)", &Value::Bool(true));
62}
63
64#[test]
65fn check_range_empty_2_n1_3() {
66 test_expression("IsRangeEmpty(2..-1..3)", &Value::Bool(true));
67}
68
69#[test]
70fn check_range_empty_n2_n1_n3() {
71 test_expression("IsRangeEmpty(-2..-1..-3)", &Value::Bool(false));
72}
73
74#[test]
75fn check_range_reverse_1_5() {
76 test_expression(
77 "RangeReverse(1..5)",
78 &Value::Range(
79 ValueRange {
80 start: Some(5),
81 step: -1,
82 end: Some(1),
83 }
84 .into(),
85 ),
86 );
87}
88
89#[test]
90fn check_range_reverse_1_n1_5() {
91 test_expression(
92 "RangeReverse(1..-1..5)",
93 &Value::Range(
94 ValueRange {
95 start: Some(5),
96 step: 1,
97 end: Some(1),
98 }
99 .into(),
100 ),
101 );
102}
103
104#[test]
105fn check_range_reverse_1_7_10() {
106 test_expression(
107 "RangeReverse(1..7..10)",
108 &Value::Range(
109 ValueRange {
110 start: Some(8),
111 step: -7,
112 end: Some(1),
113 }
114 .into(),
115 ),
116 );
117}
118