Class: TestKyaniteStringChars

Inherits
UnitTest
  • Object
show all
Defined in
test/string/test_chars.rb

Tests for String

String Additions

Kyanite definitions

String

Kyanite tests and examples

Cast Chars Diff Database-Helper Miscellaneous Nested Split

Usage

require 'kyanite/string'

Required from Facets String:

shatter(re)

Breaks a string up into an array based on a regular expression. Similar to scan, but includes the matches.

clear / format text (collapse)

Groß- und Kleinschreibung (collapse)

Instance Method Details

- (Object) test_camelcase



288
289
290
291
292
293
# File 'test/string/test_chars.rb', line 288

def test_camelcase
  assert_equal 'TUKTUK',    'TukTuk'.reduce53
  assert_equal 'TUKTUK',    'TukTuk'.reduce53(:camelcase => false)
  assert_equal 'TUK-TUK',   'TukTuk'.reduce53(:camelcase => true)
  assert_equal 'TUK-TUK',   'tukTuk'.reduce53(:camelcase => true)
end

- (Object) test_capitalize



364
365
366
367
368
369
370
371
372
# File 'test/string/test_chars.rb', line 364

def test_capitalize
  test_down =       'äaoöuü'
  test_up =         'ÄAOÖUÜ'  
  
  assert_equal  'Äaoöuü',   'äaoöuü'.capitalize 
  assert_equal  'Àaoöuü',   'àaoöuü'.capitalize 
  assert_equal  'Ăăaoöuü',  'ăăaoöuü'.capitalize 
  assert_equal  'Öaoöuü',   'Öaoöuü'.capitalize
end

- (Boolean) test_capitalized?

Returns:

  • (Boolean)


349
350
351
352
353
354
355
356
357
358
359
360
361
# File 'test/string/test_chars.rb', line 349

def test_capitalized?
  assert !'hallo'.capitalized?
  assert !'ħAllo'.capitalized?
  assert !'ĥÅllo'.capitalized?
  assert !'ätsch'.capitalized?    
  
  assert 'Hallo'.capitalized?    
  assert 'ĤAllo'.capitalized?
  assert 'ĦAllo'.capitalized?
  assert 'Ætsch Ruby scheißt auf Unicode'.capitalized?
  assert 'Ūbel'.capitalized?
  assert 'Øzi ist moderner'.capitalized?
end

- (Object) test_downcase_upcase



318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
# File 'test/string/test_chars.rb', line 318

def test_downcase_upcase
  test_down =       'àáâăäãāåạąảấầắằабćĉčçċцчďðđдèéêěĕëēėęếеэфĝğġģгĥħхìíîĭïĩīıįийĵюяķкĺľłļŀлмńňñņŋнòóôŏöõōøőơœопŕřŗрśŝšşсшщţťŧþтùúûŭüũūůűųưувŵýŷÿźżžжз'
  test_up =         'ÀÁÂĂÄÃĀÅẠĄẢẤẦẮẰАБĆĈČÇĊЦЧĎÐĐДÈÉÊĚĔËĒĖĘẾЕЭФĜĞĠĢГĤĦХÌÍÎĬÏĨĪİĮИЙĴЮЯĶКĹĽŁĻĿЛМŃŇÑŅŊНÒÓÔŎÖÕŌØŐƠŒОПŔŘŖРŚŜŠŞСШЩŢŤŦÞТÙÚÛŬÜŨŪŮŰŲƯУВŴÝŶŸŹŻŽЖЗ'

  # Bescheid sagen, sobald Ruby oder ActiveSupport von sich aus funktionieren
  assert_not_equal test_down,       test_up.downcase
  assert_not_equal test_down,       test_up.downcase
      
  assert_equal test_down,           test_up.downcase2
  assert_equal test_down,           test_up.upcase2.downcase2
  assert_equal test_down,           test_up.upcase2.downcase2.upcase2.downcase2
  
  assert_equal test_up,             test_down.upcase2
  assert_equal test_up,             test_down.downcase2.upcase2
  assert_equal test_up,             test_down.downcase2.upcase2.downcase2.upcase2     
  
  teststrings = ['ÄÖÜ', 'äöü','ÄÖÜß', 'äöüß',]
  teststrings.each do |t|
    assert_equal t.upcase2,         t.downcase2.upcase2
    assert_equal t.downcase2,       t.upcase2.downcase2
  end
  
  assert_equal 'ÄÖÜ',     'äöü'.upcase2
  assert_equal 'ÄÖÜ',     'äöü'.upcase2.upcase2
  assert_equal 'ÄÖÜß',    'äöüß'.upcase2.upcase2
  assert_equal 'äöü',     'ÄÖÜ'.downcase2
  assert_equal 'äöü',     'ÄÖÜ'.downcase2.downcase2
  assert_equal 'äöüß',    'ÄÖÜß'.downcase2.downcase2    
