Module Diabetes-Detection-Web-Application.testing.tests.unit_tests.test_model

Expand source code

"""
Unit Test cases for model.py file
"""

import pytest
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import src.modelbuilding.model as M
import pandas as pd
import os
from src.modelbuilding.model import ModelBuilding
def test_split(mocker):
    mocker.patch("src.modelbuilding.model.ModelBuilding.train", return_value=None)
    mocker.patch("src.modelbuilding.model.ModelBuilding.predict", return_value=None)
    df = pd.read_csv("https://raw.githubusercontent.com/ritik8801/Diabetes-Detection-Web-Application/main/Testing/tests/unit_tests/test_data/sample.csv")
    m = ModelBuilding(df, path="test_data")
    assert isinstance(m.X_train, pd.DataFrame)
    assert isinstance(m.X_test, pd.DataFrame)
    assert isinstance(m.y_train, pd.Series)
    assert isinstance(m.y_test, pd.Series)

@pytest.fixture()
def sample_split(mocker):
    data = pd.read_csv("https://raw.githubusercontent.com/ritik8801/Diabetes-Detection-Web-Application/main/Testing/tests/unit_tests/test_data/sample.csv")
    X = data[['Pregnancies', 'Glucose', 'BloodPressure',
       'SkinThickness', 'Insulin',
       'BMI', 'DiabetesPedigreeFunction', 'Age']]
    y = data['Outcome']
    X_train, X_test, y_train, y_test = train_test_split(X, y,
        test_size=0.2)
    return X_train, X_test, y_train, y_test

def test_train(mocker, sample_split):
    mocker.patch("src.modelbuilding.model.ModelBuilding.split", return_value=None)
    mocker.patch("src.modelbuilding.model.ModelBuilding.predict", return_value=None)
    df = pd.read_csv("https://raw.githubusercontent.com/ritik8801/Diabetes-Detection-Web-Application/main/Testing/tests/unit_tests/test_data/sample.csv")
    print("sample split")
    print(sample_split[0])
    m = ModelBuilding(df, X_train= sample_split[0], X_test=sample_split[1],
    y_train=sample_split[2], y_test=sample_split[3], path="test_data")
    assert m.rcb is not None
    

Functions

def test_split(mocker)

Test the test_split Function

Expand source code

def test_split(mocker):
    mocker.patch("src.modelbuilding.model.ModelBuilding.train", return_value=None)
    mocker.patch("src.modelbuilding.model.ModelBuilding.predict", return_value=None)
    df = pd.read_csv("https://raw.githubusercontent.com/ritik8801/Diabetes-Detection-Web-Application/main/Testing/tests/unit_tests/test_data/sample.csv")
    m = ModelBuilding(df, path="test_data")
    assert isinstance(m.X_train, pd.DataFrame)
    assert isinstance(m.X_test, pd.DataFrame)
    assert isinstance(m.y_train, pd.Series)
    assert isinstance(m.y_test, pd.Series)

@pytest.fixture()
def sample_split(mocker):
    data = pd.read_csv("https://raw.githubusercontent.com/ritik8801/Diabetes-Detection-Web-Application/main/Testing/tests/unit_tests/test_data/sample.csv")
    X = data[['Pregnancies', 'Glucose', 'BloodPressure',
       'SkinThickness', 'Insulin',
       'BMI', 'DiabetesPedigreeFunction', 'Age']]
    y = data['Outcome']
    X_train, X_test, y_train, y_test = train_test_split(X, y,
        test_size=0.2)
    return X_train, X_test, y_train, y_test
def test_train(mocker, sample_split)

Test the test_train Function

Expand source code

    def test_train(mocker, sample_split):
    mocker.patch("src.modelbuilding.model.ModelBuilding.split", return_value=None)
    mocker.patch("src.modelbuilding.model.ModelBuilding.predict", return_value=None)
    df = pd.read_csv("https://raw.githubusercontent.com/ritik8801/Diabetes-Detection-Web-Application/main/Testing/tests/unit_tests/test_data/sample.csv")
    print("sample split")
    print(sample_split[0])
    m = ModelBuilding(df, X_train= sample_split[0], X_test=sample_split[1],
    y_train=sample_split[2], y_test=sample_split[3], path="test_data")
    assert m.rcb is not None