use strict;
use warnings;
use Test::More tests => 4;
use Test::Exception;
use Carp;
use Data::Dumper;

use MongoDB;
use MongoDB::OID;

my $conn = MongoDB::Connection->new;
my $db = $conn->get_database('x');
my $coll = $db->get_collection('y');

$coll->drop;
$coll->insert({'latin extended' => {
	'acute' => 'AÁ aá   C\u0106 c\u0107   EÉ eé   IÍ ií   L\u0139 l\u013a   N\u0143 n\u0144   OÓ oó   R\u0154 r\u0155   S\u015a s\u015b   UÚ uú   YÝ yý   Z\u0179 z\u017a',
	'hacek' => 'dď   LĽ lľ   tť',
	'caron' => 'CÇ cç   GĢ gģ   KĶ kķ   LĻ lļ   NŅ nņ   RŖ rŗ   SŞ sş   TŢ tţ',
	'circumflex' => 'AÂ aâ   CĈ cĉ   EÊ eê   GĜ gĝ   HĤ hĥ   IÎ iî   JĴ jĵ   OÔ oô   SŜ sŝ   UÛ uû   WŴ wŵ   YŶ yŷ',
	'umlaut' => 'AÄ aä   EË eë   IÏ iï   OÖ oö   UÜ uü   YŸ yÿ',
	'dot above' => 'CĊ cċ   EĖ eė   GĠ gġ   Iİ iı   ZŻ zż',
	'double acute' => 'OŐ oő   UŰ uű',
	'grave' => 'AÀ aà   EÈ eè   IÌ iì   OÒ oò   UÙ uù',
	'horn' => 'OƠ oơ   UƯ uư',
	'macron' => 'AĀ aā   EĒ eē   IĪ iī   OŌ oō   UŪ uū',
	'ogonek' => 'AĄ aą   EĘ eę   IĮ iį   UŲ uų',
	'ring above' => 'AÅ aå   UŮ uů',
	'stroke' => 'DĐ dđ   HĦ hħ   LŁ lł   OØ oø',
	'tilde' => 'AÃ aã   NÑ nñ   OÕ oõ',
	'ligatures' => 'AEÆ aeæ   OEŒ oeœ',
	'eth and thorn' => 'DÐ dð   THÞ thþ',
	'ses' => 'ß   ſ'
	},
	'greek' => {
	'capital' => 'Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω',
	'tonos' => 'Ά   Έ   Ή   Ί   Ό   Ύ   Ώ',
	'dialytika' => 'Ϊ   Ϋ',
	'small' => 'α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σς τ υ φ χ ψ ω',
	'tonos_sm' => 'ά   έ   ή   ί   ό   ύ   ώ',
	'dialytika_sm' => 'ϊ   ϋ',
	'both_sm' => 'ΐ   ΰ'
	},
	'cyrillic' => ['А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я',
	'А Б В Г Д Е Ё Ж З І Й К Л М Н О П Р С Т У Ў Ф Х Ц Ч Ш Ы Ь Э Ю Я
а б в г д е ё ж з і й к л м н о п р с т у ў ф х ц ч ш ы ь э ю я',
	'А Б В Г Ґ Д Е Є Ж З И І Ї Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ю Я
а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ь ю я',
	'А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ь Ю Я
а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ь ю я',
	'А Б В Г Д Ѓ Е Ж З Ѕ И Ј К Л Љ М Н Њ О П Р С Т Ќ У Ф Х Ц Ч Џ Ш
а б в г д ѓ е ж з ѕ и ј к л љ м н њ о п р с т ќ у ф х ц ч џ ш',
	'А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш',
	'A B V G D E Ë Zh Z I J K L M N O Ö P R S T U Ü F X C Ch Sh Shh " Y E Ju Ja А Б В Г Д Е Ё Ж З И Й К Л М Н О Ө П Р С Т У Ү Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
    а б в г д е ё ж з и й к л м н о ө п р с т у ү ф х ц ч ш щ ъ ы ь э ю я'
	],
	'a b g d e z ê ă th   ž i l x c’ k’ h dz ğ   č’ m j n š o č p’ dž   rr s v t’ r c w ph kh   ô f
    Ա Բ Գ Դ Ե Զ Է Ը Թ   Ժ Ի Լ Խ Ծ Կ Հ Ձ Ղ   Ճ Մ Յ Ն Շ Ո Չ Պ Ջ   Ռ Ս Վ Տ Ր Ց Ւ Փ Ք   Օ Ֆ ' => '    a b g d e z ê ă th   ž i l x c’ k’ h dz ğ   č’ m j n š o č p’ dž   rr s v t’ r c w ph kh   ew ô f
    ա բ գ դ ե զ է ը թ   ժ ի լ խ ծ կ հ ձ ղ   ճ մ յ ն շ ո չ պ ջ   ռ ս վ տ ր ց ւ փ ք   և օ ֆ ',
	'a b g d e v z th   i k’ l m n o p’ ž   r s t’ u ph kh ğ q’ š   č c dz c’ č’ x dž h
    ა ბ გ დ ე ვ ზ თ   ი კ ლ მ ნ ო პ ჟ   რ ს ტ უ ფ ქ ღ ყ შ   ჩ ც ძ წ ჭ ხ ჯ ჰ ' => 1,
	'hebrew' => {
	'alphabet' => '’ v g d h w z H T y xx l mm nn s ‘ ff cc q r S ( š ś ) t  א ב ג ד ה ו ז ח ט י כך ל מם נן ס ע פף צץ ק ר ש ( שׁ שׂ ) ת ',
	'dagesh' => '’ b g d h w z   T y kk l m  n  s   pp c  q r S ( š ś ) t   אּ בּ גּ דּ הּ וּ זּ   טּ יּ כּךּ לּ מּ  נּ  סּ   פּףּ צּ  קּ רּ שּ ( שּׁ שּׂ ) תּ ',
	'yiddish' => 'ww   wy   yy   װ   ױ   ײ ',
	'rafe' => 'בֿ   כֿ   פֿ',
	'points' => 'אַ   אָ   וֹ   וּ   יִ   ײַ'
	}

});

my $mess = $coll->find_one();
is($mess->{'horn'}, 'OƠ oơ   UƯ uư');
is($mess->{'cyrillic'}[0], 'А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я');
is($mess->{"a b g d e z ê ă th   ž i l x c’ k’ h dz ğ   č’ m j n š o č p’ dž   rr s v t’ r c w ph kh   ô f\n    Ա Բ Գ Դ Ե Զ Է Ը Թ   Ժ Ի Լ Խ Ծ Կ Հ Ձ Ղ   Ճ Մ Յ Ն Շ Ո Չ Պ Ջ   Ռ Ս Վ Տ Ր Ց Ւ Փ Ք   Օ Ֆ "}, "    a b g d e z ê ă th   ž i l x c’ k’ h dz ğ   č’ m j n š o č p’ dž   rr s v t’ r c w ph kh   ew ô f\n    ա բ գ դ ե զ է ը թ   ժ ի լ խ ծ կ հ ձ ղ   ճ մ յ ն շ ո չ պ ջ   ռ ս վ տ ր ց ւ փ ք   և օ ֆ ");
is($mess->{'hebrew'}{'rafe'}, 'בֿ   כֿ   פֿ');

