#!/usr/bin/env python
#####################################################################################################################################################################################################
# Project:       Juniper
# Prototype:     Cascade Correlation Neural Network
# File Name:     constants_problem.py
# Author:        Paul Calnon
# Version:       0.3.1 (0.7.3)
#
# Date Created:  2025-08-02
# Last Modified: 2026-01-12
#
# License:       MIT License
# Copyright:     Copyright (c) 2024-2025 Paul Calnon
#
# Description:
#    This file contains constants used in the implementation of the SpiralProblem class that creates Spiral Problem datasets.
#
#####################################################################################################################################################################################################
# Notes:
#    - This file defines constants specifically for the SpiralProblem class and related functionalities.
#    - Constants are organized into sections for better readability and maintainability.
#
#####################################################################################################################################################################################################
# References:
#
#
#####################################################################################################################################################################################################
# TODO:
#
#####################################################################################################################################################################################################
# COMPLETED:
#
#
#####################################################################################################################################################################################################
# import numpy as np


#####################################################################################################################################################################################################
# # Define Default Values for Constants used in the SpiralDataset Example

# # Define Default Constants for min, max, and number of spirals
# _SPIRAL_DATASET_DEFAULT_MIN_SPIRALS = 2
# _SPIRAL_DATASET_DEFAULT_MAX_SPIRALS = 10

# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 2
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 3
# _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 4
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 5
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 6
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 7
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 8
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 9
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 10

# # Define Default Constants for min and number of points per spiral
# _SPIRAL_DATASET_DEFAULT_MIN_POINTS_PER_SPIRAL = 10

# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 100
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 200
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 300
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 400
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 500
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 600
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 700
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 800
# _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 900
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 1000

# # Define Default Constants for min noise level and noise level
# _SPIRAL_DATASET_DEFAULT_MIN_NOISE_LEVEL = 0.0

# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.0
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.001
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.01
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.1
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.11
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.12
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.13
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.14
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.15
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.2
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.25
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.3
# _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.35
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.4
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.45
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.5

# # Define Default Constants for min and number of rotations
# _SPIRAL_DATASET_DEFAULT_MIN_NUM_ROTATIONS = 0.5

# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 1.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 1.5
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 2.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 2.5
# _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 3.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 3.5
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 4.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 4.5
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 5.0

# # Define Default Constants for min and max radius
# _SPIRAL_DATASET_DEFAULT_MIN_RADIUS = 0.0
# # _SPIRAL_DATASET_DEFAULT_MAX_RADIUS = 1.0
# _SPIRAL_DATASET_DEFAULT_MAX_RADIUS = 10.0

# # Define Default Constants for rotation direction and seed value
# _SPIRAL_DATASET_DEFAULT_CLOCKWISE_ROTATION = True
# _SPIRAL_DATASET_DEFAULT_SEED_VALUE = 42

# # Define the Default Transform Function for the Spiral Dataset
# _SPIRAL_DATASET_DEFAULT_TRANSFORM = np.power

# # Define Default Constants for distribution factor
# # With power transforms, larger distribution factors result in more points being generated farther from the origin.
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.25
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.5
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.6
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.7
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.75
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.8
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.825
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.85
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.875
# _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.9
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.925
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.95
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.975
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.0
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.1
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.2
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.25
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.3
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.4
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.5
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.6
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.7
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.75
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.8
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.9
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.0
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.1
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.2
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.3
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.4
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.5

# _SPIRAL_DATASET_DEFAULT_INPUT_SIZE = 2
# # _SPIRAL_DATASET_DEFAULT_INPUT_SIZE = 100

# _SPIRAL_DATASET_DEFAULT_OUTPUT_SIZE = 2
# # _SPIRAL_DATASET_DEFAULT_OUTPUT_SIZE = 10

# # Define Default SpiralDataset Constants for train, test, and validation ratios
# # These ratios should sum to 1.0
# # _SPIRAL_DATASET_DATASET_TRAIN_RATIO = 1.0
# # _SPIRAL_DATASET_DATASET_TEST_RATIO = 0.0
# # _SPIRAL_DATASET_DATASET_VAL_RATIO = 0.0
# _SPIRAL_DATASET_DEFAULT_TRAIN_RATIO = 0.75
# _SPIRAL_DATASET_DEFAULT_TEST_RATIO = 0.15
# _SPIRAL_DATASET_DEFAULT_VAL_RATIO = 0.1

# # The mean of the MNIST dataset
# # _SPIRAL_DATASET_NORMALIZE = 0.1
# # _SPIRAL_DATASET_NORMALIZE = 0.1307
# # _SPIRAL_DATASET_NORMALIZE = 0.2
# # _SPIRAL_DATASET_NORMALIZE = 0.3
# # _SPIRAL_DATASET_NORMALIZE = 0.4
# _SPIRAL_DATASET_NORMALIZE = 0.5
# # _SPIRAL_DATASET_NORMALIZE = 0.6
# # _SPIRAL_DATASET_NORMALIZE = 0.7
# # _SPIRAL_DATASET_NORMALIZE = 0.8
# # _SPIRAL_DATASET_NORMALIZE = 0.9
# _SPIRAL_DATASET_NORMALIZE_DEFAULT = _SPIRAL_DATASET_NORMALIZE


# #####################################################################################################################################################################################################
# # Define Default Values for Constants used in the SpiralDataset Example

# # Define Default Constants for min, max, and number of spirals
# _SPIRAL_DATASET_DEFAULT_MIN_SPIRALS = 2
# _SPIRAL_DATASET_DEFAULT_MAX_SPIRALS = 10

# _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 2
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 3
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 4
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 5
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 6
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 7
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 8
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 9
# # _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS = 10

