Unverified Commit d1ad2a57 authored by Lily Liu's avatar Lily Liu Committed by GitHub
Browse files

[V1] [Spec Decode] Fix ngram tests (#14878)

parent b82662d9
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
import pytest
from vllm.v1.spec_decode.ngram_proposer import NgramProposer import numpy as np
from vllm.v1.utils import ConstantList
from vllm.v1.spec_decode.ngram_proposer import (_find_subarray_kmp,
_kmp_lps_array)
@pytest.fixture
def proposer():
return NgramProposer()
def test_kmp_lps_array():
np.testing.assert_array_equal(_kmp_lps_array(np.array([])), np.array([]))
np.testing.assert_array_equal(_kmp_lps_array(np.array([1])), np.array([0]))
np.testing.assert_array_equal(_kmp_lps_array(np.array([1, 1, 1])),
np.array([0, 1, 2]))
np.testing.assert_array_equal(_kmp_lps_array(np.array([1, 2, 3, 4])),
np.array([0, 0, 0, 0]))
np.testing.assert_array_equal(_kmp_lps_array(np.array([1, 2, 1, 2, 3])),
np.array([0, 0, 1, 2, 0]))
def test_kmp_lps_array(proposer):
assert proposer._kmp_lps_array([]) == []
assert proposer._kmp_lps_array([1]) == [0]
assert proposer._kmp_lps_array([1, 1, 1]) == [0, 1, 2]
assert proposer._kmp_lps_array([1, 2, 3, 4]) == [0, 0, 0, 0]
assert proposer._kmp_lps_array([1, 2, 1, 2, 3]) == [0, 0, 1, 2, 0]
def test_find_subarray_kmp():
def test_find_subarray_kmp(proposer): X = np.array([1, 2, 3, 4, 1, 2, 3, 5, 6])
X = ConstantList([1, 2, 3, 4, 1, 2, 3, 5, 6]) assert _find_subarray_kmp(X, 2, 2) is None
assert proposer._find_subarray_kmp(X, 2, 2) is None X = np.array([1, 2, 3, 4, 1, 2, 3])
X = ConstantList([1, 2, 3, 4, 1, 2, 3]) np.testing.assert_array_equal(_find_subarray_kmp(X, 2, 3),
assert proposer._find_subarray_kmp(X, 2, 3) == [4, 1, 2] np.array([4, 1, 2]))
assert proposer._find_subarray_kmp(X, 2, 2) == [4, 1] np.testing.assert_array_equal(_find_subarray_kmp(X, 2, 2), np.array([4,
assert proposer._find_subarray_kmp(X, 1, 3) == [4, 1, 2] 1]))
assert proposer._find_subarray_kmp(X, 1, 2) == [4, 1] np.testing.assert_array_equal(_find_subarray_kmp(X, 1, 3),
X = ConstantList([1, 3, 6, 2, 3, 4, 1, 2, 3]) np.array([4, 1, 2]))
assert proposer._find_subarray_kmp(X, 2, 3) == [4, 1, 2] np.testing.assert_array_equal(_find_subarray_kmp(X, 1, 2), np.array([4,
1]))
X = np.array([1, 3, 6, 2, 3, 4, 1, 2, 3])
np.testing.assert_array_equal(_find_subarray_kmp(X, 2, 3),
np.array([4, 1, 2]))
# Return on the first match # Return on the first match
assert proposer._find_subarray_kmp(X, 1, 3) == [6, 2, 3] np.testing.assert_array_equal(_find_subarray_kmp(X, 1, 3),
\ No newline at end of file np.array([6, 2, 3]))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment