# Path: vasppy/procar.py
# class KPoint():
# class Procar:
#     def __init__( self, index, frac_coords, weight ):
#     def cart_coords( self, reciprocal_lattice ):
#     def __eq__( self, other ):
#     def __repr__( self ):
# def get_numbers_from_string( string ):
# def k_point_parser( string ):
# def projections_parser( string ):
# def area_of_a_triangle_in_cartesian_space( a, b, c ):
# def points_are_in_a_straight_line( points, tolerance=1e-7 ):
# def two_point_effective_mass( cartesian_k_points, eigenvalues ):
# def least_squares_effective_mass( cartesian_k_points, eigenvalues ):
#     def __init__( self, spin=1, negative_occupancies='warn' ):
#     def occupancy( self ):
#     def __add__( self, other ):
#     def parse_projections( self ):
#     def parse_k_points( self ):
#     def parse_bands( self ):
#     def sanity_check( self ):
#     def from_files( cls, filenames, **kwargs ):
#     def from_file( cls, filename, negative_occupancies='warn',
#                    select_zero_weighted_k_points=False ):
#     def read_from_file( self, filename ):
#     def _read_from_file( self, filename ):
#     def number_of_k_points( self ):
#     def number_of_bands( self ):
#     def spin_channels( self ):
#     def number_of_ions( self ):
#     def number_of_projections( self ):
#     def print_weighted_band_structure( self, spins=None, ions=None, orbitals=None, scaling=1.0, e_fermi=0.0, reciprocal_lattice=None ):
#     def weighted_band_structure( self, spins=None, ions=None, orbitals=None, scaling=1.0, e_fermi=0.0, reciprocal_lattice=None ):
#     def effective_mass_calc( self, k_point_indices, band_index, reciprocal_lattice, spin=1, printing=False ):
#     def x_axis( self, reciprocal_lattice=None ):
#     def bands( self ):
#     def k_points( self ):
#     def select_bands_by_kpoint( self, band_indices ):
#     def select_k_points( self, band_indices ):


import unittest
import os
import numpy as np
import warnings
from vasppy import procar
from unittest.mock import patch, call
from copy import deepcopy

test_data_dir = 'test_data'
test_procar_filename = os.path.join( os.path.dirname( __file__ ), test_data_dir, 'PROCAR_test' )
test_procar_spin_polarised_filename = os.path.join( os.path.dirname( __file__ ), test_data_dir, 'PROCAR_spin_polarised_test' )

class KPointTestCase( unittest.TestCase ):
    """Test for procar.KPoint class"""

    def setUp( self ):
        index = 1
        frac_coords = np.array( [ 0.1, 0.2, 0.3 ] )
        weight = 0.1

# Path: vasppy/procar.py
# class KPoint():
# class Procar:
#     def __init__( self, index, frac_coords, weight ):
#     def cart_coords( self, reciprocal_lattice ):
#     def __eq__( self, other ):
#     def __repr__( self ):
# def get_numbers_from_string( string ):
# def k_point_parser( string ):
# def projections_parser( string ):
# def area_of_a_triangle_in_cartesian_space( a, b, c ):
# def points_are_in_a_straight_line( points, tolerance=1e-7 ):
# def two_point_effective_mass( cartesian_k_points, eigenvalues ):
# def least_squares_effective_mass( cartesian_k_points, eigenvalues ):
#     def __init__( self, spin=1, negative_occupancies='warn' ):
#     def occupancy( self ):
#     def __add__( self, other ):
#     def parse_projections( self ):
#     def parse_k_points( self ):
#     def parse_bands( self ):
#     def sanity_check( self ):
#     def from_files( cls, filenames, **kwargs ):
#     def from_file( cls, filename, negative_occupancies='warn',
#                    select_zero_weighted_k_points=False ):
#     def read_from_file( self, filename ):
#     def _read_from_file( self, filename ):
#     def number_of_k_points( self ):
#     def number_of_bands( self ):
#     def spin_channels( self ):
#     def number_of_ions( self ):
#     def number_of_projections( self ):
#     def print_weighted_band_structure( self, spins=None, ions=None, orbitals=None, scaling=1.0, e_fermi=0.0, reciprocal_lattice=None ):
#     def weighted_band_structure( self, spins=None, ions=None, orbitals=None, scaling=1.0, e_fermi=0.0, reciprocal_lattice=None ):
#     def effective_mass_calc( self, k_point_indices, band_index, reciprocal_lattice, spin=1, printing=False ):
#     def x_axis( self, reciprocal_lattice=None ):
#     def bands( self ):
#     def k_points( self ):
#     def select_bands_by_kpoint( self, band_indices ):
#     def select_k_points( self, band_indices ):


# Path: tests/test_procar.py
import unittest
import os
import numpy as np
import warnings
from vasppy import procar
from unittest.mock import patch, call
from copy import deepcopy


test_data_dir = 'test_data'
test_procar_filename = os.path.join( os.path.dirname( __file__ ), test_data_dir, 'PROCAR_test' )
test_procar_spin_polarised_filename = os.path.join( os.path.dirname( __file__ ), test_data_dir, 'PROCAR_spin_polarised_test' )

class KPointTestCase( unittest.TestCase ):
    """Test for procar.KPoint class"""

    def setUp( self ):
        index = 1
        frac_coords = np.array( [ 0.1, 0.2, 0.3 ] )
        weight = 0.1

        self.k_point = procar.KPoint( index=index, frac_coords=frac_coords, weight=weight )