# # Define Default Constants for min and number of points per spiral
# _SPIRAL_DATASET_DEFAULT_MIN_POINTS_PER_SPIRAL = 10

# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 100
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 200
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 300
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 400
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 500
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 600
# _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 700
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 800
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 900
# # _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL = 1000

# # Define Default Constants for min noise level and noise level
# _SPIRAL_DATASET_DEFAULT_MIN_NOISE_LEVEL = 0.0

# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.0
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.001
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.01
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.1
# _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.11
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.12
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.13
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.14
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.15
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.2
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.25
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.3
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.35
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.4
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.45
# # _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL = 0.5

# # Define Default Constants for min and number of rotations
# _SPIRAL_DATASET_DEFAULT_MIN_NUM_ROTATIONS = 0.5

# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 1.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 1.5
# _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 2.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 2.5
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 3.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 3.5
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 4.0
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 4.5
# # _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS = 5.0

# # Define Default Constants for min and max radius
# _SPIRAL_DATASET_DEFAULT_MIN_RADIUS = 0.0
# # _SPIRAL_DATASET_DEFAULT_MAX_RADIUS = 1.0
# _SPIRAL_DATASET_DEFAULT_MAX_RADIUS = 10.0

# # Define Default Constants for rotation direction and seed value
# _SPIRAL_DATASET_DEFAULT_CLOCKWISE_ROTATION = True
# _SPIRAL_DATASET_DEFAULT_SEED_VALUE = 42

# # Define the Default Transform Function for the Spiral Dataset
# _SPIRAL_DATASET_DEFAULT_TRANSFORM = np.power

# # Define Default Constants for distribution factor
# # With power transforms, larger distribution factors result in more points being generated farther from the origin.
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.25
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.5
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.6
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.7
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.75
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.8
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.9
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 0.9
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.0
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.1
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.2
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.25
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.3
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.4
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.5
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.6
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.7
# _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.75
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.8
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 1.9
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.0
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.1
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.2
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.3
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.4
# # _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR = 2.5

# _SPIRAL_DATASET_DEFAULT_INPUT_SIZE = 2
# # _SPIRAL_DATASET_DEFAULT_INPUT_SIZE = 100

# _SPIRAL_DATASET_DEFAULT_OUTPUT_SIZE = 2
# # _SPIRAL_DATASET_DEFAULT_OUTPUT_SIZE = 10

# # Define Default SpiralDataset Constants for train, test, and validation ratios
# # These ratios should sum to 1.0
# # _SPIRAL_DATASET_DATASET_TRAIN_RATIO = 1.0
# # _SPIRAL_DATASET_DATASET_TEST_RATIO = 0.0
# # _SPIRAL_DATASET_DATASET_VAL_RATIO = 0.0
# _SPIRAL_DATASET_DEFAULT_TRAIN_RATIO = 0.7
# _SPIRAL_DATASET_DEFAULT_TEST_RATIO = 0.15
# _SPIRAL_DATASET_DEFAULT_VAL_RATIO = 0.1

# # The mean of the MNIST dataset
# # _SPIRAL_DATASET_NORMALIZE = 0.1
# # _SPIRAL_DATASET_NORMALIZE = 0.1307
# # _SPIRAL_DATASET_NORMALIZE = 0.2
# # _SPIRAL_DATASET_NORMALIZE = 0.3
# # _SPIRAL_DATASET_NORMALIZE = 0.4
# _SPIRAL_DATASET_NORMALIZE = 0.5
# # _SPIRAL_DATASET_NORMALIZE = 0.6
# # _SPIRAL_DATASET_NORMALIZE = 0.7
# # _SPIRAL_DATASET_NORMALIZE = 0.8
# # _SPIRAL_DATASET_NORMALIZE = 0.9
# _SPIRAL_DATASET_NORMALIZE_DEFAULT = _SPIRAL_DATASET_NORMALIZE


# # Define Default Constants for Candidate Unit
# _CANDIDATE_UNIT_LEARNING_RATE = 0.1
# _CANDIDATE_UNIT_EPOCHS = 100


# #####################################################################################################################################################################################################

