from strawberryfields.result import Result

pytestmark = pytest.mark.api


test_samples = np.ones((2, 3, 4, 5))
meta_array = np.array([1, 0, 1, 2])
meta_matrix = np.array([[1, 2], [3, 4]])

raw_results = {
    "output": [test_samples],
    "meta_array": meta_array,
    "meta_matrix": meta_matrix,
}

base_gaussian_state = BaseGaussianState((np.array([0.0, 0.0]), np.identity(2)), 1)


class TestResult:
    """Tests for the ``Result`` class."""

    def test_samples(self):
        """Test that ``samples`` is correctly returned."""
        result = Result(raw_results)
        assert result.samples is not None
        assert np.array_equal(result.samples, test_samples)

    def test_samples_dict(self):
        """Test that ``samples_dict`` is correctly returned."""
        samples_dict = {0: [1, 2, 3], 1: [4, 5]}
        result = Result(raw_results, samples_dict=samples_dict)