forked from floraachy/ImageKnife
132 lines
5.2 KiB
Plaintext
132 lines
5.2 KiB
Plaintext
/*
|
|
* Copyright (C) 2023 Huawei Device Co., Ltd.
|
|
* 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.
|
|
*/
|
|
import hilog from '@ohos.hilog';
|
|
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'
|
|
import {LruCache} from '@ohos/imageknife' // DiskLruCache用例由DiskLruCache三方库提供
|
|
|
|
export default function lruCacheTest() {
|
|
describe('lruCacheTest', function () {
|
|
// Defines a test suite. Two parameters are supported: test suite name and test suite function.
|
|
beforeAll(function () {
|
|
// Presets an action, which is performed only once before all test cases of the test suite start.
|
|
// This API supports only one parameter: preset action function.
|
|
})
|
|
beforeEach(function () {
|
|
// Presets an action, which is performed before each unit test case starts.
|
|
// The number of execution times is the same as the number of test cases defined by **it**.
|
|
// This API supports only one parameter: preset action function.
|
|
})
|
|
afterEach(function () {
|
|
// Presets a clear action, which is performed after each unit test case ends.
|
|
// The number of execution times is the same as the number of test cases defined by **it**.
|
|
// This API supports only one parameter: clear action function.
|
|
})
|
|
afterAll(function () {
|
|
// Presets a clear action, which is performed after all test cases of the test suite end.
|
|
// This API supports only one parameter: clear action function.
|
|
})
|
|
it('testLruCacheSize',0, function () {
|
|
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
|
|
let memoryCache = new LruCache<string, any>(100);
|
|
expect(memoryCache.size).assertEqual(0);
|
|
expect(memoryCache.maxsize).assertEqual(100)
|
|
})
|
|
it('testLruCachePut',1, function () {
|
|
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
|
|
let memoryCache = new LruCache<string, any>(5);
|
|
memoryCache.put("1","1");
|
|
memoryCache.put("2","2");
|
|
memoryCache.put("3","3");
|
|
memoryCache.put("4","4");
|
|
memoryCache.put("5","5");
|
|
memoryCache.put("6","6");
|
|
|
|
expect(memoryCache.maxsize).assertEqual(5)
|
|
let result = memoryCache.get("1")
|
|
expect(result).assertEqual(undefined)
|
|
})
|
|
it('testLruCacheGet',2, function () {
|
|
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
|
|
let memoryCache = new LruCache<string, any>(5);
|
|
memoryCache.put("1","1");
|
|
memoryCache.put("2","2");
|
|
memoryCache.put("3","3");
|
|
memoryCache.put("4","4");
|
|
memoryCache.put("5","5");
|
|
memoryCache.put("6","6");
|
|
|
|
expect(memoryCache.maxsize).assertEqual(5)
|
|
let result = memoryCache.get("2")
|
|
expect(result).assertEqual("2")
|
|
})
|
|
it('testLruCacheAlgorithm',3, function () {
|
|
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
|
|
let memoryCache = new LruCache<string, any>(5);
|
|
memoryCache.put("1","1");
|
|
memoryCache.put("2","2");
|
|
memoryCache.put("3","3");
|
|
memoryCache.put("4","4");
|
|
memoryCache.put("5","5");
|
|
|
|
memoryCache.get("1");
|
|
memoryCache.get("2");
|
|
|
|
memoryCache.foreachLruCache(function (value, key, index) {
|
|
if(index == 0){
|
|
expect(key).assertEqual("2")
|
|
expect(value).assertEqual("2")
|
|
}
|
|
})
|
|
})
|
|
it('testLruCacheRemove',4, function () {
|
|
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
|
|
let memoryCache = new LruCache<string, any>(5);
|
|
memoryCache.put("1","1");
|
|
memoryCache.put("2","2");
|
|
memoryCache.put("3","3");
|
|
memoryCache.put("4","4");
|
|
memoryCache.put("5","5");
|
|
|
|
memoryCache.get("1");
|
|
memoryCache.get("2");
|
|
|
|
memoryCache.remove("2");
|
|
|
|
memoryCache.foreachLruCache(function (value, key, index) {
|
|
if(index == 0){
|
|
expect(key).assertEqual("1")
|
|
expect(value).assertEqual("1")
|
|
}
|
|
})
|
|
})
|
|
it('testLruCacheResize',5, function () {
|
|
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
|
|
let memoryCache = new LruCache<string, any>(5);
|
|
memoryCache.put("1","1");
|
|
memoryCache.put("2","2");
|
|
memoryCache.put("3","3");
|
|
memoryCache.put("4","4");
|
|
memoryCache.put("5","5");
|
|
|
|
memoryCache.resize(4);
|
|
|
|
let result1 = memoryCache.get("1");
|
|
expect(result1).assertEqual(undefined);
|
|
let result2 = memoryCache.get("2");
|
|
expect(result2).assertEqual("2");
|
|
|
|
})
|
|
})
|
|
} |