# # TODO: Integrate this code into constants files
# # Define constants for directory paths and file names
# # Define SpiralDataset Example Constants for logging
# _SPIRAL_DATASET_LOG_NAME = _CASCOR_SPIRAL_DATASET_LOG_NAME
# _SPIRAL_DATASET_LOG_DATE_FORMAT = _CASCOR_SPIRAL_DATASET_LOG_DATE_FORMAT
# _SPIRAL_DATASET_LOG_FORMATTER_STRING = _CASCOR_SPIRAL_DATASET_LOG_FORMATTER_STRING
# _SPIRAL_DATASET_LOG_DIR_DEFAULT = _CASCOR_SPIRAL_DATASET_LOG_DIR_DEFAULT
# _SPIRAL_DATASET_LOG_FILE_PATH_DEFAULT = _CASCOR_SPIRAL_DATASET_LOG_FILE_PATH_DEFAULT
# _SPIRAL_DATASET_LOG_LEVEL = _CASCOR_SPIRAL_DATASET_LOG_LEVEL_DEFAULT
# _SPIRAL_DATASET_TITLE = "Spiral Dataset"
# _SPIRAL_DATASET_NAME = _SPIRAL_DATASET_TITLE.replace(" ", "_").lower()
# _SPIRAL_DATASET_ROOT_DIR = "/home/pcalnon/Development/python/dynamic_nn/src/prototypes"
# _SPIRAL_DATASET_HOME_DIR_NAME = _SPIRAL_DATASET_NAME
# _SPIRAL_DATASET_HOME_DIR = f"{_SPIRAL_DATASET_ROOT_DIR}/{_SPIRAL_DATASET_HOME_DIR_NAME}"
# _SPIRAL_DATASET_HOME_DIR_DEFAULT = _SPIRAL_DATASET_HOME_DIR
# # Define Constants for dataset Plotting and Visualization
# _SPIRAL_DATASET_VISUALIZATION_DIR_NAME = "images"
# _SPIRAL_DATASET_VISUALIZATION_DIR = (f"{_SPIRAL_DATASET_HOME_DIR}/{_SPIRAL_DATASET_VISUALIZATION_DIR_NAME}")
# _SPIRAL_DATASET_VISUALIZATION_DIR_DEFAULT = _SPIRAL_DATASET_VISUALIZATION_DIR
# _SPIRAL_DATASET_VISUALIZATION_FILENAME_ROOT = _SPIRAL_DATASET_NAME
# _SPIRAL_DATASET_VISUALIZATION_FILENAME_EXTENSION = ".png"
# # Define Constants for dataset directory and file structure
# _SPIRAL_DATASET_DATASET_DIR_NAME = "data"
# _SPIRAL_DATASET_DATASET_DIR = ( f"{_SPIRAL_DATASET_HOME_DIR}/{_SPIRAL_DATASET_DATASET_DIR_NAME}")
# _SPIRAL_DATASET_DATASET_DIR_DEFAULT = _SPIRAL_DATASET_DATASET_DIR
# # Define constants for dataset file names and image plots
# _SPIRAL_DATASET_FILENAME_ROOT = _SPIRAL_DATASET_NAME
# _SPIRAL_DATASET_FILENAME_EXTENSION = ".pt"
# _SPIRAL_DATASET_SPLIT_TITLE_TRAINING = "Training Set"
# _SPIRAL_DATASET_SPLIT_TITLE_TESTING = "Testing Set"
# _SPIRAL_DATASET_SPLIT_TITLE_VALIDATION = "Validation Set"
# _SPIRAL_DATASET_SPLIT_TITLES = [ _SPIRAL_DATASET_SPLIT_TITLE_TRAINING, _SPIRAL_DATASET_SPLIT_TITLE_TESTING, _SPIRAL_DATASET_SPLIT_TITLE_VALIDATION, ]
# _SPIRAL_DATASET_SPLIT_INDEX_TRAIN = 0
# _SPIRAL_DATASET_SPLIT_INDEX_TEST = 1
# _SPIRAL_DATASET_SPLIT_INDEX_VAL = 2
# _SPIRAL_DATASET_SPLIT_FILENAME_TRAIN = "training_set"
# _SPIRAL_DATASET_SPLIT_FILENAME_TEST = "testing_set"
# _SPIRAL_DATASET_SPLIT_FILENAME_VAL = "validation_set"
# _SPIRAL_DATASET_SPLIT_FILENAMES = [ _SPIRAL_DATASET_SPLIT_FILENAME_TRAIN, _SPIRAL_DATASET_SPLIT_FILENAME_TEST, _SPIRAL_DATASET_SPLIT_FILENAME_VAL, ]
# _SPIRAL_DATASET_SPLIT_INDEX_TRAIN = 0
# _SPIRAL_DATASET_SPLIT_INDEX_TEST = 1
# _SPIRAL_DATASET_SPLIT_INDEX_VAL = 2
# _SPIRAL_DATASET_DATASET_FILE_TYPE_COMPLETE = "dataset"
# _SPIRAL_DATASET_DATASET_FILE_TYPE_TRAIN = "training"
# _SPIRAL_DATASET_DATASET_FILE_TYPE_TEST = "testing"
# _SPIRAL_DATASET_DATASET_FILE_TYPE_VAL = "validation"
# _SPIRAL_DATASET_DATASET_FILE_TYPES_SPLITS = [ _SPIRAL_DATASET_DATASET_FILE_TYPE_TRAIN, _SPIRAL_DATASET_DATASET_FILE_TYPE_TEST, _SPIRAL_DATASET_DATASET_FILE_TYPE_VAL, ]
# _SPIRAL_DATASET_DATASET_FILE_TYPES_COMPLETE = [ _SPIRAL_DATASET_DATASET_FILE_TYPE_COMPLETE, ] + _SPIRAL_DATASET_DATASET_FILE_TYPES_SPLITS
# _SPIRAL_DATASET_DATASET_TYPE_INDEX_COMPLETE = 0
# _SPIRAL_DATASET_DATASET_TYPE_INDEX_TRAIN = 1
# _SPIRAL_DATASET_DATASET_TYPE_INDEX_TEST = 2
# _SPIRAL_DATASET_DATASET_TYPE_INDEX_VAL = 3


