<s> from __future__ import absolute_import , division , print_function <EOL> import pytest <EOL> import numpy as np <EOL> from glue . external . six import string_types , PY2 <EOL> from . . array import ( view_shape , coerce_numeric , stack_view , unique , <EOL> shape_to_string , check_sorted , pretty_number ) <EOL> @ pytest . mark . parametrize ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( ( [ <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT> ] , [ <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:4> , <NUM_LIT:1> ] ) , <EOL> ( [ <NUM_LIT> , <NUM_LIT:5> , np . nan , <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT> ] , [ <NUM_LIT:1> , <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:1> ] ) ) ) <EOL> def test_unique ( before , ref_after , ref_indices ) : <EOL> after , indices = unique ( before ) <EOL> np . testing . assert_array_equal ( after , ref_after ) <EOL> np . testing . assert_array_equal ( indices , ref_indices ) <EOL> def test_shape_to_string ( ) : <EOL> assert shape_to_string ( ( <NUM_LIT:1> , <NUM_LIT:4> , <NUM_LIT:3> ) ) == "<STR_LIT>" <EOL> @ pytest . mark . skipif ( "<STR_LIT>" ) <EOL> def test_shape_to_string_long ( ) : <EOL> assert shape_to_string ( ( long ( <NUM_LIT:1> ) , long ( <NUM_LIT:4> ) , long ( <NUM_LIT:3> ) ) ) == "<STR_LIT>" <EOL> def test_view_shape ( ) : <EOL> assert view_shape ( ( <NUM_LIT:10> , <NUM_LIT:10> ) , np . s_ [ : ] ) == ( <NUM_LIT:10> , <NUM_LIT:10> ) <EOL> assert view_shape ( ( <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ) , np . s_ [ : ] ) == ( <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:10> ) <EOL> assert view_shape ( ( <NUM_LIT:10> , <NUM_LIT:10> ) , np . s_ [ : , <NUM_LIT:1> ] ) == ( <NUM_LIT:10> , ) <EOL> assert view_shape ( ( <NUM_LIT:10> , <NUM_LIT:10> ) , np . s_ [ <NUM_LIT:2> : <NUM_LIT:3> , <NUM_LIT:2> : <NUM_LIT:3> ] ) == ( <NUM_LIT:1> , <NUM_LIT:1> ) <EOL> assert view_shape ( ( <NUM_LIT:10> , <NUM_LIT:10> ) , None ) == ( <NUM_LIT:10> , <NUM_LIT:10> ) <EOL> assert view_shape ( ( <NUM_LIT:10> , <NUM_LIT:10> ) , ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] , [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] ) ) == ( <NUM_LIT:3> , ) <EOL> def test_coerce_numeric ( ) : <EOL> x = np . array ( [ '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT>' , '<STR_LIT:4>' ] , dtype = str ) <EOL> np . testing . assert_array_equal ( coerce_numeric ( x ) , <EOL> [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT:4> ] ) <EOL> x = np . array ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> assert coerce_numeric ( x ) is x <EOL> x = np . array ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> ] , dtype = bool ) <EOL> np . testing . assert_array_equal ( coerce_numeric ( x ) , np . array ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> ] , dtype = np . int ) ) <EOL> @ pytest . mark . parametrize ( ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> [ <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:5> ) , ( np . s_ [ <NUM_LIT:0> : <NUM_LIT:3> ] , ) ] , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:4> ) , ( np . s_ [ <NUM_LIT:0> : <NUM_LIT:3> ] , ) ] , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:4> ) , ( ( <NUM_LIT:3> , <NUM_LIT:2> ) , ) ] , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:4> ) , ( np . s_ [ <NUM_LIT:0> : <NUM_LIT:4> ] , np . s_ [ : , <NUM_LIT:0> : <NUM_LIT:2> ] ) ] , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:4> ) , ( np . s_ [ <NUM_LIT:0> : <NUM_LIT:3> , <NUM_LIT:0> : <NUM_LIT:2> ] , '<STR_LIT>' , ( <NUM_LIT:0> , <NUM_LIT:0> ) ) ] , <EOL> [ ( <NUM_LIT:10> , <NUM_LIT:20> ) , ( np . random . random ( ( <NUM_LIT:10> , <NUM_LIT:20> ) ) > <NUM_LIT:0.1> , <NUM_LIT:3> ) ] , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:7> ) , ( '<STR_LIT>' , ( <NUM_LIT:3> , <NUM_LIT:2> ) ) ] , <EOL> ] ) <EOL> def test_stack_view ( shape , views ) : <EOL> x = np . random . random ( shape ) <EOL> exp = x <EOL> for v in views : <EOL> if isinstance ( v , string_types ) and v == '<STR_LIT>' : <EOL> exp = exp . T <EOL> else : <EOL> exp = exp [ v ] <EOL> actual = x [ stack_view ( shape , * views ) ] <EOL> np . testing . assert_array_equal ( exp , actual ) <EOL> @ pytest . mark . parametrize ( ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( ( [ <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:3> ] , False ) , ( [ <NUM_LIT:1> , <NUM_LIT:2> , np . nan , <NUM_LIT:3> ] , True ) , ( [ <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT> ] , True ) ) ) <EOL> def test_check_sorted ( array , is_sorted ) : <EOL> assert check_sorted ( array ) is is_sorted <EOL> class TestPrettyNumber ( object ) : <EOL> def test_single ( self ) : <EOL> assert pretty_number ( [ <NUM_LIT:1> ] ) == [ '<STR_LIT:1>' ] <EOL> assert pretty_number ( [ <NUM_LIT:0> ] ) == [ '<STR_LIT:0>' ] <EOL> assert pretty_number ( [ - <NUM_LIT:1> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT:1>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT:1.> ] ) == [ '<STR_LIT:1>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> def test_large ( self ) : <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> assert pretty_number ( [ <NUM_LIT> ] ) == [ '<STR_LIT>' ] <EOL> def test_list ( self ) : <EOL> assert pretty_number ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT> ] ) == [ '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT>' , <EOL> '<STR_LIT>' ] </s>
