public void StabilizerStateSerializesCorrectly()
        {
            var state = new StabilizerState
            {
                NQubits = 2,
                Table   = new StabilizerState.TableArray
                {
                    Data = new List <bool>
                    {
                        true, false, false, false, true, false
                    },
                    Dimensions = new List <int> {
                        2, 3
                    }
                }
            };
            var json         = JsonSerializer.Serialize <Microsoft.Quantum.Experimental.State>(state);
            var expectedJson = @"{
                ""n_qubits"": 2,
                ""data"": {
                    ""Stabilizer"": {
                        ""n_qubits"": 2,
                        ""table"": {
                            ""v"": 1,
                            ""dim"": [2, 3],
                            ""data"": [true,false,false,false,true,false]
                        }
                    }
                }
            }";

            expectedJson.AssertJsonIsEqualTo(json);
        }
 public void StabilizerArrayDeserializesCorrectly()
 {
     var expectedJson = @"
         {
             ""v"": 1,
             ""dim"": [2, 3],
             ""data"": [true,false,false,false,true,false]
         }
     ";
     var reader       = new Utf8JsonReader(System.Text.Encoding.UTF8.GetBytes(expectedJson));
     var array        = JsonSerializer.Deserialize <StabilizerState.TableArray>(ref reader);
     var state        = new StabilizerState
     {
         NQubits = 2,
         Table   = array
     };
 }