|
Groovy example source code file (MemoizeBetweenTest.groovy)
The Groovy MemoizeBetweenTest.groovy source code
package org.codehaus.groovy.runtime.memoize
/**
* @author Vaclav Pech
*/
public class MemoizeBetweenTest extends AbstractMemoizeTestCase {
Closure buildMemoizeClosure(Closure cl) {
cl.memoizeBetween(50, 100)
}
public void testParameters() {
Closure cl = {}
shouldFail(IllegalArgumentException) {
cl.memoizeBetween(1, 0)
}
shouldFail(IllegalArgumentException) {
cl.memoizeBetween(-2, -1)
}
shouldFail(IllegalArgumentException) {
cl.memoizeBetween(-1, -1)
}
}
public void testZeroCache() {
def flag = false
Closure cl = {
flag = true
it * 2
}
Closure mem = cl.memoizeBetween(0, 0)
[1, 2, 3, 4, 5, 6].each {mem(it)}
assert flag
flag = false
assert 12 == mem(6)
assert flag
}
public void testLRUCache() {
def flag = false
Closure cl = {
flag = true
it * 2
}
Closure mem = cl.memoizeBetween(3, 3)
[1, 2, 3, 4, 5, 6].each {mem(it)}
assert flag
flag = false
assert 8 == mem(4)
assert 10 == mem(5)
assert 12 == mem(6)
assert !flag
assert 6 == mem(3)
assert flag
flag = false
assert 10 == mem(5)
assert 12 == mem(6)
assert 6 == mem(3)
assert !flag
assert 8 == mem(4)
assert flag
flag = false
assert 10 == mem(5)
assert flag
}
}
Other Groovy examples (source code examples)Here is a short list of links related to this Groovy MemoizeBetweenTest.groovy source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.