Page 6 of 8
Unit Tests
The Quantum Algebra supplement is accompanied by a series of unit tests. They are intended to ensure that changes to the code remain executable.
At the same time, it helps to track which rules lead to which simplifications.
(* Combine product of Integrations *) Test[ QAIntegrate[Subscript[x, 1], V, 3, x] QAIntegrate[Subscript[y, 2], V, 3, y], QAIntegrate[Subscript[x, 1] Subscript[y, 2], V, 3, x, y], TestID->"Integrate-20181213-P3R4W5" ] (* Apply DiracDelta in Integrate about 2 integration ranges *) Test[ QAIntegrate[ Subscript[x, 1] Subscript[y, 2] * DiracDelta[Subscript[x, 1] - Subscript[y, 1], Subscript[x, 2] - Subscript[y, 2], Subscript[x, 3] - Subscript[y, 3]], V, 3, x, y], QAIntegrate[Subscript[x, 1] Subscript[x, 2], V, 3, x], TestID->"Integrate-20181213-N8K6H2" ] (* Integrate about Exponential resolved to DiracDelta *) Test[ QAIntegrate[ Power[E, I (Subscript[k, 1] (Subscript[x, 1] - Subscript[y, 1]) + Subscript[k, 2] (Subscript[x, 2] - Subscript[y, 2]))], Infinity, 2, k], DiracDelta[Subscript[x, 1] - Subscript[y, 1], Subscript[x, 2] - Subscript[y, 2]] 4 Pi^2, TestID->"Integrate-20181216-P1R1T9" ] (* Test of Name Ordering Rule, op1 ** op2 are in reverse order *) Test[ (op1 = Operator[q, "H", { Subscript[k, 1], Subscript[k, 2] }, {}]; op2 = Operator[p, "H", { Subscript[l, 1], Subscript[l, 2] }, {}]; (op1 ** op2) /. { DefineNameOrderingRule[False, 2] }), op2 ** op1, TestID->"NameOrdering-20181226-X4S4F9" ] (* Derivation of an Operator Product *) Test[ QAD[Operator[a, { Subscript[x, 1] }, {}] ** Operator[b, { Subscript[x, 1] }, { s }], Subscript[x, 1]], QAD[Operator[a, { Subscript[x, 1] }, {}], Subscript[x, 1]] ** Operator[b, { Subscript[x, 1] }, { s }] + Operator[a, { Subscript[x, 1] }, {}] ** QAD[Operator[b, { Subscript[x, 1] }, { s }], Subscript[x, 1]], TestID->"Derivation-20181217-L0J8L0" ]