<s> from unittest import TestCase , main <EOL> import numpy as np <EOL> import numpy . testing as npt <EOL> import pandas . util . testing as pdt <EOL> from numpy . random import normal <EOL> import pandas as pd <EOL> import scipy <EOL> import copy <EOL> from skbio . util import assert_data_frame_almost_equal <EOL> from skbio . stats . composition import ( closure , multiplicative_replacement , <EOL> perturb , perturb_inv , power , inner , <EOL> clr , clr_inv , ilr , ilr_inv , <EOL> centralize , _holm_bonferroni , ancom ) <EOL> class CompositionTests ( TestCase ) : <EOL> def setUp ( self ) : <EOL> self . cdata1 = np . array ( [ [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] , <EOL> [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> ] ] ) <EOL> self . cdata2 = np . array ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] ) <EOL> self . cdata3 = np . array ( [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> , <NUM_LIT:5> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:4> , <NUM_LIT:5> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] ] ) <EOL> self . cdata4 = np . array ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> , <NUM_LIT:5> ] ) <EOL> self . cdata5 = [ [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] , [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> ] ] <EOL> self . cdata6 = [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> , <NUM_LIT:5> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:4> , <NUM_LIT:5> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] ] <EOL> self . cdata7 = [ np . exp ( <NUM_LIT:1> ) , <NUM_LIT:1> , <NUM_LIT:1> ] <EOL> self . cdata8 = [ np . exp ( <NUM_LIT:1> ) , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] <EOL> self . ortho1 = [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] <EOL> self . rdata1 = [ [ <NUM_LIT> , - <NUM_LIT> , <NUM_LIT:0.> , <NUM_LIT:0.> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT:0.> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] ] <EOL> self . bad1 = np . array ( [ <NUM_LIT:1> , <NUM_LIT:2> , - <NUM_LIT:1> ] ) <EOL> self . bad2 = np . array ( [ [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> , <NUM_LIT:5> ] ] ] ) <EOL> def test_closure ( self ) : <EOL> npt . assert_allclose ( closure ( self . cdata1 ) , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> npt . assert_allclose ( closure ( self . cdata2 ) , <EOL> np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) ) <EOL> npt . assert_allclose ( closure ( self . cdata5 ) , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> with self . assertRaises ( ValueError ) : <EOL> closure ( self . bad1 ) <EOL> with self . assertRaises ( ValueError ) : <EOL> closure ( self . bad2 ) <EOL> closure ( self . cdata2 ) <EOL> npt . assert_allclose ( self . cdata2 , np . array ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] ) ) <EOL> def test_closure_warning ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> closure ( [ <NUM_LIT:0.> , <NUM_LIT:0.> , <NUM_LIT:0.> ] ) <EOL> with self . assertRaises ( ValueError ) : <EOL> closure ( [ [ <NUM_LIT:0.> , <NUM_LIT:0.> , <NUM_LIT:0.> ] , <EOL> [ <NUM_LIT:0.> , <NUM_LIT> , <NUM_LIT> ] ] ) <EOL> def test_perturb ( self ) : <EOL> pmat = perturb ( closure ( self . cdata1 ) , <EOL> closure ( np . array ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] ) ) ) <EOL> npt . assert_allclose ( pmat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> pmat = perturb ( closure ( self . cdata1 ) , <EOL> closure ( np . array ( [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> ] ) ) ) <EOL> npt . assert_allclose ( pmat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:1.> / <NUM_LIT:3> , <NUM_LIT:1.> / <NUM_LIT:3> , <NUM_LIT:1.> / <NUM_LIT:3> ] ] ) ) <EOL> pmat = perturb ( closure ( self . cdata1 ) , <EOL> closure ( np . array ( [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> ] ) ) ) <EOL> npt . assert_allclose ( pmat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:1.> / <NUM_LIT:3> , <NUM_LIT:1.> / <NUM_LIT:3> , <NUM_LIT:1.> / <NUM_LIT:3> ] ] ) ) <EOL> pmat = perturb ( closure ( self . cdata2 ) , <EOL> closure ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:1> ] ) ) <EOL> npt . assert_allclose ( pmat , np . array ( [ <NUM_LIT:1.> / <NUM_LIT:6> , <NUM_LIT> / <NUM_LIT:6> , <NUM_LIT> / <NUM_LIT:6> ] ) ) <EOL> pmat = perturb ( closure ( self . cdata5 ) , <EOL> closure ( np . array ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] ) ) ) <EOL> npt . assert_allclose ( pmat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> with self . assertRaises ( ValueError ) : <EOL> perturb ( closure ( self . cdata5 ) , self . bad1 ) <EOL> perturb ( self . cdata2 , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> npt . assert_allclose ( self . cdata2 , np . array ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] ) ) <EOL> def test_power ( self ) : <EOL> pmat = power ( closure ( self . cdata1 ) , <NUM_LIT:2> ) <EOL> npt . assert_allclose ( pmat , <EOL> np . array ( [ [ <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> ] , <EOL> [ <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> ] ] ) ) <EOL> pmat = power ( closure ( self . cdata2 ) , <NUM_LIT:2> ) <EOL> npt . assert_allclose ( pmat , np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) / <NUM_LIT> ) <EOL> pmat = power ( closure ( self . cdata5 ) , <NUM_LIT:2> ) <EOL> npt . assert_allclose ( pmat , <EOL> np . array ( [ [ <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> ] , <EOL> [ <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> , <NUM_LIT> / <NUM_LIT> ] ] ) ) <EOL> with self . assertRaises ( ValueError ) : <EOL> power ( self . bad1 , <NUM_LIT:2> ) <EOL> power ( self . cdata2 , <NUM_LIT:4> ) <EOL> npt . assert_allclose ( self . cdata2 , np . array ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] ) ) <EOL> def test_perturb_inv ( self ) : <EOL> pmat = perturb_inv ( closure ( self . cdata1 ) , <EOL> closure ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) ) <EOL> imat = perturb ( closure ( self . cdata1 ) , <EOL> closure ( [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] ) ) <EOL> npt . assert_allclose ( pmat , imat ) <EOL> pmat = perturb_inv ( closure ( self . cdata1 ) , <EOL> closure ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] ) ) <EOL> npt . assert_allclose ( pmat , <EOL> closure ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> pmat = perturb_inv ( closure ( self . cdata5 ) , <EOL> closure ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) ) <EOL> imat = perturb ( closure ( self . cdata1 ) , closure ( [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] ) ) <EOL> npt . assert_allclose ( pmat , imat ) <EOL> with self . assertRaises ( ValueError ) : <EOL> perturb_inv ( closure ( self . cdata1 ) , self . bad1 ) <EOL> perturb_inv ( self . cdata2 , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> npt . assert_allclose ( self . cdata2 , np . array ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] ) ) <EOL> def test_inner ( self ) : <EOL> a = inner ( self . cdata5 , self . cdata5 ) <EOL> npt . assert_allclose ( a , np . array ( [ [ <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ - <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> b = inner ( self . cdata7 , self . cdata7 ) <EOL> npt . assert_allclose ( b , <NUM_LIT> ) <EOL> npt . assert_allclose ( inner ( self . ortho1 , self . ortho1 ) , np . identity ( <NUM_LIT:3> ) , <EOL> rtol = <NUM_LIT> , atol = <NUM_LIT> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> inner ( self . cdata1 , self . cdata8 ) <EOL> inner ( self . cdata1 , self . cdata1 ) <EOL> npt . assert_allclose ( self . cdata1 , <EOL> np . array ( [ [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] , <EOL> [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> ] ] ) ) <EOL> def test_multiplicative_replacement ( self ) : <EOL> amat = multiplicative_replacement ( closure ( self . cdata3 ) ) <EOL> npt . assert_allclose ( amat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> ] ] ) , <EOL> rtol = <NUM_LIT> , atol = <NUM_LIT> ) <EOL> amat = multiplicative_replacement ( closure ( self . cdata4 ) ) <EOL> npt . assert_allclose ( amat , <EOL> np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> ] ) , <EOL> rtol = <NUM_LIT> , atol = <NUM_LIT> ) <EOL> amat = multiplicative_replacement ( closure ( self . cdata6 ) ) <EOL> npt . assert_allclose ( amat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> ] ] ) , <EOL> rtol = <NUM_LIT> , atol = <NUM_LIT> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> multiplicative_replacement ( self . bad1 ) <EOL> with self . assertRaises ( ValueError ) : <EOL> multiplicative_replacement ( self . bad2 ) <EOL> multiplicative_replacement ( self . cdata4 ) <EOL> npt . assert_allclose ( self . cdata4 , np . array ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> , <NUM_LIT:5> ] ) ) <EOL> def multiplicative_replacement_warning ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> multiplicative_replacement ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] , delta = <NUM_LIT:1> ) <EOL> def test_clr ( self ) : <EOL> cmat = clr ( closure ( self . cdata1 ) ) <EOL> A = np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> B = np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> npt . assert_allclose ( cmat , <EOL> [ np . log ( A / np . exp ( np . log ( A ) . mean ( ) ) ) , <EOL> np . log ( B / np . exp ( np . log ( B ) . mean ( ) ) ) ] ) <EOL> cmat = clr ( closure ( self . cdata2 ) ) <EOL> A = np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> npt . assert_allclose ( cmat , <EOL> np . log ( A / np . exp ( np . log ( A ) . mean ( ) ) ) ) <EOL> cmat = clr ( closure ( self . cdata5 ) ) <EOL> A = np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> B = np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> npt . assert_allclose ( cmat , <EOL> [ np . log ( A / np . exp ( np . log ( A ) . mean ( ) ) ) , <EOL> np . log ( B / np . exp ( np . log ( B ) . mean ( ) ) ) ] ) <EOL> with self . assertRaises ( ValueError ) : <EOL> clr ( self . bad1 ) <EOL> with self . assertRaises ( ValueError ) : <EOL> clr ( self . bad2 ) <EOL> clr ( self . cdata2 ) <EOL> npt . assert_allclose ( self . cdata2 , np . array ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] ) ) <EOL> def test_clr_inv ( self ) : <EOL> npt . assert_allclose ( clr_inv ( self . rdata1 ) , self . ortho1 ) <EOL> npt . assert_allclose ( clr ( clr_inv ( self . rdata1 ) ) , self . rdata1 ) <EOL> clr_inv ( self . rdata1 ) <EOL> npt . assert_allclose ( self . rdata1 , <EOL> np . array ( [ [ <NUM_LIT> , - <NUM_LIT> , <NUM_LIT:0.> , <NUM_LIT:0.> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT:0.> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , - <NUM_LIT> ] ] ) ) <EOL> def test_centralize ( self ) : <EOL> cmat = centralize ( closure ( self . cdata1 ) ) <EOL> npt . assert_allclose ( cmat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> cmat = centralize ( closure ( self . cdata5 ) ) <EOL> npt . assert_allclose ( cmat , <EOL> np . array ( [ [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] ) ) <EOL> with self . assertRaises ( ValueError ) : <EOL> centralize ( self . bad1 ) <EOL> with self . assertRaises ( ValueError ) : <EOL> centralize ( self . bad2 ) <EOL> centralize ( self . cdata1 ) <EOL> npt . assert_allclose ( self . cdata1 , <EOL> np . array ( [ [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] , <EOL> [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> ] ] ) ) <EOL> def test_ilr ( self ) : <EOL> mat = closure ( self . cdata7 ) <EOL> npt . assert_array_almost_equal ( ilr ( mat ) , <EOL> np . array ( [ <NUM_LIT> , <NUM_LIT> ] ) ) <EOL> npt . assert_allclose ( ilr ( self . ortho1 ) , np . identity ( <NUM_LIT:3> ) , <EOL> rtol = <NUM_LIT> , atol = <NUM_LIT> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> ilr ( self . cdata1 , basis = self . cdata1 ) <EOL> ilr ( self . cdata1 ) <EOL> npt . assert_allclose ( self . cdata1 , <EOL> np . array ( [ [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] , <EOL> [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> ] ] ) ) <EOL> def test_ilr_inv ( self ) : <EOL> mat = closure ( self . cdata7 ) <EOL> npt . assert_array_almost_equal ( ilr_inv ( ilr ( mat ) ) , mat ) <EOL> npt . assert_allclose ( ilr_inv ( np . identity ( <NUM_LIT:3> ) ) , self . ortho1 , <EOL> rtol = <NUM_LIT> , atol = <NUM_LIT> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> ilr_inv ( self . cdata1 , basis = self . cdata1 ) <EOL> ilr_inv ( self . cdata1 ) <EOL> npt . assert_allclose ( self . cdata1 , <EOL> np . array ( [ [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> ] , <EOL> [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> ] ] ) ) <EOL> class AncomTests ( TestCase ) : <EOL> def setUp ( self ) : <EOL> self . table1 = pd . DataFrame ( [ <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT:20> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:12> ] ] ) . T <EOL> self . cats1 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] ) <EOL> D , L = <NUM_LIT> , <NUM_LIT> <EOL> np . random . seed ( <NUM_LIT:0> ) <EOL> self . table2 = np . vstack ( ( np . concatenate ( ( normal ( <NUM_LIT:10> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT:200> , <NUM_LIT:1> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) ) ) <EOL> self . table2 = np . absolute ( self . table2 ) <EOL> self . table2 = pd . DataFrame ( self . table2 . astype ( np . int ) . T ) <EOL> self . cats2 = pd . Series ( [ <NUM_LIT:0> ] * D + [ <NUM_LIT:1> ] * D ) <EOL> self . table3 = pd . DataFrame ( [ <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] ] ) . T <EOL> self . cats3 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] ) <EOL> D , L = <NUM_LIT> , <NUM_LIT> <EOL> np . random . seed ( <NUM_LIT:0> ) <EOL> self . table4 = np . vstack ( ( np . concatenate ( ( normal ( <NUM_LIT:10> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT:200> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) ) ) <EOL> self . table4 = np . absolute ( self . table4 ) <EOL> self . table4 = pd . DataFrame ( self . table4 . astype ( np . int ) . T ) <EOL> self . cats4 = pd . Series ( [ <NUM_LIT:0> ] * D + [ <NUM_LIT:1> ] * D + [ <NUM_LIT:2> ] * D ) <EOL> self . table5 = pd . DataFrame ( [ <EOL> [ <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> , <NUM_LIT:9> , <NUM_LIT:20> , <NUM_LIT:20> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:12> ] ] ) . T <EOL> self . cats5 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> ] ) <EOL> self . table6 = pd . DataFrame ( [ <EOL> [ <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT:9> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> , <NUM_LIT:20> , <NUM_LIT:20> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:12> ] ] ) . T <EOL> self . cats6 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> ] ) <EOL> self . table7 = pd . DataFrame ( [ <EOL> [ <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT:9> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> , <NUM_LIT:20> , <NUM_LIT:20> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:12> ] ] ) . T <EOL> self . cats7 = pd . Series ( [ '<STR_LIT:a>' , '<STR_LIT:a>' , '<STR_LIT:a>' , '<STR_LIT:a>' , '<STR_LIT:b>' , '<STR_LIT:b>' ] ) <EOL> self . table8 = pd . DataFrame ( [ <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT:20> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:9> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:12> ] ] ) . T <EOL> self . table8 . index = [ '<STR_LIT:a>' , '<STR_LIT:b>' , '<STR_LIT:c>' , <EOL> '<STR_LIT:d>' , '<STR_LIT:e>' , '<STR_LIT:f>' ] <EOL> self . cats8 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> ] , <EOL> index = [ '<STR_LIT:a>' , '<STR_LIT:b>' , '<STR_LIT:d>' , <EOL> '<STR_LIT:c>' , '<STR_LIT:e>' , '<STR_LIT:f>' ] ) <EOL> D , L = <NUM_LIT> , <NUM_LIT> <EOL> np . random . seed ( <NUM_LIT:0> ) <EOL> self . table9 = np . vstack ( ( np . concatenate ( ( normal ( <NUM_LIT:10> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT:200> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1000> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1000> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1> , D ) ) ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:1000> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) ) ) <EOL> self . table9 = np . absolute ( self . table9 ) + <NUM_LIT:1> <EOL> self . table9 = pd . DataFrame ( self . table9 . astype ( np . int ) . T ) <EOL> self . cats9 = pd . Series ( [ <NUM_LIT:0> ] * D + [ <NUM_LIT:1> ] * D + [ <NUM_LIT:2> ] * D ) <EOL> D , L = <NUM_LIT> , <NUM_LIT> <EOL> np . random . seed ( <NUM_LIT:0> ) <EOL> self . table10 = np . vstack ( ( np . concatenate ( ( normal ( <NUM_LIT:10> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT:200> , <NUM_LIT:1> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:10> , <NUM_LIT:1> , D ) , <EOL> normal ( <NUM_LIT:200> , <NUM_LIT:1> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:10> , D ) , <EOL> normal ( <NUM_LIT:100> , <NUM_LIT:10> , D ) ) ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:1> , L ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:200> , <NUM_LIT:100> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:100> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT> , <NUM_LIT:100> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:100> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT> , <NUM_LIT:100> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:100> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:20> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:10> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:20> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:10> , D ) ) ) , <EOL> np . concatenate ( ( normal ( <NUM_LIT:20> , <NUM_LIT:20> , D ) , <EOL> normal ( <NUM_LIT> , <NUM_LIT:10> , D ) ) ) , <EOL> normal ( <NUM_LIT:100> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:100> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:1000> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:1000> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) , <EOL> normal ( <NUM_LIT:10> , <NUM_LIT:10> , L ) ) ) <EOL> self . table10 = np . absolute ( self . table10 ) + <NUM_LIT:1> <EOL> self . table10 = pd . DataFrame ( self . table10 . astype ( np . int ) . T ) <EOL> self . cats10 = pd . Series ( [ <NUM_LIT:0> ] * D + [ <NUM_LIT:1> ] * D ) <EOL> self . bad1 = pd . DataFrame ( np . array ( [ <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] ] ) . T ) <EOL> self . bad2 = pd . DataFrame ( np . array ( [ <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , - <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] ] ) . T ) <EOL> self . bad3 = pd . DataFrame ( np . array ( [ <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , np . nan ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ] ] ) . T ) <EOL> self . badcats1 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , np . nan , <NUM_LIT:1> ] ) <EOL> self . badcats2 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ) <EOL> self . badcats3 = pd . Series ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> ] ) <EOL> self . badcats4 = pd . Series ( range ( len ( self . table1 ) ) ) <EOL> self . badcats5 = pd . Series ( [ <NUM_LIT:1> ] * len ( self . table1 ) ) <EOL> def test_ancom_basic_counts ( self ) : <EOL> test_table = pd . DataFrame ( self . table1 ) <EOL> original_table = copy . deepcopy ( test_table ) <EOL> test_cats = pd . Series ( self . cats1 ) <EOL> original_cats = copy . deepcopy ( test_cats ) <EOL> result = ancom ( test_table , <EOL> test_cats , <EOL> multiple_comparisons_correction = None ) <EOL> assert_data_frame_almost_equal ( original_table , test_table ) <EOL> pdt . assert_series_equal ( original_cats , test_cats ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> False , False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_basic_proportions ( self ) : <EOL> test_table = pd . DataFrame ( closure ( self . table1 ) ) <EOL> original_table = copy . deepcopy ( test_table ) <EOL> test_cats = pd . Series ( self . cats1 ) <EOL> original_cats = copy . deepcopy ( test_cats ) <EOL> result = ancom ( test_table , <EOL> test_cats , <EOL> multiple_comparisons_correction = None ) <EOL> assert_data_frame_almost_equal ( original_table , test_table ) <EOL> pdt . assert_series_equal ( original_cats , test_cats ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> False , False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_multiple_groups ( self ) : <EOL> test_table = pd . DataFrame ( self . table4 ) <EOL> original_table = copy . deepcopy ( test_table ) <EOL> test_cats = pd . Series ( self . cats4 ) <EOL> original_cats = copy . deepcopy ( test_cats ) <EOL> result = ancom ( test_table , test_cats ) <EOL> assert_data_frame_almost_equal ( original_table , test_table ) <EOL> pdt . assert_series_equal ( original_cats , test_cats ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:8> , <NUM_LIT:7> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:7> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> True , False , False , False , <EOL> False ] , dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_noncontiguous ( self ) : <EOL> result = ancom ( self . table5 , <EOL> self . cats5 , <EOL> multiple_comparisons_correction = None ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:6> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:6> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , False , False , False , <EOL> False , True , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_unbalanced ( self ) : <EOL> result = ancom ( self . table6 , <EOL> self . cats6 , <EOL> multiple_comparisons_correction = None ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:5> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , False , False , False , <EOL> False , True , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_letter_categories ( self ) : <EOL> result = ancom ( self . table7 , <EOL> self . cats7 , <EOL> multiple_comparisons_correction = None ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:5> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , False , False , False , <EOL> False , True , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_multiple_comparisons ( self ) : <EOL> result = ancom ( self . table1 , <EOL> self . cats1 , <EOL> multiple_comparisons_correction = '<STR_LIT>' , <EOL> significance_test = scipy . stats . mannwhitneyu ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:0> ] * <NUM_LIT:7> ) , <EOL> '<STR_LIT>' : np . array ( [ False ] * <NUM_LIT:7> , dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_alternative_test ( self ) : <EOL> result = ancom ( self . table1 , <EOL> self . cats1 , <EOL> multiple_comparisons_correction = None , <EOL> significance_test = scipy . stats . ttest_ind ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> False , False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_normal_data ( self ) : <EOL> result = ancom ( self . table2 , <EOL> self . cats2 , <EOL> multiple_comparisons_correction = None , <EOL> significance_test = scipy . stats . ttest_ind ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:8> , <NUM_LIT:8> , <NUM_LIT:3> , <NUM_LIT:3> , <EOL> <NUM_LIT:8> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> True , False , False , <EOL> False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_basic_counts_swapped ( self ) : <EOL> result = ancom ( self . table8 , self . cats8 ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> False , False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_no_signal ( self ) : <EOL> result = ancom ( self . table3 , <EOL> self . cats3 , <EOL> multiple_comparisons_correction = None ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:0> ] * <NUM_LIT:7> ) , <EOL> '<STR_LIT>' : np . array ( [ False ] * <NUM_LIT:7> , dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_tau ( self ) : <EOL> exp1 = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:8> , <NUM_LIT:7> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:7> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , False , False , False , <EOL> False , False , False , False , <EOL> False ] , dtype = bool ) } ) <EOL> exp2 = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:16> , <NUM_LIT:5> , <NUM_LIT:7> , <NUM_LIT:5> , <EOL> <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:8> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:16> , <NUM_LIT:5> , <NUM_LIT:11> , <NUM_LIT:4> , <NUM_LIT:6> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> True , False , False , False , <EOL> False , False , False , False , <EOL> False , True , False , False , <EOL> False , False ] , dtype = bool ) } ) <EOL> exp3 = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:16> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:16> , <NUM_LIT:16> , <EOL> <NUM_LIT:15> , <NUM_LIT:15> , <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> , <EOL> <NUM_LIT:9> , <NUM_LIT:9> , <NUM_LIT:9> , <NUM_LIT:9> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , True , False , <EOL> True , True , True , True , <EOL> True , True , True , False , <EOL> False , False , False , False , <EOL> False , False ] , dtype = bool ) } ) <EOL> result1 = ancom ( self . table4 , self . cats4 , tau = <NUM_LIT> ) <EOL> result2 = ancom ( self . table9 , self . cats9 , tau = <NUM_LIT> ) <EOL> result3 = ancom ( self . table10 , self . cats10 , tau = <NUM_LIT> ) <EOL> assert_data_frame_almost_equal ( result1 , exp1 ) <EOL> assert_data_frame_almost_equal ( result2 , exp2 ) <EOL> assert_data_frame_almost_equal ( result3 , exp3 ) <EOL> def test_ancom_theta ( self ) : <EOL> result = ancom ( self . table1 , self . cats1 , theta = <NUM_LIT> ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , False , <EOL> False , False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_alpha ( self ) : <EOL> result = ancom ( self . table1 , self . cats1 , alpha = <NUM_LIT:0.5> ) <EOL> exp = pd . DataFrame ( { '<STR_LIT>' : np . array ( [ <NUM_LIT:6> , <NUM_LIT:6> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:4> , <NUM_LIT:2> ] ) , <EOL> '<STR_LIT>' : np . array ( [ True , True , False , True , <EOL> True , False , False ] , <EOL> dtype = bool ) } ) <EOL> assert_data_frame_almost_equal ( result , exp ) <EOL> def test_ancom_fail_type ( self ) : <EOL> with self . assertRaises ( TypeError ) : <EOL> ancom ( self . table1 . values , self . cats1 ) <EOL> with self . assertRaises ( TypeError ) : <EOL> ancom ( self . table1 , self . cats1 . values ) <EOL> def test_ancom_fail_zeros ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . bad1 , self . cats2 , multiple_comparisons_correction = None ) <EOL> def test_ancom_fail_negative ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . bad2 , self . cats2 , multiple_comparisons_correction = None ) <EOL> def test_ancom_fail_not_implemented_multiple_comparisons_correction ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table2 , self . cats2 , <EOL> multiple_comparisons_correction = '<STR_LIT>' ) <EOL> def test_ancom_fail_missing ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . bad3 , self . cats1 ) <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . badcats1 ) <EOL> def test_ancom_fail_groups ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . badcats2 ) <EOL> def test_ancom_fail_size_mismatch ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . badcats3 ) <EOL> def test_ancom_fail_group_unique ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . badcats4 ) <EOL> def test_ancom_fail_1_group ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . badcats5 ) <EOL> def test_ancom_fail_tau ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . cats1 , tau = - <NUM_LIT:1> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . cats1 , tau = <NUM_LIT> ) <EOL> def test_ancom_fail_theta ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . cats1 , theta = - <NUM_LIT:1> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . cats1 , theta = <NUM_LIT> ) <EOL> def test_ancom_fail_alpha ( self ) : <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . cats1 , alpha = - <NUM_LIT:1> ) <EOL> with self . assertRaises ( ValueError ) : <EOL> ancom ( self . table1 , self . cats1 , alpha = <NUM_LIT> ) <EOL> def test_ancom_fail_multiple_groups ( self ) : <EOL> with self . assertRaises ( TypeError ) : <EOL> ancom ( self . table4 , self . cats4 , <EOL> significance_test = scipy . stats . ttest_ind ) <EOL> def test_holm_bonferroni ( self ) : <EOL> p = [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] <EOL> corrected_p = p * np . arange ( <NUM_LIT:1> , <NUM_LIT:6> ) [ : : - <NUM_LIT:1> ] <EOL> guessed_p = _holm_bonferroni ( p ) <EOL> for a , b in zip ( corrected_p , guessed_p ) : <EOL> self . assertAlmostEqual ( a , b ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> main ( ) </s>
