METHOD_0 ( ) { java . lang . String [ ] IDENT_0 = new java . lang . String [ ] { STRING_0 , STRING_1 , STRING_2 , STRING_1 } ; java . util . List < java . lang . Integer > res = IDENT_1 . METHOD_0 ( STRING_3 , IDENT_0 ) ; "<AssertPlaceHolder>" ; } METHOD_0 ( java . lang . String , java . lang . String [ ] ) { java . util . List < java . lang . Integer > res = new java . util . ArrayList ( ) ; if ( ( ( null == s ) || ( null == IDENT_0 ) ) || ( ( IDENT_0 . length ) == 0 ) ) { return res ; } int len = IDENT_0 [ 0 ] . length ( ) ; java . util . Map < java . lang . String , java . lang . Integer > map = new java . util . HashMap ( ) ; for ( java . lang . String IDENT_2 : IDENT_0 ) { map . put ( IDENT_2 , ( ( map . METHOD_1 ( IDENT_2 , 0 ) ) + 1 ) ) ; } for ( int i = 0 ; i <= ( ( s . length ( ) ) - ( len * ( IDENT_0 . length ) ) ) ; i ++ ) { java . util . Map < java . lang . String , java . lang . Integer > IDENT_3 = new java . util . HashMap ( map ) ; for ( int j = 0 ; j < ( IDENT_0 . length ) ; j ++ ) { java . lang . String str = s . substring ( ( i + ( j * len ) ) , ( i + ( ( j + 1 ) * len ) ) ) ; if ( IDENT_3 . containsKey ( str ) ) { int count = IDENT_3 . get ( str ) ; if ( count == 1 ) IDENT_3 . remove ( str ) ; else IDENT_3 . put ( str , ( count - 1 ) ) ; if ( IDENT_3 . isEmpty ( ) ) { res . add ( i ) ; break ; } } } } return res ; }
org . junit . Assert . assertEquals ( 8 , ( ( int ) ( res . get ( 0 ) ) ) )