end

- (Object) test_examples



199
200
201
202
203
204
205
# File 'test/string/test_chars.rb', line 199

def test_examples
  assert_equal "Celine hoeren",       "Céline hören".reduce
  assert_equal "AeOeUeaeoeuess",      "ÄÖÜäöüß".reduce
  assert_equal "Celine hören 10EUR",  "Céline hören 10€".reduce( :preserve => "ÄÖÜäöüß")
  assert_equal "Celine hören 10€",    "Céline hören 10€".reduce( :preserve => "ÄÖÜäöü߀", :fast => true)
  assert_equal "AOUaous",             "ÄÖÜäöü߀".reduce( :fast => true ) 
end

- (Object) test_german_sz



274
275
276
277
278
279
280
281
282
283
284
285
# File 'test/string/test_chars.rb', line 274

def test_german_sz
  assert_equal 'SCHEIßE',   'Scheiße'.upcase2
  assert_equal 'SCHEIßE',   'scheiße'.upcase2
  assert_equal 'scheiße',   'Scheiße'.downcase2    
  assert_equal 'scheiße',   'SCHEIßE'.downcase2
  assert_equal 'Scheise',   'Scheiße'.reduce94
  assert_equal 'SCHEIsE',   'Scheiße'.reduce53
  assert_equal 'SCHEIZE',   'Scheiße'.reduce53(:german_sz => 'z')
  assert_equal 'SCHEIZE',   'Scheiße'.reduce53(:german_sz => 'Z')
  assert_equal 'SCHEISSE',  'Scheiße'.reduce53(:german_sz => 'SS')
  assert_equal 'Scheiß Arsche',   'Scheiß Ärsche'.reduce94(:preserve => 'ß')
end

- (Object) test_LANG_SPECIAL_CHARS



161
162
163
164
165
166
# File 'test/string/test_chars.rb', line 161

def test_LANG_SPECIAL_CHARS
  LANG_SPECIAL_CHARS .each do | lang, (full, reduced) |
    #see lang, full, reduced, full.reduce, full.reduce94
    assert_equal reduced,       full.reduce       
  end  
end

- (Object) test_minus_signs



175
176
177
178
179
# File 'test/string/test_chars.rb', line 175

def test_minus_signs
  minus = "\u00ac\u2212\u2010\u2011\u2012\u2013\u2014\u2015\u2500"
  assert_equal minus.reduce, "-" * minus.length
  #assert_equal spaces.reduce94, " " * spaces.length    
end

- (Object) test_mysqlize



297
298
299
300
301
302
303
304
305
306
307
# File 'test/string/test_chars.rb', line 297

def test_mysqlize
  test0 = 'aaoouuß'  
  test1 = 'aäoöuüss'
  test2 = 'AÄOÖUÜSS'
  test3 = 'AAOOUUß'   

  assert_equal test0,   test0.mysqlize
  assert_equal test0,   test1.mysqlize
  assert_equal test0,   test2.mysqlize
  assert_equal test0,   test3.mysqlize
end

- (Object) test_newlines_and_nonprintables



208
209
210
211
212
213
# File 'test/string/test_chars.rb', line 208

def test_newlines_and_nonprintables
  test = "Céli\x00ne\nhöre\x0c\x0e\x0fn"
  assert_equal "Celine\nhören",      test.reduce( :preserve => "ÄÖÜäöüß")
  assert_equal "Celine\nhoeren",     test.reduce
  assert_equal "Celine\nhoren",      test.reduce(:fast => true )
end

- (Object) test_preserve



182
183
184
185
186
187
188
189
190
191
192
193
194
195
# File 'test/string/test_chars.rb', line 182

