Skip to content

Commit 7f56631

Browse files
committed
update unit test
1 parent b7c174c commit 7f56631

File tree

5 files changed

+119
-20
lines changed

5 files changed

+119
-20
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
name: "CodeQL"
7+
8+
on:
9+
push:
10+
branches: [master]
11+
pull_request:
12+
# The branches below must be a subset of the branches above
13+
branches: [master]
14+
schedule:
15+
- cron: '0 7 * * 6'
16+
17+
jobs:
18+
analyze:
19+
name: Analyze
20+
runs-on: ubuntu-latest
21+
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
# Override automatic language detection by changing the below list
26+
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
27+
language: ['python']
28+
# Learn more...
29+
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
30+
31+
steps:
32+
- name: Checkout repository
33+
uses: actions/checkout@v2
34+
with:
35+
# We must fetch at least the immediate parents so that if this is
36+
# a pull request then we can checkout the head.
37+
fetch-depth: 2
38+
39+
# If this run was triggered by a pull request event, then checkout
40+
# the head of the pull request instead of the merge commit.
41+
- run: git checkout HEAD^2
42+
if: ${{ github.event_name == 'pull_request' }}
43+
44+
# Initializes the CodeQL tools for scanning.
45+
- name: Initialize CodeQL
46+
uses: github/codeql-action/init@v1
47+
with:
48+
languages: ${{ matrix.language }}
49+
# If you wish to specify custom queries, you can do so here or in a config file.
50+
# By default, queries listed here will override any specified in a config file.
51+
# Prefix the list here with "+" to use these queries and those in the config file.
52+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
53+
54+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55+
# If this step fails, then you should remove it and run the build manually (see below)
56+
- name: Autobuild
57+
uses: github/codeql-action/autobuild@v1
58+
59+
# ℹ️ Command-line programs to run using the OS shell.
60+
# 📚 https://git.io/JvXDl
61+
62+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63+
# and modify them (or add more) to build your code if your project
64+
# uses a compiled language
65+
66+
#- run: |
67+
# make bootstrap
68+
# make release
69+
70+
- name: Perform CodeQL Analysis
71+
uses: github/codeql-action/analyze@v1

.github/workflows/pytest.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Pytest for clusteval
2+
on: [push]
3+
4+
jobs:
5+
example-1:
6+
name: Ex1 (${{ matrix.python-version }}, ${{ matrix.os }})
7+
runs-on: ${{ matrix.os }}
8+
strategy:
9+
fail-fast: false
10+
matrix:
11+
os: ["ubuntu-latest"]
12+
python-version: [3.6, 3.8, 3.9]
13+
steps:
14+
- uses: actions/checkout@v2
15+
- uses: conda-incubator/setup-miniconda@v2
16+
with:
17+
auto-update-conda: true
18+
python-version: ${{ matrix.python-version }}
19+
- name: Install dependencies
20+
run: |
21+
python -m pip install --upgrade pip
22+
# install pandas because we have unittests that include pd.DataFrame()
23+
pip install -r requirements.txt
24+
#pip install pandas
25+
- name: Test with pytest
26+
run: |
27+
pip install pytest
28+
pytest
29+

clusteval/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
__author__ = 'Erdogan Tasksen'
1313
__email__ = '[email protected]'
14-
__version__ = '2.1.2'
14+
__version__ = '2.1.3'
1515

1616

1717
__doc__ = """

clusteval/tests/__init__.py

Whitespace-only changes.
Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,25 @@
22
from sklearn.datasets import make_blobs
33
import pandas as pd
44
import numpy as np
5+
import unittest
56

67

7-
# %%
8-
def test_fit():
9-
X, y_true = make_blobs(n_samples=500, centers=6, n_features=10)
10-
# ce = clusteval(evaluate='agglomerative', cluster=cluster, metric=metric, linkage=linkage, min_clust=min_clust, max_clust=max_clust, verbose=3)
11-
# results = ce.fit(X)
12-
# print('Clusters: %s' %(str(np.unique(results['labx']))))
8+
class TestCLUSTEVAL(unittest.TestCase):
9+
10+
def test_fit(self):
11+
X, y_true = make_blobs(n_samples=500, centers=6, n_features=10)
12+
# X, y_true = make_blobs(n_samples=50, centers=[[1, 1], [-1, -1], [1, -1]], cluster_std=0.4,random_state=0)
1313

14-
# X, y_true = make_blobs(n_samples=50, centers=[[1, 1], [-1, -1], [1, -1]], cluster_std=0.4,random_state=0)
15-
# Set all parameters to be evaluated
16-
clusters = ['agglomerative', 'kmeans', 'dbscan']
17-
evaluates = ['silhouette', 'dbindex', 'derivative']
18-
metrics = ['euclidean', 'hamming']
19-
linkages = ['ward', 'single', 'complete']
20-
min_clusts = [1, 2, 10]
21-
max_clusts = [1, 10, 2]
14+
# Set all parameters to be evaluated
15+
clusters = ['agglomerative', 'kmeans', 'dbscan']
16+
evaluates = ['silhouette', 'dbindex', 'derivative']
17+
metrics = ['euclidean', 'hamming']
18+
linkages = ['ward', 'single', 'complete']
19+
min_clusts = [1, 2, 10]
20+
max_clusts = [1, 10, 2]
2221

23-
# Evaluate across all paramters
24-
out = parameter_gridtest(X, y_true, clusters, evaluates, metrics, linkages, min_clusts, max_clusts)
22+
# Evaluate across all paramters
23+
out = parameter_gridtest(X, y_true, clusters, evaluates, metrics, linkages, min_clusts, max_clusts)
2524

2625
# %%
2726
def parameter_gridtest(X, y_true, clusters, evaluates, metrics, linkages, min_clusts, max_clusts):
@@ -62,15 +61,15 @@ def parameter_gridtest(X, y_true, clusters, evaluates, metrics, linkages, min_cl
6261
print(len(np.unique(results['labx'])))
6362
print(len(np.unique(y_true)))
6463
assert len(np.unique(results['labx']))==len(np.unique(y_true))
65-
64+
6665
except ValueError as err:
6766
assert not 'clusteval' in err.args
6867
status = err.args
6968
print(err.args)
7069
# ce.results=None
71-
70+
7271
# out.append(ce.results)
73-
count=count+1
72+
count=count + 1
7473

7574
print('Fin! Total number of models evaluated with different paramters: %.0d' %(count))
7675
return(pd.DataFrame(out))

0 commit comments

Comments
 (0)