From 16adc96c315f67dcf5bf22b0bfdad79a2a224615 Mon Sep 17 00:00:00 2001 From: Ilya Gyrdymov Date: Sat, 12 Dec 2020 21:53:27 +0200 Subject: [PATCH] Set up github actions --- .github/workflows/dart.yml | 40 +++++++++++++++++++ .travis.yml | 5 --- CHANGELOG.md | 3 ++ analysis_options.yaml | 2 +- benchmark/logistic_regressor.dart | 2 +- e2e_tests.sh | 3 ++ .../logistic_regressor_impl.g.dart | 4 +- .../softmax_regressor_impl.dart | 1 + .../softmax_regressor_impl.g.dart | 4 +- .../linear_regressor_impl.g.dart | 2 +- pubspec.yaml | 5 ++- .../decision_tree_classifier_impl_test.dart | 2 +- .../knn_classifier_impl_test.dart | 3 +- ..._default_constructor_integration_test.dart | 3 +- .../logistic_regressor_impl_test.dart | 1 - .../unit_test/logistic_regressor_test.dart | 2 +- ...ressor_serialization_integration_test.dart | 1 - .../softmax_regressor_impl_test.dart | 3 +- .../unit_test/softmax_regressor_test.dart | 3 +- .../least_square_cost_function_test.dart | 3 +- test/helpers.dart | 34 ++++++++++++++++ ...te_descent_optimizer_integration_test.dart | 3 +- .../inverse_logit_link_function_test.dart | 4 +- .../softmax/softmax_link_function_test.dart | 3 +- test/math/randomizer_test.dart | 10 ++--- test/metric/classification/recall_test.dart | 1 - .../lpo_split_indices_provider_test.dart | 20 +++++----- .../knn_regressor_impl_test.dart | 3 +- .../knn_regressor_integration_test.dart | 3 +- test/regressor/linear_regressor_test.dart | 2 +- .../tree_node/tree_node_test.dart | 2 +- tool/grind.dart | 18 --------- tool/run_e2e_tests.dart | 16 -------- 33 files changed, 126 insertions(+), 85 deletions(-) create mode 100644 .github/workflows/dart.yml delete mode 100644 .travis.yml create mode 100755 e2e_tests.sh create mode 100644 test/helpers.dart delete mode 100755 tool/grind.dart delete mode 100644 tool/run_e2e_tests.dart diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml new file mode 100644 index 00000000..5d016335 --- /dev/null +++ b/.github/workflows/dart.yml @@ -0,0 +1,40 @@ +name: Dart + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + container: + image: google/dart:latest + + steps: + - uses: actions/checkout@v2 + + - name: Print Dart SDK version + run: dart --version + + - name: Install dependencies + run: dart pub get + + - name: Analyze project source + run: dart analyze --fatal-infos + + - name: Run tests + run: dart test + + - name: Run e2e tests + run: dart pub run test e2e -p vm + + - name: Code coverage + run: dart pub run test_coverage + + - name: Coveralls GitHub Action + uses: coverallsapp/github-action@v1.1.2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c2e4b26c..00000000 --- a/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: dart -dart: - - "2.7.2" -script: pub run grinder start -after_success: pub run grinder finish diff --git a/CHANGELOG.md b/CHANGELOG.md index 155ca4e2..566ed470 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 15.3.5 +- Github actions set up + ## 15.3.4 - `DI logic`: - conditional dependency registering added diff --git a/analysis_options.yaml b/analysis_options.yaml index ea78b5b8..108d1058 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1 +1 @@ -include: package:ml_tech/analysis_options.yaml +include: package:pedantic/analysis_options.yaml diff --git a/benchmark/logistic_regressor.dart b/benchmark/logistic_regressor.dart index a2b02519..bc9d3d0c 100644 --- a/benchmark/logistic_regressor.dart +++ b/benchmark/logistic_regressor.dart @@ -28,7 +28,7 @@ class LogisticRegressorBenchmark extends BenchmarkBase { @override void setup() { - final Matrix observations = Matrix.fromRows(List.generate(observationsNum, + final observations = Matrix.fromRows(List.generate(observationsNum, (i) => Vector.randomFilled(columnsNum))); _data = DataFrame.fromMatrix(observations); diff --git a/e2e_tests.sh b/e2e_tests.sh new file mode 100755 index 00000000..582b0194 --- /dev/null +++ b/e2e_tests.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +pub run test e2e -p vm diff --git a/lib/src/classifier/logistic_regressor/logistic_regressor_impl.g.dart b/lib/src/classifier/logistic_regressor/logistic_regressor_impl.g.dart index 6603626c..71f9e824 100644 --- a/lib/src/classifier/logistic_regressor/logistic_regressor_impl.g.dart +++ b/lib/src/classifier/logistic_regressor/logistic_regressor_impl.g.dart @@ -22,7 +22,7 @@ LogisticRegressorImpl _$LogisticRegressorImplFromJson( 'CPI' ]); final val = LogisticRegressorImpl( - $checkedConvert(json, 'CN', (v) => (v as List)?.map((dynamic e) => e as String)), + $checkedConvert(json, 'CN', (v) => (v as List)?.map((e) => e as String)), $checkedConvert(json, 'LF', (v) => fromLinkFunctionJson(v as String)), $checkedConvert(json, 'FI', (v) => v as bool), $checkedConvert(json, 'IS', (v) => v as num), @@ -32,7 +32,7 @@ LogisticRegressorImpl _$LogisticRegressorImplFromJson( $checkedConvert(json, 'NL', (v) => v as num), $checkedConvert(json, 'PL', (v) => v as num), $checkedConvert( - json, 'CPI', (v) => (v as List)?.map((dynamic e) => e as num)?.toList()), + json, 'CPI', (v) => (v as List)?.map((e) => e as num)?.toList()), $checkedConvert(json, 'DT', (v) => fromDTypeJson(v as String)), ); return val; diff --git a/lib/src/classifier/softmax_regressor/softmax_regressor_impl.dart b/lib/src/classifier/softmax_regressor/softmax_regressor_impl.dart index a73c6647..0668f742 100644 --- a/lib/src/classifier/softmax_regressor/softmax_regressor_impl.dart +++ b/lib/src/classifier/softmax_regressor/softmax_regressor_impl.dart @@ -51,6 +51,7 @@ class SoftmaxRegressorImpl factory SoftmaxRegressorImpl.fromJson(Map json) => _$SoftmaxRegressorImplFromJson(json); + @override Map toJson() => _$SoftmaxRegressorImplToJson(this); @override diff --git a/lib/src/classifier/softmax_regressor/softmax_regressor_impl.g.dart b/lib/src/classifier/softmax_regressor/softmax_regressor_impl.g.dart index a7edd19b..f1d556a8 100644 --- a/lib/src/classifier/softmax_regressor/softmax_regressor_impl.g.dart +++ b/lib/src/classifier/softmax_regressor/softmax_regressor_impl.g.dart @@ -22,14 +22,14 @@ SoftmaxRegressorImpl _$SoftmaxRegressorImplFromJson(Map json) { final val = SoftmaxRegressorImpl( $checkedConvert( json, 'CBC', (v) => fromMatrixJson(v as Map)), - $checkedConvert(json, 'CN', (v) => (v as List)?.map((dynamic e) => e as String)), + $checkedConvert(json, 'CN', (v) => (v as List)?.map((e) => e as String)), $checkedConvert(json, 'LF', (v) => fromLinkFunctionJson(v as String)), $checkedConvert(json, 'FI', (v) => v as bool), $checkedConvert(json, 'IS', (v) => v as num), $checkedConvert(json, 'PL', (v) => v as num), $checkedConvert(json, 'NL', (v) => v as num), $checkedConvert( - json, 'CPI', (v) => (v as List)?.map((dynamic e) => e as num)?.toList()), + json, 'CPI', (v) => (v as List)?.map((e) => e as num)?.toList()), $checkedConvert(json, 'DT', (v) => fromDTypeJson(v as String)), ); return val; diff --git a/lib/src/regressor/linear_regressor/linear_regressor_impl.g.dart b/lib/src/regressor/linear_regressor/linear_regressor_impl.g.dart index b9f7b81d..82b80eb4 100644 --- a/lib/src/regressor/linear_regressor/linear_regressor_impl.g.dart +++ b/lib/src/regressor/linear_regressor/linear_regressor_impl.g.dart @@ -17,7 +17,7 @@ LinearRegressorImpl _$LinearRegressorImplFromJson(Map json) { interceptScale: $checkedConvert(json, 'IS', (v) => (v as num)?.toDouble()), costPerIteration: $checkedConvert( - json, 'CPI', (v) => (v as List)?.map((dynamic e) => e as num)?.toList()), + json, 'CPI', (v) => (v as List)?.map((e) => e as num)?.toList()), dtype: $checkedConvert(json, 'DT', (v) => fromDTypeJson(v as String)), ); return val; diff --git a/pubspec.yaml b/pubspec.yaml index 8455f0a8..b7d46d86 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: ml_algo description: Machine learning algorithms, Machine learning models performance evaluation functionality -version: 15.3.4 +version: 15.3.5 homepage: https://github.com/gyrdym/ml_algo environment: @@ -21,7 +21,8 @@ dev_dependencies: build_runner: ^1.1.2 build_test: ^0.10.2 grinder: ^0.8.3 - ml_tech: ^0.0.8 mockito: ^3.0.0 + pedantic: ^1.9.2 process_run: ^0.10.12 test: ^1.2.0 + test_coverage: ^0.5.0 diff --git a/test/classifier/decision_tree_classifier/decision_tree_classifier_impl_test.dart b/test/classifier/decision_tree_classifier/decision_tree_classifier_impl_test.dart index 560d4c95..1ac19971 100644 --- a/test/classifier/decision_tree_classifier/decision_tree_classifier_impl_test.dart +++ b/test/classifier/decision_tree_classifier/decision_tree_classifier_impl_test.dart @@ -16,10 +16,10 @@ import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/dtype_to_json.dart'; import 'package:ml_linalg/matrix.dart'; import 'package:ml_linalg/vector.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; import '../../mocks.dart'; void main() { diff --git a/test/classifier/knn_classifier/knn_classifier_impl_test.dart b/test/classifier/knn_classifier/knn_classifier_impl_test.dart index 7b65fe6a..d1e11e49 100644 --- a/test/classifier/knn_classifier/knn_classifier_impl_test.dart +++ b/test/classifier/knn_classifier/knn_classifier_impl_test.dart @@ -2,13 +2,12 @@ import 'package:ml_algo/src/classifier/knn_classifier/_injector.dart'; import 'package:ml_algo/src/classifier/knn_classifier/knn_classifier_impl.dart'; import 'package:ml_algo/src/di/injector.dart'; import 'package:ml_algo/src/knn_solver/neigbour.dart'; -import 'package:ml_algo/src/metric/metric_type.dart'; import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/linalg.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; import '../../mocks.dart'; void main() { diff --git a/test/classifier/logistic_regressor/integration_test/logistic_regressor_default_constructor_integration_test.dart b/test/classifier/logistic_regressor/integration_test/logistic_regressor_default_constructor_integration_test.dart index 2d8af1f1..2ca4a3aa 100644 --- a/test/classifier/logistic_regressor/integration_test/logistic_regressor_default_constructor_integration_test.dart +++ b/test/classifier/logistic_regressor/integration_test/logistic_regressor_default_constructor_integration_test.dart @@ -5,9 +5,10 @@ import 'package:ml_algo/src/linear_optimizer/gradient_optimizer/learning_rate_ge import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/linalg.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:test/test.dart'; +import '../../../helpers.dart'; + void main() { group('LogisticRegressor', () { final createClassifier = ({ diff --git a/test/classifier/logistic_regressor/unit_test/logistic_regressor_impl_test.dart b/test/classifier/logistic_regressor/unit_test/logistic_regressor_impl_test.dart index c9a648ec..cc6c39ea 100644 --- a/test/classifier/logistic_regressor/unit_test/logistic_regressor_impl_test.dart +++ b/test/classifier/logistic_regressor/unit_test/logistic_regressor_impl_test.dart @@ -3,7 +3,6 @@ import 'package:ml_algo/src/classifier/logistic_regressor/logistic_regressor_imp import 'package:ml_algo/src/common/exception/invalid_class_labels_exception.dart'; import 'package:ml_algo/src/common/exception/invalid_probability_threshold_exception.dart'; import 'package:ml_algo/src/di/injector.dart'; -import 'package:ml_algo/src/metric/metric_type.dart'; import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/linalg.dart'; import 'package:mockito/mockito.dart'; diff --git a/test/classifier/logistic_regressor/unit_test/logistic_regressor_test.dart b/test/classifier/logistic_regressor/unit_test/logistic_regressor_test.dart index 798e7008..014ad9b6 100644 --- a/test/classifier/logistic_regressor/unit_test/logistic_regressor_test.dart +++ b/test/classifier/logistic_regressor/unit_test/logistic_regressor_test.dart @@ -18,10 +18,10 @@ import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/matrix.dart'; import 'package:ml_linalg/vector.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../../../helpers.dart'; import '../../../mocks.dart'; void main() { diff --git a/test/classifier/softmax_regressor/integration_test/softmax_regressor_serialization_integration_test.dart b/test/classifier/softmax_regressor/integration_test/softmax_regressor_serialization_integration_test.dart index 3553bba8..2f6bc45f 100644 --- a/test/classifier/softmax_regressor/integration_test/softmax_regressor_serialization_integration_test.dart +++ b/test/classifier/softmax_regressor/integration_test/softmax_regressor_serialization_integration_test.dart @@ -1,7 +1,6 @@ import 'dart:io'; import 'package:ml_algo/ml_algo.dart'; -import 'package:ml_algo/src/classifier/softmax_regressor/_init_module.dart'; import 'package:ml_algo/src/classifier/softmax_regressor/_injector.dart'; import 'package:ml_algo/src/classifier/softmax_regressor/softmax_regressor_json_keys.dart'; import 'package:ml_algo/src/di/injector.dart'; diff --git a/test/classifier/softmax_regressor/unit_test/softmax_regressor_impl_test.dart b/test/classifier/softmax_regressor/unit_test/softmax_regressor_impl_test.dart index 1e338aeb..7164a9aa 100644 --- a/test/classifier/softmax_regressor/unit_test/softmax_regressor_impl_test.dart +++ b/test/classifier/softmax_regressor/unit_test/softmax_regressor_impl_test.dart @@ -1,15 +1,14 @@ import 'package:ml_algo/src/classifier/softmax_regressor/_injector.dart'; import 'package:ml_algo/src/classifier/softmax_regressor/softmax_regressor_impl.dart'; import 'package:ml_algo/src/di/injector.dart'; -import 'package:ml_algo/src/metric/metric_type.dart'; import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/matrix.dart'; import 'package:ml_linalg/vector.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../../../helpers.dart'; import '../../../mocks.dart'; void main() { diff --git a/test/classifier/softmax_regressor/unit_test/softmax_regressor_test.dart b/test/classifier/softmax_regressor/unit_test/softmax_regressor_test.dart index 7542d88a..0aeabdcb 100644 --- a/test/classifier/softmax_regressor/unit_test/softmax_regressor_test.dart +++ b/test/classifier/softmax_regressor/unit_test/softmax_regressor_test.dart @@ -1,4 +1,3 @@ -import 'package:injector/injector.dart'; import 'package:ml_algo/ml_algo.dart'; import 'package:ml_algo/src/classifier/softmax_regressor/_helpers/create_softmax_regressor.dart'; import 'package:ml_algo/src/classifier/softmax_regressor/_injector.dart'; @@ -19,10 +18,10 @@ import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/linalg.dart'; import 'package:ml_linalg/matrix.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../../../helpers.dart'; import '../../../mocks.dart'; void main() { diff --git a/test/cost_function/least_square_cost_function_test.dart b/test/cost_function/least_square_cost_function_test.dart index 2fa892e0..926fff9b 100644 --- a/test/cost_function/least_square_cost_function_test.dart +++ b/test/cost_function/least_square_cost_function_test.dart @@ -2,9 +2,10 @@ import 'dart:math' as math; import 'package:ml_algo/src/cost_function/least_square_cost_function.dart'; import 'package:ml_linalg/linalg.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:test/test.dart'; +import '../helpers.dart'; + void main() { group('LeastSquareCostFunction', () { final x11 = 21.5; diff --git a/test/helpers.dart b/test/helpers.dart new file mode 100644 index 00000000..808dcb1c --- /dev/null +++ b/test/helpers.dart @@ -0,0 +1,34 @@ +import 'dart:convert' as convert; +import 'dart:io'; + +import 'package:test/test.dart'; + +Matcher iterable2dAlmostEqualTo(Iterable> expected, + [double precision = 1e-5]) => + pairwiseCompare, Iterable>(expected, + (Iterable expected, Iterable actual) { + if (expected.length != actual.length) { + return false; + } + for (var i = 0; i < expected.length; i++) { + if ((expected.elementAt(i) - actual.elementAt(i)).abs() >= precision) { + return false; + } + } + return true; + }, ''); + +Matcher iterableAlmostEqualTo(Iterable expected, + [double precision = 1e-5]) => + pairwiseCompare( + expected, + (expectedVal, actualVal) => + (expectedVal - actualVal).abs() <= precision, + ''); + +Future> readJSON(String fileName) async => + await File(fileName) + .openRead() + .transform(convert.utf8.decoder) + .transform(convert.json.decoder) + .first as Map; diff --git a/test/linear_optimizer/coordinate_optimizer/coordinate_descent_optimizer_integration_test.dart b/test/linear_optimizer/coordinate_optimizer/coordinate_descent_optimizer_integration_test.dart index e776803e..7da12a34 100644 --- a/test/linear_optimizer/coordinate_optimizer/coordinate_descent_optimizer_integration_test.dart +++ b/test/linear_optimizer/coordinate_optimizer/coordinate_descent_optimizer_integration_test.dart @@ -4,9 +4,10 @@ import 'package:ml_algo/src/di/injector.dart'; import 'package:ml_algo/src/linear_optimizer/coordinate_optimizer/coordinate_descent_optimizer.dart'; import 'package:ml_algo/src/linear_optimizer/initial_coefficients_generator/initial_coefficients_type.dart'; import 'package:ml_linalg/linalg.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_almost_equal_to.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; + /// L1 regularization, as known as Lasso, is aimed to penalize unimportant features, setting their weights to the zero, /// therefore, we can treat the objective of the Lasso Optimizer like feature selection. Since lasso solver regularizes /// coefficients by adding to their magnitude their L1-norm, we cannot use gradient methods any longer. Instead, we can diff --git a/test/link_function/logit/inverse_logit_link_function_test.dart b/test/link_function/logit/inverse_logit_link_function_test.dart index f1de9d99..9cfe1c91 100644 --- a/test/link_function/logit/inverse_logit_link_function_test.dart +++ b/test/link_function/logit/inverse_logit_link_function_test.dart @@ -4,9 +4,10 @@ import 'package:ml_algo/src/link_function/logit/float32_inverse_logit_function.d import 'package:ml_algo/src/link_function/logit/float64_inverse_logit_function.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/matrix.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; + void main() { void testInverseLogitLinkFunction(LinkFunction inverseLogitLink, DType dtype) { group(inverseLogitLink.runtimeType, () { @@ -36,7 +37,6 @@ void main() { [-4.0], ], dtype: dtype); final probabilities = inverseLogitLink.link(scores); - final a = 2.3; expect(probabilities, iterable2dAlmostEqualTo([ [0.268], diff --git a/test/link_function/softmax/softmax_link_function_test.dart b/test/link_function/softmax/softmax_link_function_test.dart index 95351755..f0123781 100644 --- a/test/link_function/softmax/softmax_link_function_test.dart +++ b/test/link_function/softmax/softmax_link_function_test.dart @@ -3,9 +3,10 @@ import 'package:ml_algo/src/link_function/softmax/float32_softmax_link_function. import 'package:ml_algo/src/link_function/softmax/float64_softmax_link_function.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/matrix.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; + void main() { void testSoftmaxLinkFunction(LinkFunction linkFunction, DType dtype) { group(linkFunction.runtimeType, () { diff --git a/test/math/randomizer_test.dart b/test/math/randomizer_test.dart index 2152f345..4f53283b 100644 --- a/test/math/randomizer_test.dart +++ b/test/math/randomizer_test.dart @@ -8,7 +8,7 @@ import 'package:test/test.dart'; class RandomMock extends Mock implements Random {} void main() { - const int maxEpoch = 400; + const maxEpoch = 400; Random baseGenerator; Randomizer randomizer; @@ -100,7 +100,7 @@ void main() { final start = 2; final end = 13; - for (int i = 0; i < maxEpoch; i++) { + for (var i = 0; i < maxEpoch; i++) { final value = randomizer.getIntegerFromInterval(start, end); expect(start <= value && value < end, isTrue); } @@ -112,7 +112,7 @@ void main() { final start = 6; final end = 17; - for (int i = 0; i < maxEpoch; i++) { + for (var i = 0; i < maxEpoch; i++) { final interval = randomizer.getIntegerInterval(start, end, intervalLength: intervalLength); @@ -135,7 +135,7 @@ void main() { final start = 0; final end = 1; - for (int i = 0; i < maxEpoch; i++) { + for (var i = 0; i < maxEpoch; i++) { final value = randomizer.getIntegerFromInterval(start, end); expect(value, isZero); } @@ -155,7 +155,7 @@ void main() { final start = 5.3; final end = 123.4; - for (int i = 0; i < maxEpoch; i++) { + for (var i = 0; i < maxEpoch; i++) { final value = randomizer.getDoubleFromInterval(start, end); expect(start <= value && value < end, isTrue); } diff --git a/test/metric/classification/recall_test.dart b/test/metric/classification/recall_test.dart index 03ab16b7..2f3b8dd5 100644 --- a/test/metric/classification/recall_test.dart +++ b/test/metric/classification/recall_test.dart @@ -1,4 +1,3 @@ -import 'package:ml_algo/src/metric/classification/precision.dart'; import 'package:ml_algo/src/metric/classification/recall.dart'; import 'package:ml_linalg/matrix.dart'; import 'package:test/test.dart'; diff --git a/test/model_selection/split_indices_provider/lpo_split_indices_provider_test.dart b/test/model_selection/split_indices_provider/lpo_split_indices_provider_test.dart index 08e2e9f8..65be91a1 100644 --- a/test/model_selection/split_indices_provider/lpo_split_indices_provider_test.dart +++ b/test/model_selection/split_indices_provider/lpo_split_indices_provider_test.dart @@ -12,16 +12,16 @@ void main() { }); } - testLpoSplitter(2, 4, [ + testLpoSplitter(2, 4, { [0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3], - ].toSet()); + }); - testLpoSplitter(2, 5, [ + testLpoSplitter(2, 5, { [0, 1], [0, 2], [0, 3], @@ -32,24 +32,24 @@ void main() { [2, 3], [2, 4], [3, 4], - ].toSet()); + }); - testLpoSplitter(1, 5, [ + testLpoSplitter(1, 5, { [0], [1], [2], [3], [4], - ].toSet()); + }); - testLpoSplitter(3, 4, [ + testLpoSplitter(3, 4, { [0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3], - ].toSet()); + }); - testLpoSplitter(3, 5, [ + testLpoSplitter(3, 5, { [0, 1, 2], [0, 1, 3], [0, 1, 4], @@ -60,7 +60,7 @@ void main() { [1, 2, 4], [1, 3, 4], [2, 3, 4], - ].toSet()); + }); test('should throw an error, if p is equal to 0', () { expect(() => LpoIndicesProvider(0), throwsUnsupportedError); diff --git a/test/regressor/knn_regressor/knn_regressor_impl_test.dart b/test/regressor/knn_regressor/knn_regressor_impl_test.dart index ece38ca6..8bc5853b 100644 --- a/test/regressor/knn_regressor/knn_regressor_impl_test.dart +++ b/test/regressor/knn_regressor/knn_regressor_impl_test.dart @@ -1,15 +1,14 @@ import 'package:ml_algo/src/di/injector.dart'; import 'package:ml_algo/src/knn_solver/neigbour.dart'; -import 'package:ml_algo/src/metric/metric_type.dart'; import 'package:ml_algo/src/regressor/knn_regressor/_injector.dart'; import 'package:ml_algo/src/regressor/knn_regressor/knn_regressor_impl.dart'; import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/linalg.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; import '../../mocks.dart'; void main() { diff --git a/test/regressor/knn_regressor/knn_regressor_integration_test.dart b/test/regressor/knn_regressor/knn_regressor_integration_test.dart index 527e1607..6d36c133 100644 --- a/test/regressor/knn_regressor/knn_regressor_integration_test.dart +++ b/test/regressor/knn_regressor/knn_regressor_integration_test.dart @@ -3,9 +3,10 @@ import 'package:ml_algo/src/regressor/knn_regressor/_helpers/create_knn_regresso import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/distance.dart'; import 'package:ml_linalg/matrix.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; + void main() { group('KnnRegressor', () { test('should predict values using uniform kernel', () { diff --git a/test/regressor/linear_regressor_test.dart b/test/regressor/linear_regressor_test.dart index 21d145b7..ed82aa94 100644 --- a/test/regressor/linear_regressor_test.dart +++ b/test/regressor/linear_regressor_test.dart @@ -12,10 +12,10 @@ import 'package:ml_algo/src/regressor/linear_regressor/_helpers/create_linear_re import 'package:ml_dataframe/ml_dataframe.dart'; import 'package:ml_linalg/dtype.dart'; import 'package:ml_linalg/linalg.dart'; -import 'package:ml_tech/unit_testing/matchers/iterable_2d_almost_equal_to.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +import '../helpers.dart'; import '../mocks.dart'; void main() { diff --git a/test/tree_trainer/tree_node/tree_node_test.dart b/test/tree_trainer/tree_node/tree_node_test.dart index f80f8170..c94deaf3 100644 --- a/test/tree_trainer/tree_node/tree_node_test.dart +++ b/test/tree_trainer/tree_node/tree_node_test.dart @@ -1,9 +1,9 @@ import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label.dart'; import 'package:ml_algo/src/tree_trainer/tree_node/splitting_predicate/tree_node_splitting_predicate_type.dart'; import 'package:ml_algo/src/tree_trainer/tree_node/tree_node.dart'; -import 'package:ml_tech/unit_testing/readers/json.dart'; import 'package:test/test.dart'; +import '../../helpers.dart'; import 'tree.dart'; void main() { diff --git a/tool/grind.dart b/tool/grind.dart deleted file mode 100755 index 4587aa22..00000000 --- a/tool/grind.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:grinder/grinder.dart'; -import 'package:ml_tech/ml_tech.dart' as ml_tech; - -import 'run_e2e_tests.dart'; - -Future main(List args) => grind(args); - -@Task() -Future start() async { - ml_tech.analyze(); - await ml_tech.test(); - await runE2ETests(); -} - -@Task() -Future finish() async { - await ml_tech.uploadCoverage(); -} diff --git a/tool/run_e2e_tests.dart b/tool/run_e2e_tests.dart deleted file mode 100644 index 3cb78ecc..00000000 --- a/tool/run_e2e_tests.dart +++ /dev/null @@ -1,16 +0,0 @@ -import 'package:process_run/shell.dart'; - -Future runE2ETests() => Shell().run( -''' - -echo Running e2e tests... - -pub run test e2e -p vm - -echo e2e tests finished - -'''); - -void main() async { - await runE2ETests(); -}