def test_preserve
        # 0123456789012345678901234567890123456789
  test = "ßàáâăäãāāāåạąæảấầắằÀÁÂĂÄÃĀÅẠĄÆẢẤẦẮẰćĉčçċĆĈČÇĊďðđĎÐĐèéêěĕëēėęếÈÉÊĚĔËĒĖĘẾĝğġģĜĞĠĢĥħĤĦìíîĭïĩīıįijÌÍÎĬÏĨĪİĮIJĵĴķĶĺľłļŀĹĽŁĻĿńňñņʼnŋŃŇÑŅŊòóôŏöõōøőơœÒÓÔŎÖÕŌØŐƠŒŕřŗŔŘŖśŝšßşŚŜŠŞţťŧþŢŤŦÞùúûŭüũūůűųưÙÚÛŬÜŨŪŮŰŲƯŵŴýŷÿÝŶŸźżžŹŻŽ"
  belassen = test[10..27]
  exp = "ssaaaaaeaaaaåạąæảấầắằÀÁÂĂÄÃĀÅẠAAEAAAAAccccchCCCCChdddDDDeeeeeeeeeeEEEEEEEEEEggghgGGGhGhhHHiiiiiiiiiijIIIIIIIIIIJjJkKlllllLLLLLnnnnnnjNNNNNJoooooeooooooeOOOOOeOOOOOOErrrRRRssshsssSSShSttttTTTTuuuuueuuuuuuUUUUUeUUUUUUwWyyyYYYzzzhZZZh"
  assert_equal exp, test.reduce(:preserve => belassen)
  assert_raise ArgumentError do
    belassen = test[10..28] 
    test.reduce(:preserve => belassen) 
  end
  test = "Háâaäãaållo\nWelt"
  assert_equal "Haaaäaaallo\nWelt", test.reduce( :preserve =>"äöüßÄÖÜ" )

end

- (Object) test_reduce53_a



243
244
245
246
247
# File 'test/string/test_chars.rb', line 243

def test_reduce53_a
  full    = '   ŕřŗŔŘŖśŝšßşŚŜ    ŠŞţťŧþŢŤŦÞùúûŭ   üũūůűųưÙÚÛ    ÜŨŪŮŰŲƯŵ   ŴýŷÿÝŶŸźżžŹŻŽ  '
  reduced = 'rrrrrrsssssss-ssttttttttuuuu-uuuuuuuuuu-uuuuuuuw-wyyyyyyzzzzzz'   
  assert_equal reduced,       full.reduce53 
end

- (Object) test_reduce53_b



249
250
251
252
253
# File 'test/string/test_chars.rb', line 249

def test_reduce53_b
  full    = "   h A-- $%$%--llo §-$\n$^°  "
  reduced = 'H-A-LLO'   
  assert_equal reduced,       full.reduce53 
end

- (Object) test_reduce53_c



255
256
257
258
259
# File 'test/string/test_chars.rb', line 255

def test_reduce53_c
  full    = "   h A-- $%Ѥ%--llo\n §-$\n$^°  "
  reduced = 'H-A-LLO'   
  assert_equal reduced,       full.reduce53 
end

- (Object) test_reduce53_d



261
262
263
264
265
# File 'test/string/test_chars.rb', line 261

def test_reduce53_d
  full    = "   h Ä-- $%Ѥ%--llo\n §-$\n$^°  "
  reduced = 'H-a-LLO'   
  assert_equal reduced,       full.reduce53 
end

- (Object) test_reduce53_e



267
268
269
270
271
# File 'test/string/test_chars.rb', line 267

def test_reduce53_e
  full    = "   h ä-- $%Ѥ%--llo\n §-$\n$^°  "
  reduced = 'H-a-LLO'   
  assert_equal reduced,       full.reduce53 
end

- (Object) test_reduce94_full



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'test/string/test_chars.rb', line 218

def test_reduce94_full
  full = <<ENDOFSTRING
àáâăäãāåạąảấầắằÀÁÂĂÄÃĀÅẠĄẢẤẦẮẰćĉčçċĆĈČÇĊďðđĎÐĐèéêěĕëēėęếÈÉÊĚĔËĒĖĘẾĝğġģĜĞĠĢĥħĤĦìíîĭïĩīıįÌÍÎĬÏĨĪİĮĵĴķĶĺľłļŀĹĽŁĻĿńňñņʼnŋŃŇÑŅŊòóôŏöõōøőơœÒÓÔŎÖÕŌØŐƠŒŕřŗŔŘŖśŝšßşŚŜŠŞţťŧþŢŤŦÞùúûŭüũūůűųưÙÚÛŬÜŨŪŮŰŲƯŵŴýŷÿÝŶŸźżžŹŻŽ
ENDOFSTRING

  reduced = <<ENDOFSTRING
aaaaaaaaaaaaaaaAAAAAAAAAAAAAAAcccccCCCCCdddDDDeeeeeeeeeeEEEEEEEEEEggggGGGGhhHHiiiiiiiiiIIIIIIIIIjJkKlllllLLLLLnnnnnnNNNNNoooooooooooOOOOOOOOOOOrrrRRRsssssSSSSttttTTTTuuuuuuuuuuuUUUUUUUUUUUwWyyyYYYzzzZZZ
ENDOFSTRING

  full = full.chomp
  reduced = reduced.chomp
  
  assert_equal reduced,       full.reduce94      
  
  # require 'perception'
  # rawlog "\n----------------------------------------------------------\n\n"
  # rawlog 'full=     '
  # rawlog full
  # rawlog "\n"
  # rawlog 'reduced=  '
  # rawlog reduced
  # rawlog "\n"  
