123456789101112131415161718192021222324252627282930313233343536 |
- using Invercargill;
- using Invercargill.Convert;
- void cache_tests() {
- Test.add_func("/invercargill/operator/cache", () => {
- var runs = 0;
- var enumerable = range(0, 64).act(() => runs++).cache().assert_promotion<SignedNativeIntegers>();
- var count = enumerable.count();
- var min = enumerable.min();
- var max = enumerable.max();
- var average = enumerable.average();
- assert_cmpint(64, CompareOperator.EQ, count);
- assert_cmpint(0, CompareOperator.EQ, min);
- assert_cmpint(63, CompareOperator.EQ, max);
- assert_cmpint(31, CompareOperator.EQ, average);
- assert_cmpint(64, CompareOperator.EQ, runs);
- });
- Test.add_func("/invercargill/cache/once", () => {
-
- var runs = 0;
- CachedGet<int> func = () => once<int>(() => ++runs);
- var enumerable = range(0, 64).select<int>(i => func()).to_vector();
-
- assert_cmpint(1, CompareOperator.EQ, runs);
- assert_true(enumerable.all(i => i == 1));
- });
- }
|