# #####################################################################################################################################################################################################
# # Define Default Values for Constants in the Simple Spiral Dataset
# # Define SpiralDataset Example Constants for logging
# _SPIRAL_SIMPLE_DATASET_LOG_NAME = _CASCOR_SPIRAL_DATASET_LOG_NAME
# _SPIRAL_SIMPLE_DATASET_LOG_DATE_FORMAT = _CASCOR_SPIRAL_DATASET_LOG_DATE_FORMAT
# _SPIRAL_SIMPLE_DATASET_LOG_FORMATTER_STRING = ( _CASCOR_SPIRAL_DATASET_LOG_FORMATTER_STRING)
# _SPIRAL_SIMPLE_DATASET_LOG_DIR = _CASCOR_SPIRAL_DATASET_LOG_DIR_DEFAULT
# _SPIRAL_SIMPLE_DATASET_LOG_FILE_PATH = _CASCOR_SPIRAL_DATASET_LOG_FILE_PATH_DEFAULT
# _SPIRAL_SIMPLE_DATASET_LOG_LEVEL = _CASCOR_SPIRAL_DATASET_LOG_LEVEL_DEFAULT
# _SPIRAL_SIMPLE_DATASET_NAME = f"simple_{_SPIRAL_DATASET_NAME}"
# _SPIRAL_SIMPLE_DATASET_NUM_SPIRALS = 2
# _SPIRAL_SIMPLE_DATASET_POINTS_PER_SPIRAL = 100
# _SPIRAL_SIMPLE_DATASET_NOISE_LEVEL = 0.05
# _SPIRAL_SIMPLE_DATASET_NUM_ROTATIONS = 1
# _SPIRAL_SIMPLE_DATASET_MIN_RADIUS = 0.0
# _SPIRAL_SIMPLE_DATASET_MAX_RADIUS = 1.0
# _SPIRAL_SIMPLE_DATASET_CLOCKWISE_ROTATION = True
# _SPIRAL_SIMPLE_DATASET_1_ROTATION_DEGREES = 360
# _SPIRAL_SIMPLE_DATASET_PLOT_HEADING = "Simple Two-Spiral Dataset"
# _SPIRAL_SIMPLE_DATASET_FILENAME_ROOT = _SPIRAL_SIMPLE_DATASET_PLOT_HEADING.replace(" ", "_").lower()
# _SPIRAL_SIMPLE_DATASET_HOME_DIR_NAME = _SPIRAL_DATASET_HOME_DIR_NAME
# _SPIRAL_SIMPLE_DATASET_HOME_DIR = ( f"{_SPIRAL_DATASET_ROOT_DIR}/{_SPIRAL_SIMPLE_DATASET_HOME_DIR_NAME}")
# _SPIRAL_SIMPLE_DATASET_VISUALIZATION_DIR_NAME = _SPIRAL_DATASET_VISUALIZATION_DIR_NAME
# _SPIRAL_SIMPLE_DATASET_VISUALIZATION_DIR = ( f"{_SPIRAL_SIMPLE_DATASET_HOME_DIR}/{_SPIRAL_SIMPLE_DATASET_VISUALIZATION_DIR_NAME}")
# _SPIRAL_SIMPLE_DATASET_VISUALIZATION_FILENAME_ROOT = ( _SPIRAL_SIMPLE_DATASET_FILENAME_ROOT)
# _SPIRAL_SIMPLE_DATASET_VISUALIZATION_FILENAME_EXTENSION = (_SPIRAL_DATASET_VISUALIZATION_FILENAME_EXTENSION)
# _SPIRAL_SIMPLE_DATASET_DATASET_DIR_NAME = _SPIRAL_DATASET_DATASET_DIR_NAME
# _SPIRAL_SIMPLE_DATASET_DATASET_DIR = (f"{_SPIRAL_SIMPLE_DATASET_HOME_DIR}/{_SPIRAL_SIMPLE_DATASET_DATASET_DIR_NAME}")
# _SPIRAL_SIMPLE_DATASET_DATASET_FILENAME_ROOT = _SPIRAL_SIMPLE_DATASET_FILENAME_ROOT
# _SPIRAL_SIMPLE_DATASET_DATASET_FILENAME_EXTENSION = _SPIRAL_DATASET_FILENAME_EXTENSION