end

- (Object) test_spaces



168
169
170
171
172
# File 'test/string/test_chars.rb', line 168

def test_spaces
  spaces =  "\u0020\u00a0\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u202f\u205f\u3000\u2420\u2423"
  assert_equal spaces.reduce, " " * spaces.length
  assert_equal spaces.reduce94, " " * spaces.length
end

- (Object) test_to_array_of_codepoints



69
70
71
72
73
# File 'test/string/test_chars.rb', line 69

def test_to_array_of_codepoints
  test = "H¿llÛ"
  assert_equal [72, 191, 108, 108, 219],    test.to_array_of_codepoints
  assert_equal test,                        [72, 191, 108, 108, 219].to_s_utf8
end

- (Object) test_to_array_of_hex



75
76
77
78
79
80
81
82
# File 'test/string/test_chars.rb', line 75

def test_to_array_of_hex
  euro = "\u20ac"
  ffi = "\uFB03"
  ix = "\u2168"
  high5 = "\u2075"
  all = euro + ffi + ix + high5
  assert_equal ["20ac", "fb03", "2168", "2075"], all.to_array_of_hex
end

- (Object) test_to_ascii_a



86
87
88
89
90
91
# File 'test/string/test_chars.rb', line 86

def test_to_ascii_a
  full    = 'ªàáâăãāåạąảấầắằÀÁÂĂÃĀÅẠĄẢẤẦẮẰ'
  reduced = 'aaaaaaaaaaaaaaaAAAAAAAAAAAAAA' 
  assert_equal reduced,       full.reduce94      
  assert_equal reduced,       full.reduce      
end

- (Object) test_to_ascii_b



93
94
95
96
97
98
99
# File 'test/string/test_chars.rb', line 93

def test_to_ascii_b
  full    =   'ćĉčçċĆĈČÇĊďĎèéêěĕëēėęếÈÉÊĚĔËĒĖĘẾ'
  reduced1 =  'cccccCCCCCdDeeeeeeeeeeEEEEEEEEEE'  
  reduced2 =  'ccccchCCCCChdDeeeeeeeeeeEEEEEEEEEE'
  assert_equal reduced1,       full.reduce94  
  assert_equal reduced2,       full.reduce  
end

- (Object) test_to_ascii_c



101
102
103
104
105
106
107
# File 'test/string/test_chars.rb', line 101

def test_to_ascii_c
  full    =   'ĝğġģĜĞĠĢĥĤìíîĭïĩīįÌÍÎĬÏĨĪİĮĵĴķĶĺľļŀĹĽĻĿ'
  reduced1 =  'ggggGGGGhHiiiiiiiiIIIIIIIIIjJkKllllLLLL'  
  reduced2 =  'ggghgGGGhGhHiiiiiiiiIIIIIIIIIjJkKllllLLLL'
  assert_equal reduced1,       full.reduce94  
  assert_equal reduced2,       full.reduce      
end

- (Object) test_to_ascii_e



109
110
111
112
113
114
# File 'test/string/test_chars.rb', line 109

def test_to_ascii_e
  full    = 'ńňñņʼnŃŇÑŅòóôŏõōőơÒÓÔŎÕŌŐƠ'
  reduced = 'nnnnnNNNNooooooooOOOOOOOO' 
  assert_equal reduced,       full.reduce94  
  assert_equal reduced,       full.reduce      
end

- (Object) test_to_ascii_f



116
117
118
119
120
121
122
# File 'test/string/test_chars.rb', line 116

def test_to_ascii_f
  full    =   'ŕřŗŔŘŖśŝšşŚŜŠŞţťŢŤùúûŭũūůűųưÙÚÛŬŨŪŮŰŲƯŵŴýŷÿÝŶŸźżžŹŻŽ'
  reduced1 =  'rrrRRRssssSSSSttTTuuuuuuuuuuUUUUUUUUUUwWyyyYYYzzzZZZ'  
  reduced2 =  'rrrRRRssshsSSShSttTTuuuuuuuuuuUUUUUUUUUUwWyyyYYYzzzhZZZh' 
  assert_equal reduced1,       full.reduce94  
  assert_equal reduced2,       full.reduce      
end

