我正在使用 Dart,试图做一些低级项目的欧拉问题;这个问题既适用于素数计数器问题,也适用于最大素数问题。
这是单元测试和下面产生的错误(我的其他两个单元测试评估良好):
test('evaluate if target is not factorable', () {
// Arrange
var maximum = 14;
var control_list_of_primes = <int>[2,3,5,7,11];
var test_list_of_primes = <int>[2,3,5,7,11];
// Act
prime_list_expansion(maximum, test_list_of_primes);
// Assert
expect(test_list_of_primes[-1] == 13, true);
});
ERROR: -prime factor generator- should evaluate if target is not factorable
Test failed: Caught RangeError: -1
List.[]
这是函数prime_list_expansion
(它调用的函数通过了我为它们设计的测试,所以我认为它们不是问题):
prime_list_expansion (int maximum, List prime_list) {
var start = prime_list[-1];
for (var i = start; i < maximum; i = i+2) {
if (target_not_factorable (i, prime_list)) {
prime_list.add(i);
}
}
}