# #####################################################################################################################################################################################################
# # Define Generated Datasets class Constants to provide reasonable defaults
# # Define SpiralDataset Constants for Project directory structure
# _GENERATED_DATASETS_HOME_DIR = _CASCOR_SPIRAL_HOME_DIR
# _GENERATED_DATASETS_ROOT_DIR = _CASCOR_SPIRAL_ROOT_DIR
# _GENERATED_DATASETS_PARENT_DIR_NAME = _CASCOR_SPIRAL_PARENT_DIR_NAME
# _GENERATED_DATASETS_PARENT_DIR = _CASCOR_SPIRAL_PARENT_DIR
# _GENERATED_DATASETS_APPLICATION_DIR_NAME = _CASCOR_SPIRAL_APPLICATION_DIR_NAME
# _GENERATED_DATASETS_APPLICATION_DIR = _CASCOR_SPIRAL_APPLICATION_DIR
# _GENERATED_DATASETS_PROJ_DIR_NAME = _CASCOR_SPIRAL_APPLICATION_DIR_NAME
# _GENERATED_DATASETS_PROJ_DIR = _CASCOR_SPIRAL_DATASET_PROJ_DIR
# _GENERATED_DATASETS_DATA_DIR_NAME = _CASCOR_SPIRAL_DATA_DIR_NAME
# _GENERATED_DATASETS_DATA_DIR = _CASCOR_SPIRAL_DATA_DIR
# _GENERATED_DATASETS_IMAGE_DIR_NAME = _CASCOR_SPIRAL_IMAGE_DIR_NAME
# _GENERATED_DATASETS_IMAGE_DIR = _CASCOR_SPIRAL_IMAGE_DIR
# # Define SpiralDataset Constants for hdf5 file and dataset structure
# _GENERATED_DATASETS_DATASET_NAME = _GENERATED_DATASETS_APPLICATION_DIR_NAME
# _GENERATED_DATASETS_DATA_FILE_EXT = _CASCOR_SPIRAL_DATA_FILE_EXT
# _GENERATED_DATASETS_HDF5_FILE_EXT = _CASCOR_SPIRAL_HDF5_FILE_EXT
# _GENERATED_DATASETS_HDF5_FILE_NAME = f"{_GENERATED_DATASETS_DATASET_NAME}.{_GENERATED_DATASETS_HDF5_FILE_EXT}"
# _GENERATED_DATASETS_DATA_KEY = "dataset"
# _GENERATED_DATASETS_LABELS_KEY = "labels"
# _GENERATED_DATASETS_INPUT_SIZE = _CASCOR_SPIRAL_DATASET_INPUT_SIZE
# _GENERATED_DATASETS_OUTPUT_SIZE = _CASCOR_SPIRAL_DATASET_OUTPUT_SIZE
# # Define SpiralDataset Constants for Standard Application Data directory structure
# _GENERATED_DATASETS_HDF5_DIR_DATA = "data"
# _GENERATED_DATASETS_HDF5_DIR_NAME = "SPIRAL"
# _GENERATED_DATASETS_HDF5_DIR_TYPE = "Custom"
# _GENERATED_DATASETS_HDF5_DIR_PATH = f"{_GENERATED_DATASETS_ROOT_DIR}/{_GENERATED_DATASETS_HDF5_DIR_DATA}/{_GENERATED_DATASETS_HDF5_DIR_NAME}/{_GENERATED_DATASETS_HDF5_DIR_TYPE}"
# _GENERATED_DATASETS_HDF5_FILE_PATH = f"{_GENERATED_DATASETS_HDF5_DIR_PATH}/{_GENERATED_DATASETS_HDF5_FILE_NAME}"
# # Define SpiralDataset Example Constants for logging
# _GENERATED_DATASETS_LOG_NAME = _CASCOR_SPIRAL_DATASET_LOG_NAME
# _GENERATED_DATASETS_LOG_DATE_FORMAT = _CASCOR_SPIRAL_DATASET_LOG_DATE_FORMAT
# _GENERATED_DATASETS_LOG_FORMATTER_STRING = _CASCOR_SPIRAL_DATASET_LOG_FORMATTER_STRING
# _GENERATED_DATASETS_LOG_DIR = _CASCOR_SPIRAL_DATASET_LOG_DIR_DEFAULT
# _GENERATED_DATASETS_LOG_FILE_PATH = _CASCOR_SPIRAL_DATASET_LOG_FILE_PATH_DEFAULT
# _GENERATED_DATASETS_LOG_LEVEL = _CASCOR_SPIRAL_DATASET_LOG_LEVEL_DEFAULT
# # Define SpiralDataset Example Constants for min, max, and number of spirals
# _GENERATED_DATASETS_MIN_SPIRALS = _SPIRAL_DATASET_DEFAULT_MIN_SPIRALS
# _GENERATED_DATASETS_MAX_SPIRALS = _SPIRAL_DATASET_DEFAULT_MAX_SPIRALS
# _GENERATED_DATASETS_NUM_SPIRALS = _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS
# # Define SpiralDataset Example Constants for min and number of points per spiral
# _GENERATED_DATASETS_MIN_POINTS_PER_SPIRAL = (_SPIRAL_DATASET_DEFAULT_MIN_POINTS_PER_SPIRAL)
# _GENERATED_DATASETS_NUM_POINTS_PER_SPIRAL = (_SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL)
# # Define SpiralDataset Example Constants for min noise level and noise level
# _GENERATED_DATASETS_MIN_NOISE_LEVEL = _SPIRAL_DATASET_DEFAULT_MIN_NOISE_LEVEL
# _GENERATED_DATASETS_NOISE_LEVEL = _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL
# # Define SpiralDataset Example Constants for min and number of rotations
# _GENERATED_DATASETS_MIN_NUM_ROTATIONS = _SPIRAL_DATASET_DEFAULT_MIN_NUM_ROTATIONS
# _GENERATED_DATASETS_NUM_ROTATIONS = _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS
# # Define SpiralDataset Example Constants for max radius
# _GENERATED_DATASETS_MIN_RADIUS = _SPIRAL_DATASET_DEFAULT_MIN_RADIUS
# _GENERATED_DATASETS_MAX_RADIUS = _SPIRAL_DATASET_DEFAULT_MAX_RADIUS
# # Define SpiralDataset Example Constants for rotation direction and seed value
# _GENERATED_DATASETS_CLOCKWISE_ROTATION = _SPIRAL_DATASET_DEFAULT_CLOCKWISE_ROTATION
# _GENERATED_DATASETS_SEED_VALUE = _SPIRAL_DATASET_DEFAULT_SEED_VALUE
# # Define SpiralDataset Example Constants for train, test, and validation ratios (ratios should sum to 1.0)
# _GENERATED_DATASETS_TRAIN_RATIO = _SPIRAL_DATASET_DEFAULT_TRAIN_RATIO
# _GENERATED_DATASETS_TEST_RATIO = _SPIRAL_DATASET_DEFAULT_TEST_RATIO
# _GENERATED_DATASETS_VAL_RATIO = _SPIRAL_DATASET_DEFAULT_VAL_RATIO

