def test_traverse(tmpdir, mocker): dam = DocumentArrayMemmap(tmpdir) dam.extend(random_docs(100)) mock = mocker.Mock() for c in dam.traverse_flat(['c']): assert c.granularity == 1 mock() mock.assert_called()
def test_match_inclusive_dam(tmpdir, only_id): """Call match function, while the other :class:`DocumentArray` is itself or have same :class:`Document`. """ # The document array da1 match with itself. dam = DocumentArrayMemmap(tmpdir) dam.extend([ Document(embedding=np.array([1, 2, 3])), Document(embedding=np.array([1, 0, 1])), Document(embedding=np.array([1, 1, 2])), ]) dam.match(dam, only_id=only_id) assert len(dam) == 3 traversed = dam.traverse_flat(traversal_paths=['m', 'mm', 'mmm']) assert len(list(traversed)) == 9 # The document array da2 shares same documents with da1 da2 = DocumentArray( [Document(embedding=np.array([4, 1, 3])), dam[0], dam[1]]) dam.match(da2, only_id=only_id) assert len(da2) == 3 traversed = dam.traverse_flat(traversal_paths=['m', 'mm', 'mmm']) assert len(list(traversed)) == 9
def test_traverse_flat_root_itself(tmpdir): dam = DocumentArrayMemmap(tmpdir) dam.extend([Document() for _ in range(100)]) res = dam.traverse_flat(['r']) assert isinstance(res, DocumentArrayMemmap) assert id(res) == id(dam)