# -*- coding: utf-8 -*-
"""
Created on Fri Jan 13 14:46:19 2017
@author: danielgodinez
"""
import unittest
import numpy as np
import pkg_resources
import sys
sys.path.append('../../')
from MicroLIA.features import *
from MicroLIA.extract_features import extract_all
[docs]resource_package = __name__
[docs]file = pkg_resources.resource_filename(resource_package, 'test_ogle_lc.dat')
[docs]test_lc = np.loadtxt(file)
time, mag, magerr = test_lc[:,0], test_lc[:,1], test_lc[:,2]
#Remove the nan and inf values, if present in the lightcurve
[docs]mask = np.where(np.isfinite(time) & np.isfinite(mag) & np.isfinite(magerr))[0]
time, mag, magerr = time[mask], mag[mask], magerr[mask]
# Convert to flux
[docs]flux = 10**(-(mag-zp) / 2.5)
[docs]flux_err = (magerr * flux) / (2.5) * np.log(10)
# Normalize by max flux
[docs]norm_flux = flux / np.max(flux)
[docs]norm_fluxerr = flux_err * (norm_flux / flux)
[docs]class Test(unittest.TestCase):
"""Unittest to ensure all individual features work including the feature extraction function.
"""
[docs] def test_AndersonDarling(self):
value = AndersonDarling(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1.0
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="AndersonDarling function with weights failed.")
value = AndersonDarling(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 1.0
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="AndersonDarling function without weights failed.")
[docs] def test_FluxPercentileRatioMid20(self):
value = FluxPercentileRatioMid20(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.0689803536382854
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid20 function with weights failed.")
value = FluxPercentileRatioMid20(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.039877354974917505
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid20 function without weights failed.")
[docs] def test_FluxPercentileRatioMid35(self):
value = FluxPercentileRatioMid35(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.12590660235444978
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid35 function with weights failed.")
value = FluxPercentileRatioMid35(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.07380961622247513
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid35 function without weights failed.")
[docs] def test_FluxPercentileRatioMid50(self):
value = FluxPercentileRatioMid50(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.19939074448918812
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid50 function with weights failed.")
value = FluxPercentileRatioMid50(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.10982452469338858
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid50 function without weights failed.")
[docs] def test_FluxPercentileRatioMid65(self):
value = FluxPercentileRatioMid65(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.3024042113911416
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid65 function with weights failed.")
value = FluxPercentileRatioMid65(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.16027966815051362
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid65 function without weights failed.")
[docs] def test_FluxPercentileRatioMid80(self):
value = FluxPercentileRatioMid80(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.4646719917349019
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid80 function with weights failed.")
value = FluxPercentileRatioMid80(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.2815796582492684
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="FluxPercentileRatioMid80 function without weights failed.")
[docs] def test_Gskew(self):
value = Gskew(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.18492597448807718
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="Gskew function with weights failed.")
value = Gskew(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.39793972732504634
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="Gskew function without weights failed.")
[docs] def test_LinearTrend(self):
value = LinearTrend(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1.6772905256302443e-05
self.assertAlmostEqual(value, expected_value, delta=1e-5, msg="LinearTrend function with weights failed.")
value = LinearTrend(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 3.369656352424246e-05
self.assertAlmostEqual(value, expected_value, delta=1e-5, msg="LinearTrend function without weights failed.")
[docs] def test_MaxSlope(self):
value = MaxSlope(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.05098060418494285
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="MaxSlope function with weights failed.")
value = MaxSlope(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 4.210248377290517
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="MaxSlope function without weights failed.")
[docs] def test_PairSlopeTrend(self):
value = PairSlopeTrend(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.6206896551724138
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="PairSlopeTrend function with weights failed.")
value = PairSlopeTrend(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.6
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="PairSlopeTrend function without weights failed.")
[docs] def test_PercentAmplitude(self):
value = PercentAmplitude(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 5.263572387053168
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="PercentAmplitude function with weights failed.")
value = PercentAmplitude(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 5.65579596367229
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="PercentAmplitude function without weights failed.")
[docs] def test_PercentDifferenceFluxPercentile(self):
value = PercentDifferenceFluxPercentile(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.2148371372468774
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="PercentDifferenceFluxPercentile function with weights failed.")
value = PercentDifferenceFluxPercentile(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.5044786027746446
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="PercentDifferenceFluxPercentile function without weights failed.")
[docs] def test_above1(self):
value = above1(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 3.9017319586328805e-06
self.assertAlmostEqual(value, expected_value, delta=1e-5, msg="above1 function with weights failed.")
value = above1(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.04194260485651214
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="above1 function without weights failed.")
[docs] def test_above3(self):
value = above3(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 6.834060977437952e-07
self.assertAlmostEqual(value, expected_value, delta=1e-6, msg="above3 function with weights failed.")
value = above3(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.020603384841795438
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="above3 function without weights failed.")
[docs] def test_above5(self):
value = above5(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 2.6732568592901866e-07
self.assertAlmostEqual(value, expected_value, delta=1e-6, msg="above5 function with weights failed.")
value = above5(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.013245033112582781
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="above5 function without weights failed.")
[docs] def test_abs_energy(self):
value = abs_energy(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 4500178.683024583
self.assertAlmostEqual(value, expected_value, delta=1e-1, msg="abs_energy function with weights failed.")
value = abs_energy(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 47.90735517819772
self.assertAlmostEqual(value, expected_value, delta=1e-1, msg="abs_energy function without weights failed.")
[docs] def test_abs_sum_changes(self):
value = abs_sum_changes(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1884.1579764541495
self.assertAlmostEqual(value, expected_value, delta=1e-1, msg="abs_sum_changes function with weights failed.")
value = abs_sum_changes(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 8.743579715855867
self.assertAlmostEqual(value, expected_value, delta=1e-1, msg="abs_sum_changes function without weights failed.")
[docs] def test_amplitude(self):
value = amplitude(time, flux, flux_err, apply_weights=True)
expected_value = 4.123383618006657
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="amplitude function with weights failed.")
value = amplitude(time, flux, flux_err, apply_weights=False)
expected_value = 59.33707174544156
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="amplitude function without weights failed.")
[docs] def test_auto_corr(self):
value = auto_corr(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = -9.126623747543625e-05
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="auto_corr function with weights failed.")
value = auto_corr(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.9913296911919757
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="auto_corr function without weights failed.")
[docs] def test_below1(self):
value = below1(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.0
self.assertAlmostEqual(value, expected_value, delta=1e-5, msg="below1 function with weights failed.")
value = below1(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.0
self.assertAlmostEqual(value, expected_value, delta=1e-5, msg="below1 function without weights failed.")
[docs] def test_below3(self):
value = below3(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.0
self.assertEqual(value, expected_value, msg="below3 function with weights failed.")
value = below3(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.0
self.assertEqual(value, expected_value, msg="below3 function without weights failed.")
[docs] def test_below5(self):
value = below5(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.0
self.assertEqual(value, expected_value, msg="below5 function with weights failed.")
value = below5(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.0
self.assertEqual(value, expected_value, msg="below5 function without weights failed.")
[docs] def test_benford_correlation(self):
value = benford_correlation(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.8726724176244784
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="benford_correlation function with weights failed.")
value = benford_correlation(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.8748887126496152
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="benford_correlation function without weights failed.")
[docs] def test_c3(self):
value = c3(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.003699737078009774
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="c3 function with weights failed.")
value = c3(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.012789480843882928
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="c3 function without weights failed.")
[docs] def test_check_for_duplicate(self):
value = check_for_duplicate(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1
self.assertEqual(value, expected_value, msg="check_for_duplicate function with weights failed.")
value = check_for_duplicate(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 1
self.assertEqual(value, expected_value, msg="check_for_duplicate function without weights failed.")
[docs] def test_check_for_max_duplicate(self):
value = check_for_max_duplicate(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1
self.assertEqual(value, expected_value, msg="check_for_max_duplicate function with weights failed.")
value = check_for_max_duplicate(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0
self.assertEqual(value, expected_value, msg="check_for_max_duplicate function without weights failed.")
[docs] def test_check_for_min_duplicate(self):
value = check_for_min_duplicate(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1
self.assertEqual(value, expected_value, msg="check_for_min_duplicate function with weights failed.")
value = check_for_min_duplicate(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0
self.assertEqual(value, expected_value, msg="check_for_min_duplicate function without weights failed.")
[docs] def test_check_max_last_loc(self):
value = check_max_last_loc(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.07873436350257546
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="check_max_last_loc function with weights failed.")
value = check_max_last_loc(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.9220014716703459
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="check_max_last_loc function without weights failed.")
[docs] def test_check_min_last_loc(self):
value = check_min_last_loc(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.010301692420897735
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="check_min_last_loc function with weights failed.")
value = check_min_last_loc(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.32818248712288445
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="check_min_last_loc function without weights failed.")
[docs] def test_complexity(self):
value = complexity(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.009261672949689444
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="complexity function with weights failed.")
value = complexity(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.4215801958181811
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="complexity function without weights failed.")
[docs] def test_con(self):
value = con(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.141280353200883
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="con function with weights failed.")
value = con(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.41869021339220014
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="con function without weights failed.")
[docs] def test_count_above(self):
value = count_above(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.4580896499905867
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="count_above function with weights failed.")
value = count_above(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.48712288447387786
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="count_above function without weights failed.")
[docs] def test_count_below(self):
value = count_below(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.8975326284780578
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="count_below function with weights failed.")
value = count_below(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.4988962472406181
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="count_below function without weights failed.")
[docs] def test_cusum(self):
value = cusum(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.2618491120944599
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="cusum function with weights failed.")
value = cusum(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.19662757396139072
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="cusum function without weights failed.")
[docs] def test_first_loc_max(self):
value = first_loc_max(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.9234731420161884
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="first_loc_max function with weights failed.")
value = first_loc_max(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.9212656364974245
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="first_loc_max function without weights failed.")
[docs] def test_first_loc_min(self):
value = first_loc_min(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.12067696835908756
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="first_loc_min function with weights failed.")
value = first_loc_min(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.3274466519499632
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="first_loc_min function without weights failed.")
[docs] def test_half_mag_amplitude_ratio(self):
value = half_mag_amplitude_ratio(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 19.2753592883238
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="half_mag_amplitude_ratio function with weights failed.")
value = half_mag_amplitude_ratio(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 24.570053038121614
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="half_mag_amplitude_ratio function without weights failed.")
[docs] def test_index_mass_quantile(self):
value = index_mass_quantile(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.4775570272259014
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="index_mass_quantile function with weights failed.")
value = index_mass_quantile(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.5599705665930832
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="index_mass_quantile function without weights failed.")
[docs] def test_integrate(self):
value = integrate(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 423.46510892202537
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="integrate function with weights failed.")
value = integrate(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 423.46510892202537
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="integrate function without weights failed.")
[docs] def test_kurtosis(self):
value = kurtosis(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 95.78857757385587
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="kurtosis function with weights failed.")
value = kurtosis(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 52.800944150884426
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="kurtosis function without weights failed.")
[docs] def test_large_standard_deviation(self):
value = large_standard_deviation(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0
self.assertEqual(value, expected_value, msg="large_standard_deviation function with weights failed.")
value = large_standard_deviation(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0
self.assertEqual(value, expected_value, msg="large_standard_deviation function without weights failed.")
[docs] def test_longest_strike_above(self):
value = longest_strike_above(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.09565857247976453
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="longest_strike_above function with weights failed.")
value = longest_strike_above(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.0007358351729212656
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="longest_strike_above function without weights failed.")
[docs] def test_longest_strike_below(self):
value = longest_strike_below(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.0051508462104488595
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="longest_strike_below function with weights failed.")
value = longest_strike_below(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.0007358351729212656
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="longest_strike_below function without weights failed.")
[docs] def test_meanMag(self):
value = meanMag(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.15965329977937226
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="meanMag function with weights failed.")
value = meanMag(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.15965329977937226
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="meanMag function without weights failed.")
[docs] def test_mean_abs_change(self):
value = mean_abs_change(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.006864001707190451
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_abs_change function with weights failed.")
value = mean_abs_change(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.006438571219334217
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_abs_change function without weights failed.")
[docs] def test_mean_change(self):
value = mean_change(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.00011098405846421302
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_change function with weights failed.")
value = mean_change(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 8.472624945244629e-05
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_change function without weights failed.")
[docs] def test_mean_n_abs_max(self):
value = mean_n_abs_max(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.9262653150460143
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_n_abs_max function with weights failed.")
value = mean_n_abs_max(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.9325255760714363
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_n_abs_max function without weights failed.")
[docs] def test_mean_second_derivative(self):
value = mean_second_derivative(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = -0.0015507818257872866
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_second_derivative function with weights failed.")
value = mean_second_derivative(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 7.518984642801636e-06
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="mean_second_derivative function without weights failed.")
[docs] def test_number_cwt_peaks(self):
value = number_cwt_peaks(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.021339220014716703
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="number_cwt_peaks function with weights failed.")
value = number_cwt_peaks(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.021339220014716703
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="number_cwt_peaks function without weights failed.")
[docs] def test_number_of_crossings(self):
value = number_of_crossings(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.3686534216335541
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="number_of_crossings function with weights failed.")
value = number_of_crossings(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.4157468727005151
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="number_of_crossings function without weights failed.")
[docs] def test_number_of_peaks(self):
value = number_of_peaks(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.04856512141280353
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="number_of_peaks function with weights failed.")
value = number_of_peaks(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.06181015452538632
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="number_of_peaks function without weights failed.")
[docs] def test_peak_detection(self):
value = peak_detection(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.0007358351729212656
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="peak_detection function with weights failed.")
value = peak_detection(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.0007358351729212656
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="peak_detection function without weights failed.")
[docs] def test_permutation_entropy(self):
value = permutation_entropy(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 8.289452388743738
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="permutation_entropy function with weights failed.")
value = permutation_entropy(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 1.7884623901136658
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="permutation_entropy function without weights failed.")
[docs] def test_quantile(self):
value = quantile(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.15431210656577926
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="quantile function with weights failed.")
value = quantile(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.15431210656577926
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="quantile function without weights failed.")
[docs] def test_ratio_recurring_points(self):
value = ratio_recurring_points(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.8996655518394648
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="ratio_recurring_points function with weights failed.")
value = ratio_recurring_points(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.5652173913043478
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="ratio_recurring_points function without weights failed.")
[docs] def test_root_mean_squared(self):
value = root_mean_squared(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 16.5824285280537
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="root_mean_squared function with weights failed.")
value = root_mean_squared(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.15024499029989147
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="root_mean_squared function without weights failed.")
[docs] def test_sample_entropy(self):
value = sample_entropy(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.028073777758772216
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="sample_entropy function with weights failed.")
value = sample_entropy(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.028073777758772216
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="sample_entropy function without weights failed.")
[docs] def test_shannon_entropy(self):
value = shannon_entropy(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 25.912950024330218
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="shannon_entropy function with weights failed.")
value = shannon_entropy(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 25.912950024330218
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="shannon_entropy function without weights failed.")
[docs] def test_shapiro_wilk(self):
value = shapiro_wilk(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.23471534252166748
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="shapiro_wilk function with weights failed.")
value = shapiro_wilk(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.23471534252166748
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="shapiro_wilk function without weights failed.")
[docs] def test_skewness(self):
value = skewness(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 9.203071908822924
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="skewness function with weights failed.")
value = skewness(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 6.951458105661253
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="skewness function without weights failed.")
[docs] def test_std_over_mean(self):
value = std_over_mean(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.4042703086567313
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="std_over_mean function with weights failed.")
value = std_over_mean(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.5781254633689681
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="std_over_mean function without weights failed.")
[docs] def test_stetsonJ(self):
value = stetsonJ(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 6006.476061062362
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="stetsonJ function with weights failed.")
value = stetsonJ(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 6006.476061062362
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="stetsonJ function without weights failed.")
[docs] def test_stetsonK(self):
value = stetsonK(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.25181305525892006
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="stetsonK function with weights failed.")
value = stetsonK(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.25181305525892006
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="stetsonK function without weights failed.")
[docs] def test_stetsonL(self):
value = stetsonL(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1895.374797337941
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="stetsonL function with weights failed.")
value = stetsonL(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 1895.374797337941
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="stetsonL function without weights failed.")
[docs] def test_sum_values(self):
value = sum_values(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.15965329977937262
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="sum_values function with weights failed.")
value = sum_values(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.16645473379324044
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="sum_values function without weights failed.")
[docs] def test_symmetry_looking(self):
value = symmetry_looking(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1
self.assertEqual(value, expected_value, msg="symmetry_looking function with weights failed.")
value = symmetry_looking(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 1
self.assertEqual(value, expected_value, msg="symmetry_looking function without weights failed.")
[docs] def test_time_reversal_asymmetry(self):
value = time_reversal_asymmetry(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1.2178974822726409e-05
self.assertAlmostEqual(value, expected_value, delta=1e-6, msg="time_reversal_asymmetry function with weights failed.")
value = time_reversal_asymmetry(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 1.2178974822726385e-05
self.assertAlmostEqual(value, expected_value, delta=1e-6, msg="time_reversal_asymmetry function without weights failed.")
[docs] def test_variance(self):
value = variance(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.004212069813891517
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="variance function with weights failed.")
value = variance(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.007544738579571028
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="variance function without weights failed.")
[docs] def test_variance_larger_than_standard_deviation(self):
value = variance_larger_than_standard_deviation(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0
self.assertEqual(value, expected_value, msg="variance_larger_than_standard_deviation function with weights failed.")
value = variance_larger_than_standard_deviation(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0
self.assertEqual(value, expected_value, msg="variance_larger_than_standard_deviation function without weights failed.")
[docs] def test_variation_coefficient(self):
value = variation_coefficient(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 0.4042703086567313
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="variation_coefficient function with weights failed.")
value = variation_coefficient(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.5218262806745012
self.assertAlmostEqual(value, expected_value, delta=1e-3, msg="variation_coefficient function without weights failed.")
[docs] def test_vonNeumannRatio(self):
value = vonNeumannRatio(time, norm_flux, norm_fluxerr, apply_weights=True)
expected_value = 1069921.7126451028
self.assertAlmostEqual(value, expected_value, delta=1e-1, msg="vonNeumannRatio function with weights failed.")
value = vonNeumannRatio(time, norm_flux, norm_fluxerr, apply_weights=False)
expected_value = 0.017346682763858742
self.assertAlmostEqual(value, expected_value, delta=1e-1, msg="vonNeumannRatio function without weights failed.")
unittest.main()