import bson
import numpy as np
from numpy.testing import assert_equal
import pytest

from arctic.store._ndarray_store import NdarrayStore, _APPEND_COUNT
from arctic.store.version_store import register_versioned_storage

from tests.integration.store.test_version_store import _query

register_versioned_storage(NdarrayStore)


def test_append_simple_ndarray(library):
    ndarr = np.ones(1000, dtype='int64')
    library.write('MYARR', ndarr)
    library.append('MYARR', np.ones(1000, dtype='int64'))
    library.append('MYARR', np.ones(1000, dtype='int64'))
    library.append('MYARR', np.ones(2005, dtype='int64'))
    saved_arr = library.read('MYARR').data
    assert np.all(np.ones(5005, dtype='int64') == saved_arr)


def test_append_simple_ndarray_promoting_types(library):
    ndarr = np.ones(100, dtype='int64')
    library.write('MYARR', ndarr)
    library.append('MYARR', np.ones(100, dtype='float64'))
    library.append('MYARR', np.ones(100, dtype='int64'))
    library.append('MYARR', np.ones(205, dtype='float64'))
    saved_arr = library.read('MYARR').data
    assert np.all(np.ones(505, dtype='float64') == saved_arr)
import bson
from datetime import datetime as dt, timedelta as dtd
from mock import patch
import numpy as np
from numpy.testing import assert_equal
from pymongo.server_type import SERVER_TYPE
import pytest

from arctic.store._ndarray_store import NdarrayStore, _APPEND_COUNT
from arctic.store.version_store import register_versioned_storage

from tests.integration.store.test_version_store import _query

register_versioned_storage(NdarrayStore)


def test_append_simple_ndarray(library):
    ndarr = np.ones(1000, dtype='int64')
    library.write('MYARR', ndarr)
    library.append('MYARR', np.ones(1000, dtype='int64'))
    library.append('MYARR', np.ones(1000, dtype='int64'))
    library.append('MYARR', np.ones(2005, dtype='int64'))
    saved_arr = library.read('MYARR').data
    assert np.all(np.ones(5005, dtype='int64') == saved_arr)


def test_append_simple_ndarray_promoting_types(library):
    ndarr = np.ones(100, dtype='int64')
    library.write('MYARR', ndarr)
    library.append('MYARR', np.ones(100, dtype='float64'))
    library.append('MYARR', np.ones(100, dtype='int64'))