microsoft/qdk

Public

mirrored from https://github.com/microsoft/qdkAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v1.25.1

Branches

Tags

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

Clone

HTTPS

Download ZIP

source/paulimer/src/quantum_core/tests.rs

42lines · modecode

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4use super::{id, x, y, z, All, Axis, DirectedAxis, PauliMatrix, PauliObservable};
5
6#[test]
7fn neg_neg_is_identity() {
8 for a in PauliObservable::all() {
9 assert_eq!(a, -(-a));
10 }
11 assert_eq!(x(0), -(-x(0)));
12 assert_eq!(y(0), -(-y(0)));
13 assert_eq!(z(0), -(-z(0)));
14 assert_eq!(id(0), -(-id(0)));
15}
16
17#[test]
18fn qubit_then_pauli_order() {
19 assert!(x(1) < x(2));
20 assert!(x(1) < y(1));
21 assert!(y(1) < x(2));
22}
23
24#[test]
25fn axis_xor() {
26 let result = (Axis::X as isize) ^ (Axis::Z as isize);
27 assert_eq!(result, Axis::Y as isize);
28}
29
30#[test]
31fn pauli_matrix_from_axis() {
32 assert_eq!(PauliMatrix::X as isize, Axis::X as isize);
33 assert_eq!(PauliMatrix::Y as isize, Axis::Y as isize);
34 assert_eq!(PauliMatrix::Z as isize, Axis::Z as isize);
35}
36
37#[test]
38fn directed_axis_from_axis() {
39 assert_eq!(DirectedAxis::PlusX as isize, Axis::X as isize);
40 assert_eq!(DirectedAxis::PlusY as isize, Axis::Y as isize);
41 assert_eq!(DirectedAxis::PlusZ as isize, Axis::Z as isize);
42}
43