# #####################################################################################################################################################################################################
# # Define HDF5 Storage class Constants to provide reasonable defaults
# # Define HDF5Storage Constants for hdf5 file and dataset structure
# _HDF5_STORAGE_HOME_DIR = _GENERATED_DATASETS_HOME_DIR
# _HDF5_STORAGE_ROOT_DIR = _GENERATED_DATASETS_ROOT_DIR
# _HDF5_STORAGE_PARENT_DIR_NAME = _GENERATED_DATASETS_PARENT_DIR_NAME
# _HDF5_STORAGE_PARENT_DIR = _GENERATED_DATASETS_PARENT_DIR
# _HDF5_STORAGE_APPLICATION_DIR_NAME = _GENERATED_DATASETS_APPLICATION_DIR_NAME
# _HDF5_STORAGE_APPLICATION_DIR = _GENERATED_DATASETS_APPLICATION_DIR
# _HDF5_STORAGE_PROJ_DIR_NAME = _GENERATED_DATASETS_PROJ_DIR_NAME
# _HDF5_STORAGE_PROJ_DIR = _GENERATED_DATASETS_PROJ_DIR
# _HDF5_STORAGE_DATA_DIR_NAME = _GENERATED_DATASETS_DATA_DIR_NAME
# _HDF5_STORAGE_DATA_DIR = _GENERATED_DATASETS_DATA_DIR
# _HDF5_STORAGE_IMAGE_DIR_NAME = _GENERATED_DATASETS_IMAGE_DIR_NAME
# _HDF5_STORAGE_IMAGE_DIR = _GENERATED_DATASETS_IMAGE_DIR
# # Define SpiralDataset Constants for hdf5 file and dataset structure
# _HDF5_STORAGE_DATASET_NAME = _GENERATED_DATASETS_DATASET_NAME
# _HDF5_STORAGE_HDF5_FILE_EXT = _GENERATED_DATASETS_HDF5_FILE_EXT
# _HDF5_STORAGE_HDF5_FILE_NAME = _GENERATED_DATASETS_HDF5_FILE_NAME
# _HDF5_STORAGE_DATA_KEY = _GENERATED_DATASETS_DATA_KEY
# _HDF5_STORAGE_LABELS_KEY = _GENERATED_DATASETS_LABELS_KEY
# _HDF5_STORAGE_DATASET_INPUT_SIZE = _GENERATED_DATASETS_INPUT_SIZE
# _HDF5_STORAGE_DATASET_OUTPUT_SIZE = _GENERATED_DATASETS_OUTPUT_SIZE
# # Define SpiralDataset Constants for Standard Application Data directory structure
# _HDF5_STORAGE_HDF5_DIR_DATA = _GENERATED_DATASETS_HDF5_DIR_DATA
# _HDF5_STORAGE_HDF5_DIR_NAME = _GENERATED_DATASETS_HDF5_DIR_NAME
# _HDF5_STORAGE_HDF5_DIR_TYPE = _GENERATED_DATASETS_HDF5_DIR_TYPE
# _HDF5_STORAGE_HDF5_DIR_PATH = _GENERATED_DATASETS_HDF5_DIR_PATH
# _HDF5_STORAGE_HDF5_FILE_PATH = _GENERATED_DATASETS_HDF5_FILE_PATH
# # Define HDF5Storage Constants for Logging
# _HDF5_STORAGE_LOG_NAME = _CASCOR_SPIRAL_DATASET_LOG_NAME
# _HDF5_STORAGE_LOG_DATE_FORMAT = _CASCOR_SPIRAL_DATASET_LOG_DATE_FORMAT
# _HDF5_STORAGE_LOG_FORMATTER_STRING = _CASCOR_SPIRAL_DATASET_LOG_FORMATTER_STRING
# _HDF5_STORAGE_LOG_DIR = _CASCOR_SPIRAL_DATASET_LOG_DIR_DEFAULT
# _HDF5_STORAGE_LOG_FILE_PATH = _CASCOR_SPIRAL_DATASET_LOG_FILE_PATH_DEFAULT
# _HDF5_STORAGE_LOG_LEVEL = _CASCOR_SPIRAL_DATASET_LOG_LEVEL_DEFAULT

# #####################################################################################################################################################################################################
# # Define SpiralGenerator class Constants to provide reasonable defaults
# # Define SpiralDataset Example Constants for logging
# _SPIRAL_GENERATOR_LOG_NAME = _CASCOR_SPIRAL_DATASET_LOG_NAME
# _SPIRAL_GENERATOR_LOG_DATE_FORMAT = _CASCOR_SPIRAL_DATASET_LOG_DATE_FORMAT
# _SPIRAL_GENERATOR_LOG_FORMATTER_STRING = _CASCOR_SPIRAL_DATASET_LOG_FORMATTER_STRING
# _SPIRAL_GENERATOR_LOG_DIR = _CASCOR_SPIRAL_DATASET_LOG_DIR_DEFAULT
# _SPIRAL_GENERATOR_LOG_FILE_PATH_DEFAULT = _CASCOR_SPIRAL_DATASET_LOG_FILE_PATH_DEFAULT
# _SPIRAL_GENERATOR_LOG_LEVEL_DEFAULT = _CASCOR_SPIRAL_DATASET_LOG_LEVEL_DEFAULT
# # Define SpiralGenerator Constants for min, max, and number of spirals
# _SPIRAL_GENERATOR_MIN_SPIRALS = _SPIRAL_DATASET_DEFAULT_MIN_SPIRALS
# _SPIRAL_GENERATOR_MAX_SPIRALS = _SPIRAL_DATASET_DEFAULT_MAX_SPIRALS
# _SPIRAL_GENERATOR_NUM_SPIRALS = _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS
# # Define SpiralGenerator Constants for min and number of points per spiral
# _SPIRAL_GENERATOR_MIN_POINTS_PER_SPIRAL = _SPIRAL_DATASET_DEFAULT_MIN_POINTS_PER_SPIRAL
# _SPIRAL_GENERATOR_NUM_POINTS_PER_SPIRAL = _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL
# # Define SpiralGenerator Constants for min noise level and noise level
# _SPIRAL_GENERATOR_MIN_NOISE_LEVEL = _SPIRAL_DATASET_DEFAULT_MIN_NOISE_LEVEL
# _SPIRAL_GENERATOR_NOISE_LEVEL = _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL
# # Define SpiralGenerator Constants for min and number of rotations
# _SPIRAL_GENERATOR_MIN_NUM_ROTATIONS = _SPIRAL_DATASET_DEFAULT_MIN_NUM_ROTATIONS
# _SPIRAL_GENERATOR_NUM_ROTATIONS = _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS
# # Define SpiralGenerator Constants for max radius
# _SPIRAL_GENERATOR_MIN_RADIUS = _SPIRAL_DATASET_DEFAULT_MIN_RADIUS
# _SPIRAL_GENERATOR_MAX_RADIUS = _SPIRAL_DATASET_DEFAULT_MAX_RADIUS
# # Define SpiralGenerator Constants for distribution factor Transforms
# _SPIRAL_GENERATOR_TRANSFORM = _SPIRAL_DATASET_DEFAULT_TRANSFORM
# _SPIRAL_GENERATOR_DISTRIBUTION_FACTOR = _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR
# # Define SpiralGenerator Constants for rotation direction and seed value
# _SPIRAL_GENERATOR_CLOCKWISE_ROTATION = _SPIRAL_DATASET_DEFAULT_CLOCKWISE_ROTATION
# _SPIRAL_GENERATOR_SEED_VALUE = _SPIRAL_DATASET_DEFAULT_SEED_VALUE
# # Define SpiralGenerator Constants for train, test, and validation ratios
# _SPIRAL_GENERATOR_TRAIN_RATIO = _SPIRAL_DATASET_DEFAULT_TRAIN_RATIO
# _SPIRAL_GENERATOR_TEST_RATIO = _SPIRAL_DATASET_DEFAULT_TEST_RATIO
# _SPIRAL_GENERATOR_VAL_RATIO = _SPIRAL_DATASET_DEFAULT_VAL_RATIO

