# Quantumsim software meeting 2020-11-27
## Ensuring that new Quantumsim works correctly
- It is worth to write a test for surf17 that uncompiled and compiled versions of the circuit act identically
- There is an ambiguity in compilation of circuits: single-qubit gates can be merged in the two-qubit gates to the left or to the right, leading to the same circuits effectively, but PTMs will be different. Brian's code merges all PTMs to the right (in the chronological queue). If we want to match PTMs in the old and new code, we need to take that into account.
- Ensure that basis truncation is covered by tests (take random matrix in sub basis, expand to full basis and compile to ensure the truncation is correct).
- Make test of simple 3 or 7 qubit circuit, where we ensure PTMs are the same and the order in which they are applied is the same. Then compare the circuits with and without compilation between and new version - should be same DM. Test will tell us which compiler messes up things.
- Boris does these tests
## Updates from refactoring side
- Most of work is going in [this branch](https://gitlab.com/quantumsim/quantumsim/-/tree/enh/factor_out_operations). @slavoutich factored out Operation class and merged its functionality to the Gate/Circuit class, this is needed for an advanced circuit processing and was a design mistake initially.
- Controller is not ready and needs to be redesigned, so merging is not yet possible.
- Toposort needs to be ported on refactored branch after merging ([toposort branch](https://gitlab.com/quantumsim/quantumsim/-/tree/enh/circuit_ordering))
- During the redesign of controller we need to think about what to do with models and setpus and may be merge some of them in one entity.