mirror of
https://github.com/vllm-project/vllm.git
synced 2026-06-06 00:16:14 +00:00
b0755523dc
Signed-off-by: milesial <milesial@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
import pytest
|
|
import torch
|
|
|
|
from vllm.multimodal.inputs import PlaceholderRange
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"is_embed,expected",
|
|
[
|
|
(None, 5),
|
|
(torch.tensor([True, True, True, True, True]), 5),
|
|
(torch.tensor([False, False, False, False, False]), 0),
|
|
(torch.tensor([True, False, True, False, True]), 3),
|
|
(torch.tensor([True]), 1),
|
|
],
|
|
)
|
|
def test_placeholder_range_get_num_embeds(is_embed, expected):
|
|
length = len(is_embed) if is_embed is not None else 5
|
|
pr = PlaceholderRange(offset=0, length=length, is_embed=is_embed)
|
|
assert pr.get_num_embeds() == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"is_embed,expected",
|
|
[
|
|
(None, None),
|
|
(torch.tensor([False, True, False, True, True]), [0, 1, 1, 2, 3]),
|
|
(torch.tensor([True, True, True]), [1, 2, 3]),
|
|
],
|
|
)
|
|
def test_placeholder_range_embeds_cumsum(is_embed, expected):
|
|
length = len(is_embed) if is_embed is not None else 5
|
|
pr = PlaceholderRange(offset=0, length=length, is_embed=is_embed)
|
|
|
|
if expected is None:
|
|
assert pr.embeds_cumsum is None
|
|
return
|
|
|
|
assert pr.embeds_cumsum == expected
|
|
# cached_property should return the same object on repeated access
|
|
assert pr.embeds_cumsum is pr.embeds_cumsum
|