1a69a01cdSopenharmony_ci/* 2a69a01cdSopenharmony_ci *Copyright (c) 2022 Huawei Device Co., Ltd. 3a69a01cdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a69a01cdSopenharmony_ci * you may not use this file except in compliance with the License. 5a69a01cdSopenharmony_ci * You may obtain a copy of the License at 6a69a01cdSopenharmony_ci * 7a69a01cdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a69a01cdSopenharmony_ci * 9a69a01cdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a69a01cdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a69a01cdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a69a01cdSopenharmony_ci * See the License for the specific language governing permissions and 13a69a01cdSopenharmony_ci * limitations under the License. 14a69a01cdSopenharmony_ci */ 15a69a01cdSopenharmony_ci 16a69a01cdSopenharmony_ci#ifndef TEST_WUKONG_STATISTICS_ABILITY_H 17a69a01cdSopenharmony_ci#define TEST_WUKONG_STATISTICS_ABILITY_H 18a69a01cdSopenharmony_ci#include <iomanip> 19a69a01cdSopenharmony_ci#include <string> 20a69a01cdSopenharmony_ci 21a69a01cdSopenharmony_ci#include "data_set.h" 22a69a01cdSopenharmony_ci#include "statistics.h" 23a69a01cdSopenharmony_ci#include "wukong_define.h" 24a69a01cdSopenharmony_ci 25a69a01cdSopenharmony_cinamespace OHOS { 26a69a01cdSopenharmony_cinamespace WuKong { 27a69a01cdSopenharmony_ci 28a69a01cdSopenharmony_cinamespace { 29a69a01cdSopenharmony_ciclass AbilityStatisticsRecord { 30a69a01cdSopenharmony_cipublic: 31a69a01cdSopenharmony_ci std::string bundleName_ = ""; 32a69a01cdSopenharmony_ci uint32_t inputedAbilityCount_ = 0; 33a69a01cdSopenharmony_ci uint32_t abilitiesCount_ = 0; 34a69a01cdSopenharmony_ci std::vector<std::string> inputedAbilities_; 35a69a01cdSopenharmony_ci}; 36a69a01cdSopenharmony_ci} // namespace 37a69a01cdSopenharmony_ci 38a69a01cdSopenharmony_ciclass StatisticsAbility : public Statistics { 39a69a01cdSopenharmony_cipublic: 40a69a01cdSopenharmony_ci StatisticsAbility() = default; 41a69a01cdSopenharmony_ci ~StatisticsAbility() = default; 42a69a01cdSopenharmony_ci void StatisticsDetail(std::vector<std::map<std::string, std::string>> srcDatas, 43a69a01cdSopenharmony_ci std::map<std::string, std::shared_ptr<Table>> &destTables); 44a69a01cdSopenharmony_ci 45a69a01cdSopenharmony_ciprivate: 46a69a01cdSopenharmony_ci void UpdateLine(std::shared_ptr<AbilityStatisticsRecord> abilityStatisticsRecordPtr, 47a69a01cdSopenharmony_ci std::vector<std::string> &line); 48a69a01cdSopenharmony_ci void SrcDatasPretreatment(std::vector<std::map<std::string, std::string>> srcDatas); 49a69a01cdSopenharmony_ci std::map<std::string, std::shared_ptr<AbilityStatisticsRecord>> abilityStatisticsMsg_; 50a69a01cdSopenharmony_ci std::vector<std::string> bundles_; 51a69a01cdSopenharmony_ci std::vector<std::string> headers_ = {"bundleName", "inputedAbilityCount", "abilitiesCount", "coverage"}; 52a69a01cdSopenharmony_ci std::vector<std::vector<std::string>> record_; 53a69a01cdSopenharmony_ci}; 54a69a01cdSopenharmony_ci 55a69a01cdSopenharmony_ci} // namespace WuKong 56a69a01cdSopenharmony_ci} // namespace OHOS 57a69a01cdSopenharmony_ci#endif