assertation error wrong data type
i used numpy module to solve this question and in final setp converted it to tuple of tuples but i get assertation eoor, the answer's value are correct for the three test cases given. Can anyone please guide me where should i look?
here's the code. Type call on the final result gives <type 'tuple'> too.
def make_list(final_ans): #make tuple of tuples form numpy array ans2,ans1=[],[] for aa in final_ans: for bb in aa: ans1.append(bb) ans2.append(ans1) ans1=[] ans3=tuple(tuple(row) for row in ans2) return(ans3) def braille_page(text): #varible declerations letter_a,letter_b,letter_c,letter_d,letter_e,letter_f,letter_g,letter_h,letter_i,letter_j,letter_w,capital,number,char_1,char_2,char_3,char_4,char_5,char_6= numpy.array([[1,0],[0,0],[0,0]]),numpy.array([[1,0],[1,0],[0,0]]),numpy.array([[1,1],[0,0],[0,0]]),numpy.array([[1,1],[0,1],[0,0]]),numpy.array([[1,0],[0,1],[0,0]]),numpy.array([[1,1],[1,0],[0,0]]),numpy.array([[1,1],[1,1],[0,0]]),numpy.array([[1,0],[1,1],[0,0]]),numpy.array([[0,1],[1,0],[0,0]]),numpy.array([[0,1],[1,1],[0,0]]),numpy.array([[0,1],[1,1],[1,1]]),numpy.array([[0,0],[0,0],[0,1]]),numpy.array([[0,1],[0,1],[1,1]]),numpy.array([[0,0],[1,0],[0,0]]),numpy.array([[0,0],[1,1],[0,1]]),numpy.array([[0,0],[1,1],[0,0]]),numpy.array([[0,0],[1,0],[1,1]]),numpy.array([[0,0],[0,0],[1,1]]),numpy.array([[0,0],[1,1],[1,0]]) letter_k,letter_l,letter_m,letter_n,letter_o,letter_p,letter_q,letter_r,letter_s,letter_t,letter_u,letter_v,letter_x,letter_y,letter_z=copy.deepcopy(letter_a),copy.deepcopy(letter_b),copy.deepcopy(letter_c),copy.deepcopy(letter_d),copy.deepcopy(letter_e),copy.deepcopy(letter_f),copy.deepcopy(letter_g),copy.deepcopy(letter_h),copy.deepcopy(letter_i),copy.deepcopy(letter_j),copy.deepcopy(letter_a),copy.deepcopy(letter_b),copy.deepcopy(letter_c),copy.deepcopy(letter_d),copy.deepcopy(letter_e) letter_k[2]=[1,0] letter_l[2]=[1,0] letter_m[2]=[1,0] letter_n[2]=[1,0] letter_o[2]=[1,0] letter_p[2]=[1,0] letter_q[2]=[1,0] letter_r[2]=[1,0] letter_s[2]=[1,0] letter_t[2]=[1,0] letter_u[2]=[1,1] letter_v[2]=[1,1] letter_x[2]=[1,1] letter_y[2]=[1,1] letter_z[2]=[1,1] blank=numpy.zeros((3,2),dtype=int) mappings=dict(zip(list('abcdefghijklmnopqrstuvwxyz,._?_!'),[letter_a,letter_b,letter_c,letter_d,letter_e,letter_f,letter_g,letter_h,letter_i,letter_j,letter_k,letter_l,letter_m,letter_n,letter_o,letter_p,letter_q,letter_r,letter_s,letter_t,letter_u,letter_v,letter_w,letter_x,letter_y,letter_z,char_1,char_2,char_3,char_4,char_5,char_6])) ans,i,flag=blank,0,False #end of declerations ans=ans[:,2:] #initialize a 3X2 empty matrix bb='' for aa in text: bb=aa #if there are 10 chars in a line then insert new blank line,and start ans computaion again so that ans can be appended to fianl_ans if ((i%10)==0)&(i!=0): #9 or 10 ans=ans[:,:-1] #remove zero column delimeter (index_i,index_j)=ans.shape ans=numpy.vstack((ans,numpy.zeros((1,index_j),dtype=int))) #zero row matrix on 10 chars if i==10: #for 1st 10 letters final_ans=ans else: #for 20 letters onwards final_ans=numpy.vstack((final_ans,ans)) if aa == text[-1]: final_ans=final_ans[:-1] ans=blank ans=ans[:,2:] i=0 flag=True cap=re.search(r'[A-Z]',aa) num=re.search(r'[0-9]',aa) aa=aa.lower() if num: #insert sign of number and a zero column after it ans=numpy.hstack((ans,number)) i+=1 ans=numpy.hstack((ans,numpy.array([[0],[0],[0]]))) aa=int(aa) if cap: # same as for num ans=numpy.hstack((ans,capital)) i+=1 ans=numpy.hstack((ans,numpy.array([[0],[0],[0]]))) if aa in range(10):# conert a number to letter represenataion as mappings only contains letters for eg- 1 to a and so on if aa=='0': aa=j else: aa=chr(96+aa) if aa==' ': #insert 2X3 zero array for blank or corrosponding matrix for letter ans=numpy.hstack((ans,blank)) else: ans=numpy.hstack((ans,mappings[aa])) ans=numpy.hstack((ans,numpy.array([[0],[0],[0]]))) #insert zero column matrix for each symbols end i+=1 if bool(bb==text[-1])&(i%10 !=0): # if all letters from string are computed ans=ans[:,:-1] if flag: #if 10 letters have completed then final_ans exists (final_i,final_j)=final_ans.shape (ans_i,ans_j)=ans.shape for ii in range(final_j-ans_j): #how many 0 column to insert for making rect matrix ans=numpy.hstack((ans,numpy.array([[0],[0],[0]]))) final_ans=numpy.vstack((final_ans,ans)) return(make_list(final_ans)) else: return(make_list(ans)) print(braille_page("hello 1st World!"))