# #####################################################################################################################################################################################################
# # Define SpiralConfig class Constants to provide reasonable defaults
# # Define SpiralDataset Example Constants for logging
# _SPIRAL_CONFIG_LOG_NAME = _CASCOR_SPIRAL_DATASET_LOG_NAME
# _SPIRAL_CONFIG_LOG_DATE_FORMAT = _CASCOR_SPIRAL_DATASET_LOG_DATE_FORMAT
# _SPIRAL_CONFIG_LOG_FORMATTER_STRING = _CASCOR_SPIRAL_DATASET_LOG_FORMATTER_STRING
# _SPIRAL_CONFIG_LOG_DIR = _CASCOR_SPIRAL_DATASET_LOG_DIR_DEFAULT
# _SPIRAL_CONFIG_LOG_FILE_PATH = _CASCOR_SPIRAL_DATASET_LOG_FILE_PATH
# _SPIRAL_CONFIG_LOG_LEVEL = _CASCOR_SPIRAL_DATASET_LOG_LEVEL_DEFAULT
# # Define SpiralConfig Constants for min, max, and number of spirals
# _SPIRAL_CONFIG_MIN_SPIRALS = _SPIRAL_DATASET_DEFAULT_MIN_SPIRALS
# _SPIRAL_CONFIG_MAX_SPIRALS = _SPIRAL_DATASET_DEFAULT_MAX_SPIRALS
# _SPIRAL_CONFIG_NUM_SPIRALS = _SPIRAL_DATASET_DEFAULT_NUM_SPIRALS
# # Define SpiralConfig Constants for min and number of points per spiral
# _SPIRAL_CONFIG_MIN_POINTS_PER_SPIRAL = _SPIRAL_DATASET_DEFAULT_MIN_POINTS_PER_SPIRAL
# _SPIRAL_CONFIG_NUM_POINTS_PER_SPIRAL = _SPIRAL_DATASET_DEFAULT_NUM_POINTS_PER_SPIRAL
# # Define SpiralConfig Constants for min noise level and noise level
# _SPIRAL_CONFIG_MIN_NOISE_LEVEL = _SPIRAL_DATASET_DEFAULT_MIN_NOISE_LEVEL
# _SPIRAL_CONFIG_NOISE_LEVEL = _SPIRAL_DATASET_DEFAULT_NOISE_LEVEL
# # Define SpiralConfig Constants for min and number of rotations
# _SPIRAL_CONFIG_MIN_NUM_ROTATIONS = _SPIRAL_DATASET_DEFAULT_MIN_NUM_ROTATIONS
# _SPIRAL_CONFIG_NUM_ROTATIONS = _SPIRAL_DATASET_DEFAULT_NUM_ROTATIONS
# # Define SpiralConfig Constants for max radius
# _SPIRAL_CONFIG_MIN_RADIUS = _SPIRAL_DATASET_DEFAULT_MIN_RADIUS
# _SPIRAL_CONFIG_MAX_RADIUS = _SPIRAL_DATASET_DEFAULT_MAX_RADIUS
# # Define SpiralGenerator Constants for distribution factor Transforms
# _SPIRAL_CONFIG_TRANSFORM = _SPIRAL_DATASET_DEFAULT_TRANSFORM
# _SPIRAL_CONFIG_DISTRIBUTION_FACTOR = _SPIRAL_DATASET_DEFAULT_DISTRIBUTION_FACTOR
# # Define SpiralConfig Constants for rotation direction and seed value
# _SPIRAL_CONFIG_CLOCKWISE_ROTATION = _SPIRAL_DATASET_DEFAULT_CLOCKWISE_ROTATION
# _SPIRAL_CONFIG_SEED_VALUE = _SPIRAL_DATASET_DEFAULT_SEED_VALUE
# _SPIRAL_CONFIG_INPUT_SIZE = _SPIRAL_DATASET_DEFAULT_INPUT_SIZE
# _SPIRAL_CONFIG_OUTPUT_SIZE = _SPIRAL_DATASET_DEFAULT_OUTPUT_SIZE

# #####################################################################################################################################################################################################


