mirror of
https://github.com/Doctorado-ML/FImdlp.git
synced 2025-08-17 16:35:52 +00:00
Add actions and complete tests
This commit is contained in:
46
.github/workflows/codeql-analysis.yml
vendored
Normal file
46
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [master]
|
||||||
|
schedule:
|
||||||
|
- cron: "16 17 * * 3"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: ["python"]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||||
|
# and modify them (or add more) to build your code if your project
|
||||||
|
# uses a compiled language
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
make install
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
50
.github/workflows/main.yml
vendored
Normal file
50
.github/workflows/main.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||||
|
python: [3.9, "3.10"]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python ${{ matrix.python }}
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pip install -q --upgrade pip
|
||||||
|
pip install -q --upgrade codecov coverage black flake8 codacy-coverage
|
||||||
|
- name: Build and install
|
||||||
|
run: |
|
||||||
|
cd FImdlp
|
||||||
|
make install
|
||||||
|
- name: Lint
|
||||||
|
run: |
|
||||||
|
black --check --diff src
|
||||||
|
flake8 --count src
|
||||||
|
- name: Tests
|
||||||
|
run: |
|
||||||
|
coverage run -m unittest discover -v - s src
|
||||||
|
coverage xml
|
||||||
|
- name: Upload coverage to Codecov
|
||||||
|
uses: codecov/codecov-action@v1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
files: ./coverage.xml
|
||||||
|
- name: Run codacy-coverage-reporter
|
||||||
|
if: runner.os == 'Linux'
|
||||||
|
uses: codacy/codacy-coverage-reporter-action@master
|
||||||
|
with:
|
||||||
|
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
||||||
|
coverage-reports: coverage.xml
|
4
Makefile
4
Makefile
@@ -1,9 +1,9 @@
|
|||||||
SHELL := /bin/bash
|
SHELL := /bin/bash
|
||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
.PHONY: coverage deps help lint push test doc build
|
.PHONY: coverage deps help lint push test build install audit
|
||||||
|
|
||||||
clean: ## Clean up
|
clean: ## Clean up
|
||||||
rm -rf build dist *.egg-info
|
rm -rf build dist src/*.egg-info
|
||||||
if [ -f src/fimdlp/cfimdlp.cpp ]; then rm src/fimdlp/cfimdlp.cpp; fi;
|
if [ -f src/fimdlp/cfimdlp.cpp ]; then rm src/fimdlp/cfimdlp.cpp; fi;
|
||||||
for file in src/fimdlp/*.so; do \
|
for file in src/fimdlp/*.so; do \
|
||||||
if [ -f $${file} ]; then rm $${file}; fi; \
|
if [ -f $${file} ]; then rm $${file}; fi; \
|
||||||
|
@@ -31,7 +31,6 @@ classifiers = [
|
|||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
"Programming Language :: Python",
|
"Programming Language :: Python",
|
||||||
"Programming Language :: Python",
|
"Programming Language :: Python",
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
"Programming Language :: Python :: 3.9",
|
||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.10",
|
||||||
]
|
]
|
||||||
|
@@ -74,6 +74,18 @@ class FImdlpTest(unittest.TestCase):
|
|||||||
clf.fit([[1, 2], [3, 4]], [1, 2], features=["a", "b", "c"])
|
clf.fit([[1, 2], [3, 4]], [1, 2], features=["a", "b", "c"])
|
||||||
with self.assertRaises(ValueError):
|
with self.assertRaises(ValueError):
|
||||||
clf.fit([[1, 2], [3, 4]], [1, 2], unexpected="class_name")
|
clf.fit([[1, 2], [3, 4]], [1, 2], unexpected="class_name")
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
clf.fit([[1, 2], [3, 4]], [1, 2], features="01")
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
clf.fit([[1, 2], [3, 4]], [1, 2], features=[0, 0])
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
clf.fit([[1, 2], [3, 4]], [1, 2], features=[0, 2])
|
||||||
|
|
||||||
|
def test_fit_features(self):
|
||||||
|
clf = FImdlp()
|
||||||
|
clf.fit([[1, 2], [3, 4]], [1, 2], features=[0])
|
||||||
|
res = clf.transform([[1, 2], [3, 4]])
|
||||||
|
self.assertListEqual(res.tolist(), [[0, 2], [0, 4]])
|
||||||
|
|
||||||
def test_transform_original(self):
|
def test_transform_original(self):
|
||||||
clf = FImdlp(proposal=False)
|
clf = FImdlp(proposal=False)
|
||||||
|
Reference in New Issue
Block a user