- (Object) test_to_ascii_s



149
150
151
152
153
154
155
156
157
158
159
# File 'test/string/test_chars.rb', line 149

def test_to_ascii_s
  ffi = "\uFB03"
  ix = "\u2168"
  high23="²³"
  high5 = "\u2075"
  full = ffi + ix + high23 + high5 + "€ßÖÜÄöüä"
  reduced1 = "sOUAoua"
  reduced2 = "ffiIX235EURssOeUeAeoeueae"
  assert_equal reduced1,       full.reduce94      
  assert_equal reduced2,       full.reduce      
end

- (Object) test_to_ascii_same_same



130
131
132
133
134
135
136
137
138
139
# File 'test/string/test_chars.rb', line 130

def test_to_ascii_same_same
  same_same    = '^!"$%&/()=?@*+~#<>|,;:.-_ {[]}\\'
  assert_equal same_same,     same_same.reduce 
  same_same    = "'0123456789"
  assert_equal same_same,     same_same.reduce  
  same_same    = 'abcdefghijklmnopqrstuvwxyz'
  assert_equal same_same,     same_same.reduce  
  same_same    = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  assert_equal same_same,     same_same.reduce     
end

- (Object) test_to_ascii_zusammengesetzt



124
125
126
127
128
# File 'test/string/test_chars.rb', line 124

def test_to_ascii_zusammengesetzt
  full    = 'ijIJſ…'
  reduced = 'ijIJs...'  
  assert_equal reduced,       full.reduce      
end

- (Object) test_TR_EXTRA_CHARS




22
23
24
25
26
27
28
29
30
31
32
33
# File 'test/string/test_chars.rb', line 22

def test_TR_EXTRA_CHARS
  startline = 23 # Zeilennummer in der TR_EXTRA_CHARS definiert wird
  i = 0
  all = ""
  TR_EXTRA_CHARS.each do | a |
    c = a[0].to_s[7]
    all += c
    assert_equal 0, all.to_a.to_set.size-i-1, "TR_EXTRA_CHARS: Dup in Zeile #{i+startline} Zeichen #{c}"  
    #assert c.to_array_of_codepoints[0] > 127, "TR_EXTRA_CHARS: Trivialität in Zeile #{i+startline} Zeichen #{c}"   
    i+=1
  end
end

- (Object) test_TR_FULL



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'test/string/test_chars.rb', line 36

def test_TR_FULL
  assert_equal TR_FULL.length, TR_REDUCED.length
  i = 0
  all = ""
  TR_FULL.each_char do | c |
    r = TR_REDUCED[i]    
    all += c
    #see "Zeichen Nr. #{i} Zeichen #{c} >> #{r}"      
    assert_equal 0, all.to_a.to_set.size-i-1, "TR_FULL: Dup in Zeichen Nr. #{i} Zeichen #{c} >> #{r}"  
    assert c.to_array_of_codepoints[0] > 127, "TR_FULL: Trivialität in Zeichen Nr. #{i} Zeichen #{c} >> #{r}"  
    assert r.to_array_of_codepoints[0] <= 127, "TR_FULL: Zeichen Nr. #{i} Zeichen #{c} >> #{r} wird nicht in ASCII umgesetzt"        
    assert_equal c.reduce94, c.reduce[0]     
    i+=1
  end
end

- (Object) test_TR_FULL_TO_ASCII



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'test/string/test_chars.rb', line 53

def test_TR_FULL_TO_ASCII
  assert_equal TR_FULL_TO_ASCII.length, TR_REDUCED_TO_ASCII.length
  i = 0
  all = ""
  TR_FULL_TO_ASCII.each_char do | c |
    r = TR_REDUCED_TO_ASCII[i]
    all += c
    #see "Zeichen Nr. #{i} Zeichen #{c} >> #{r}" 
    assert_equal 0, all.to_a.to_set.size-i-1,          "TR_FULL_TO_ASCII: Dup in Zeichen Nr. #{i} Zeichen #{c} >> #{r}"  
    assert c.to_array_of_codepoints[0] > 127,  "TR_FULL_TO_ASCII: Trivialität in Zeichen Nr. #{i} Zeichen #{c} >> #{r}"   
    assert r.to_array_of_codepoints[0] <= 127, "TR_FULL_TO_ASCII: Zeichen Nr. #{i} Zeichen #{c} >> #{r} wird nicht in ASCII umgesetzt"        
    i+=1
  end
end

- (Object) test_utf8_size



375
376
377
# File 'test/string/test_chars.rb', line 375

def test_utf8_size
  assert_equal 3, 'Özi'.size   
end