#####################################################################################################################################################################################################
# Dataset Parameters for the Two Spiral Problem classified by the Cascade Correlation Network
#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, number of spirals
_SPIRAL_PROBLEM_NUM_SPIRALS = 2
# _SPIRAL_PROBLEM_NUM_SPIRALS = 3
# _SPIRAL_PROBLEM_NUM_SPIRALS = 4
# _SPIRAL_PROBLEM_NUM_SPIRALS = 5
# _SPIRAL_PROBLEM_NUM_SPIRALS = 6
# _SPIRAL_PROBLEM_NUM_SPIRALS = 7
# _SPIRAL_PROBLEM_NUM_SPIRALS = 8
# _SPIRAL_PROBLEM_NUM_SPIRALS = 9
# _SPIRAL_PROBLEM_NUM_SPIRALS = 10

###################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, number of rotations
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 1
_SPIRAL_PROBLEM_NUM_ROTATIONS = 2
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 3
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 4
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 5
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 6
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 7
# _SPIRAL_PROBLEM_NUM_ROTATIONS = 8

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, clockwise or counter-clockwise rotation
_SPIRAL_PROBLEM_CLOCKWISE = True
# _SPIRAL_PROBLEM_CLOCKWISE = False

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, number of points per spiral
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 100
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 200
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 300
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 400
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 500
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 600
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 700                        # This is the default value used in the original implementation.
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 800
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 900
_SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1000  # This value was used with 100% run
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1100
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1200
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1300
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1400
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1500
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1600
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1700
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1800
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 1900
# _SPIRAL_PROBLEM_NUMBER_POINTS_PER_SPIRAL = 2000

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, distribution factor
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.25
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.50
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.51
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.52
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.53
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.54
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.55
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.56
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.57
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.58
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.59
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.60
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.61
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.62
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.63
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.64
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.65
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.66
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.67
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.68
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.69
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.70
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.71
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.72
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.73
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.74
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.75
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.76
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.77
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.78
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.79
_SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.80
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.81
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.82
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.83
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.84
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.85
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.86
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.87
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.88
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.89
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.90
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.91
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.92
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.93
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.94
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.95
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.96
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.97
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.98
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 0.99
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.00
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.01
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.02
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.03
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.04
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.05
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.06
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.07
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.08
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.09
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.10
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.11
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.12
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.13
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.14
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.15
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.16
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.17
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.18
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.19
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.20
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.21
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.22
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.25
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.3
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.35
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.4
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.45
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.5
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.55
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.6
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.65
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.7
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.75
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.8
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.85
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.9
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 1.95
# _SPIRAL_PROBLEM_DISTRIBUTION_FACTOR = 2.0

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, noise factor
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.0
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.005
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.01
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.02
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.03
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.04
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.05                           # This is the default value used in the original implementation.
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.055
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.06
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.07
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.08
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.09
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.1                            # This value was used with 100% run
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.15
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.2
_SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.25
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.3
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.35
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.4
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.45
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.5
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.6
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.7
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.8
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 0.9
# _SPIRAL_PROBLEM_NOISE_FACTOR_DEFAULT = 1.0

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, random value scale
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.001
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.002
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.003
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.004
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.005
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.006
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.007
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.008
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.009
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.01
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.02
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.03
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.04
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.05
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.06
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.07
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.08
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.09
_SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.1  # This is the default value used in the original implementation and was used with 100% run
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.15
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.2
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.25
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.3
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.35
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.4
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.45
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.5
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.55
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.6
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.65
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.7
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.75
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.8
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.85
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.9
# _SPIRAL_PROBLEM_RANDOM_VALUE_SCALE = 0.95

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, default origin of the spiral
_SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.1
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.2
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.3
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.4
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.5
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.6
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.7
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.8
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 0.9
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 1.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 2.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 3.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 4.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 5.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 6.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 7.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 8.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 9.0
# _SPIRAL_PROBLEM_DEFAULT_ORIGIN = 10.0

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, default radius of the spiral
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.1
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.2
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.3
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.4
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.6
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.7
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.8
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 0.9
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 1.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 1.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 2.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 2.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 3.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 3.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 4.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 4.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 5.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 5.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 6.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 6.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 7.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 7.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 8.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 8.5
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 9.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 9.5
_SPIRAL_PROBLEM_DEFAULT_RADIUS = 10.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 15.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 20.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 25.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 30.0
# _SPIRAL_PROBLEM_DEFAULT_RADIUS = 35.0

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, train and test ratios used for splitting the dataset
_SPIRAL_PROBLEM_TRAIN_RATIO = 0.8
_SPIRAL_PROBLEM_TEST_RATIO = 0.2

#####################################################################################################################################################################################################
# Define constants for the Two Spiral Problem Dataset, number and limits of original points and limits for new points. These constants are used to scale an original dataset to a new dataset limits.
_SPIRAL_PROBLEM_ORIG_POINTS = 100
_SPIRAL_PROBLEM_MIN_NEW = 50
_SPIRAL_PROBLEM_MAX_NEW = 150
_SPIRAL_PROBLEM_MIN_ORIG = 0
_SPIRAL_PROBLEM_MAX_ORIG = 200

#####################################################################################################################################################################################################
# Define Input and Output Sizes from the Spiral Problem dataset for the Cascade Correlation Network Model
_SPIRAL_PROBLEM_OUTPUT_SIZE = _SPIRAL_PROBLEM_NUM_SPIRALS


#####################################################################################################################################################################################################
# Define constants for the SpiralProblem class, spiral_problem.py file
#####################################################################################################################################################################################################
# Define constants for the Cascade Correlation Network, generate plots
_SPIRAL_PROBLEM_GENERATE_PLOTS_DEFAULT = True
# _SPIRAL_PROBLEM_GENERATE_PLOTS_DEFAULT = False
