diff options
Diffstat (limited to 'native')
-rw-r--r-- | native/jni/Android.mk | 4 | ||||
-rw-r--r-- | native/jni/CleanupNativeFileList.mk | 1 | ||||
-rw-r--r-- | native/jni/HostUnitTests.mk | 53 | ||||
-rw-r--r-- | native/jni/NativeFileList.mk | 3 | ||||
-rwxr-xr-x | native/jni/run-tests.sh | 29 | ||||
-rw-r--r-- | native/jni/src/suggest/policyimpl/typing/scoring_params.cpp | 4 | ||||
-rw-r--r-- | native/jni/src/suggest/policyimpl/typing/scoring_params.h | 4 | ||||
-rw-r--r-- | native/jni/src/suggest/policyimpl/typing/typing_weighting.h | 4 | ||||
-rw-r--r-- | native/jni/tests/utils/autocorrection_threshold_utils_test.cpp | 39 |
9 files changed, 134 insertions, 7 deletions
diff --git a/native/jni/Android.mk b/native/jni/Android.mk index c1372bd70..5c117cea9 100644 --- a/native/jni/Android.mk +++ b/native/jni/Android.mk @@ -87,6 +87,8 @@ LOCAL_NDK_STL_VARIANT := c++_static LOCAL_LDFLAGS += -ldl include $(BUILD_SHARED_LIBRARY) - #################### Clean up the tmp vars include $(LOCAL_PATH)/CleanupNativeFileList.mk + +#################### Unit test on host environment +include $(LOCAL_PATH)/HostUnitTests.mk diff --git a/native/jni/CleanupNativeFileList.mk b/native/jni/CleanupNativeFileList.mk index 5420f16f9..1738f8c58 100644 --- a/native/jni/CleanupNativeFileList.mk +++ b/native/jni/CleanupNativeFileList.mk @@ -13,5 +13,6 @@ # limitations under the License. LATIN_IME_CORE_SRC_FILES := +LATIN_IME_CORE_TEST_FILES := LATIN_IME_JNI_SRC_FILES := LATIN_IME_SRC_DIR := diff --git a/native/jni/HostUnitTests.mk b/native/jni/HostUnitTests.mk new file mode 100644 index 000000000..828edce61 --- /dev/null +++ b/native/jni/HostUnitTests.mk @@ -0,0 +1,53 @@ +# Copyright (C) 2014 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LOCAL_PATH := $(call my-dir) + +###################################### +include $(CLEAR_VARS) + +include $(LOCAL_PATH)/NativeFileList.mk + +#################### Host library for unit test +# TODO: Remove -std=c++11 once it is set by default on host build. +LATIN_IME_SRC_DIR := src +LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function +LOCAL_CLANG := true +LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR) +LOCAL_IS_HOST_MODULE := true +LOCAL_MODULE := liblatinime_host_static_for_unittests +LOCAL_MODULE_TAGS := optional +LOCAL_NDK_STL_VARIANT := c++_static +LOCAL_SRC_FILES := $(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES)) +include $(BUILD_HOST_STATIC_LIBRARY) + +#################### Host native tests +include $(CLEAR_VARS) +LATIN_IME_TEST_SRC_DIR := tests +# TODO: Remove -std=c++11 once it is set by default on host build. +LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function +LOCAL_CLANG := true +LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR) +LOCAL_IS_HOST_MODULE := true +LOCAL_MODULE := liblatinime_host_unittests +LOCAL_MODULE_TAGS := tests +LOCAL_NDK_STL_VARIANT := c++_static +LOCAL_SRC_FILES := $(addprefix $(LATIN_IME_TEST_SRC_DIR)/, $(LATIN_IME_CORE_TEST_FILES)) +LOCAL_STATIC_LIBRARIES += liblatinime_host_static_for_unittests libgtest_host libgtest_main_host +include $(BUILD_HOST_NATIVE_TEST) + +#################### Clean up the tmp vars +LATIN_IME_SRC_DIR := +LATIN_IME_TEST_SRC_DIR := +include $(LOCAL_PATH)/CleanupNativeFileList.mk diff --git a/native/jni/NativeFileList.mk b/native/jni/NativeFileList.mk index 2ee4caa42..3da9d5632 100644 --- a/native/jni/NativeFileList.mk +++ b/native/jni/NativeFileList.mk @@ -99,3 +99,6 @@ LATIN_IME_CORE_SRC_FILES := \ char_utils.cpp \ log_utils.cpp \ time_keeper.cpp) + +LATIN_IME_CORE_TEST_FILES := \ + utils/autocorrection_threshold_utils_test.cpp diff --git a/native/jni/run-tests.sh b/native/jni/run-tests.sh new file mode 100755 index 000000000..5b60e0d65 --- /dev/null +++ b/native/jni/run-tests.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Copyright 2014, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if [[ $(type -t mmm) != function ]]; then +echo "Usage:" 1>&2 +echo " source $0" 1>&2 +echo " or" 1>&2 +echo " . $0" 1>&2 +if [[ ${BASH_SOURCE[0]} != $0 ]]; then return; else exit 1; fi +fi + +pushd $PWD > /dev/null +cd $(gettop) +mmm -j16 packages/inputmethods/LatinIME/native/jni || \ + make -j16 liblatinime_host_unittests +${ANDROID_HOST_OUT}/bin/liblatinime_host_unittests +popd > /dev/null
\ No newline at end of file diff --git a/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp b/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp index c4c57169b..fa9600c74 100644 --- a/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp +++ b/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp @@ -52,8 +52,8 @@ const float ScoringParams::SUBSTITUTION_COST = 0.3806f; const float ScoringParams::COST_NEW_WORD = 0.0314f; const float ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE = 0.3224f; const float ScoringParams::DISTANCE_WEIGHT_LANGUAGE = 1.1214f; -const float ScoringParams::COST_FIRST_LOOKAHEAD = 0.4836f; -const float ScoringParams::COST_LOOKAHEAD = 0.00624f; +const float ScoringParams::COST_FIRST_COMPLETION = 0.4836f; +const float ScoringParams::COST_COMPLETION = 0.00624f; const float ScoringParams::HAS_PROXIMITY_TERMINAL_COST = 0.0683f; const float ScoringParams::HAS_EDIT_CORRECTION_TERMINAL_COST = 0.0362f; const float ScoringParams::HAS_MULTI_WORD_TERMINAL_COST = 0.4182f; diff --git a/native/jni/src/suggest/policyimpl/typing/scoring_params.h b/native/jni/src/suggest/policyimpl/typing/scoring_params.h index de7410d39..b66962019 100644 --- a/native/jni/src/suggest/policyimpl/typing/scoring_params.h +++ b/native/jni/src/suggest/policyimpl/typing/scoring_params.h @@ -59,8 +59,8 @@ class ScoringParams { static const float COST_NEW_WORD; static const float COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE; static const float DISTANCE_WEIGHT_LANGUAGE; - static const float COST_FIRST_LOOKAHEAD; - static const float COST_LOOKAHEAD; + static const float COST_FIRST_COMPLETION; + static const float COST_COMPLETION; static const float HAS_PROXIMITY_TERMINAL_COST; static const float HAS_EDIT_CORRECTION_TERMINAL_COST; static const float HAS_MULTI_WORD_TERMINAL_COST; diff --git a/native/jni/src/suggest/policyimpl/typing/typing_weighting.h b/native/jni/src/suggest/policyimpl/typing/typing_weighting.h index b36605af9..0ba439b47 100644 --- a/native/jni/src/suggest/policyimpl/typing/typing_weighting.h +++ b/native/jni/src/suggest/policyimpl/typing/typing_weighting.h @@ -166,8 +166,8 @@ class TypingWeighting : public Weighting { const bool firstCompletion = dicNode->getInputIndex(0) == traverseSession->getInputSize(); // TODO: Change the cost for the first completion for the gesture? - const float cost = firstCompletion ? ScoringParams::COST_FIRST_LOOKAHEAD - : ScoringParams::COST_LOOKAHEAD; + const float cost = firstCompletion ? ScoringParams::COST_FIRST_COMPLETION + : ScoringParams::COST_COMPLETION; return cost; } diff --git a/native/jni/tests/utils/autocorrection_threshold_utils_test.cpp b/native/jni/tests/utils/autocorrection_threshold_utils_test.cpp new file mode 100644 index 000000000..cc8db700f --- /dev/null +++ b/native/jni/tests/utils/autocorrection_threshold_utils_test.cpp @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "utils/autocorrection_threshold_utils.h" + +#include <gtest/gtest.h> + +#include <vector> + +namespace latinime { +namespace { + +int CalcEditDistance(const std::vector<int> &before, + const std::vector<int> &after) { + return AutocorrectionThresholdUtils::editDistance( + &before[0], before.size(), &after[0], after.size()); +} + +TEST(AutocorrectionThresholdUtilsTest, SameData) { + EXPECT_EQ(0, CalcEditDistance({1}, {1})); + EXPECT_EQ(0, CalcEditDistance({2, 2}, {2, 2})); + EXPECT_EQ(0, CalcEditDistance({3, 3, 3}, {3, 3, 3})); +} + +} // namespace +} // namespace latinime |