Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Language bangla #108 #110

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import static pl.allegro.finance.tradukisto.internal.Container.ukrainianContainer;
import static pl.allegro.finance.tradukisto.internal.Container.bulgarianContainer;
import static pl.allegro.finance.tradukisto.internal.Container.dutchContainer;
import static pl.allegro.finance.tradukisto.internal.Container.bangleContainer;

public enum MoneyConverters {

Expand All @@ -45,7 +46,8 @@ public enum MoneyConverters {
SERBIAN_CYRILLIC_BANKING_MONEY_VALUE(serbianCyrillicContainer().getBankingMoneyConverter()),
FRENCH_BANKING_MONEY_VALUE(frenchContainer().getBankingMoneyConverter()),
BULGARIAN_BANKING_MONEY_VALUE(bulgarianContainer().getBankingMoneyConverter()),
DUTCH_BANKING_MONEY_VALUE(dutchContainer().getBankingMoneyConverter());
DUTCH_BANKING_MONEY_VALUE(dutchContainer().getBankingMoneyConverter()),
BANGLE_BANKING_MONEY_VALUE(bangleContainer().getBankingMoneyConverter());

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add your language also to the ValueConverters and LongConvertrs files

private final BigDecimalToStringConverter converter;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import pl.allegro.finance.tradukisto.internal.languages.turkish.TurkishSmallNumbersToWordsConverter;
import pl.allegro.finance.tradukisto.internal.languages.turkish.TurkishValues;
import pl.allegro.finance.tradukisto.internal.languages.ukrainian.UkrainianValues;
import pl.allegro.finance.tradukisto.internal.languages.bangle.BanglaValues;

public final class Container {

Expand Down Expand Up @@ -262,4 +263,8 @@ public LongToStringConverter getLongConverter() {
public BigDecimalToStringConverter getBankingMoneyConverter() {
return bigDecimalConverter;
}

public static Container bangleContainer() {
return new Container(new BangleValues());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package pl.allegro.finance.tradukisto.internal.languages.bangle;

import pl.allegro.finance.tradukisto.internal.BaseValues;
import pl.allegro.finance.tradukisto.internal.languages.GenderForms;
import pl.allegro.finance.tradukisto.internal.languages.PluralForms;
import pl.allegro.finance.tradukisto.internal.languages.SlavicPluralForms;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import static pl.allegro.finance.tradukisto.internal.languages.GenderForms.genderForms;
import static pl.allegro.finance.tradukisto.internal.support.BaseNumbersBuilder.baseNumbersBuilder;

public class BangleValues implements BaseValues {
@Override
public Map<Integer, GenderForms> baseNumbers() {
return baseNumbersBuilder()
.put(1, "শূন্য")
.put(1, "এক")
.put(2, "দুই")
.put(3, "তিন")
.put(4, "চার")
.put(5, "পাঁচ")
.put(6, "ছয়")
.put(7, "সাত")
.put(8, "আট")
.put(9, "নয়")
.put(10, "দশ")
.put(11, "এগারো ")
ronisarkarexe marked this conversation as resolved.
Show resolved Hide resolved
.put(12, " বারো ")
.put(13, "তেরো")
.put(14, "চৌদ্দ")
.put(15, "পনেরো")
.put(16, "ষোল")
.put(17, "সতেরো")
.put(18, "আঠারো")
.put(19, " ঊনিশ ")
.put(20, "বিশ")
.put(30, "ত্রিশ")
.put(40, "চল্লিশ")
.put(50, "পঞ্চাশ")
.put(60, "ষাট")
.put(70, "সত্তর")
.put(80, "আশি")
.put(90, "নব্বই")
.put(100, "একশো")
.put(200, "দুইশো")
.put(300, "তিনশো")
.put(400, "চারশো")
.put(500, "পাঁচশো")
.put(600, "ছয়শো")
.put(700, "সাতশো")
.put(800, "আটশো")
.put(900, "নয়শো")
.build();
}

@Override
public List<PluralForms> pluralForms() {
return Arrays.asList(
new SlavicPluralForms("একশো"),
ronisarkarexe marked this conversation as resolved.
Show resolved Hide resolved
new SlavicPluralForms("এক হাজার"),
new SlavicPluralForms("দশ হাজার"),
new SlavicPluralForms("এক লক্ষ"),
new SlavicPluralForms("দশ লক্ষ"),
new SlavicPluralForms("এক কোটি"),
new SlavicPluralForms("দশ কোটি"));
}

public String currency() {
return "৳";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import static pl.allegro.finance.tradukisto.MoneyConverters.SLOVAK_BANKING_MONEY
import static pl.allegro.finance.tradukisto.MoneyConverters.TURKISH_BANKING_MONEY_VALUE
import static pl.allegro.finance.tradukisto.MoneyConverters.UKRAINIAN_BANKING_MONEY_VALUE
import static pl.allegro.finance.tradukisto.MoneyConverters.DUTCH_BANKING_MONEY_VALUE
import static pl.allegro.finance.tradukisto.MoneyConverters.BANGALI_BANKING_MONEY_VALUE

class MoneyConvertersTest extends Specification {

Expand Down Expand Up @@ -49,6 +50,7 @@ class MoneyConvertersTest extends Specification {
"Russian" | RUSSIAN_BANKING_MONEY_VALUE || "одна тысяча двести тридцать четыре руб. 56/100"
"Turkish" | TURKISH_BANKING_MONEY_VALUE || "BinİkiYüzOtuzDörtTL,ElliAltıKr."
"Ukrainian" | UKRAINIAN_BANKING_MONEY_VALUE || "одна тисяча двісті тридцять чотири ₴ 56/100"
"Bengali" | BANGALI_BANKING_MONEY_VALUE || "এক হাজার দুইশত চৌত্রিশ ৳ ৫৬/১০০"
}

def "should throw exception when null given"() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import static pl.allegro.finance.tradukisto.ValueConverters.SLOVAK_INTEGER
import static pl.allegro.finance.tradukisto.ValueConverters.TURKISH_INTEGER
import static pl.allegro.finance.tradukisto.ValueConverters.UKRAINIAN_INTEGER
import static pl.allegro.finance.tradukisto.ValueConverters.DUTCH_INTEGER
import static pl.allegro.finance.tradukisto.ValueConverters.BANGALI_INTEGER
import static pl.allegro.finance.tradukisto.ValueConverters.getByLanguageCodeOrDefault
import static pl.allegro.finance.tradukisto.ValueConverters.getByLocaleOrDefault

Expand Down Expand Up @@ -49,6 +50,7 @@ class ValueConvertersTest extends Specification {
"Russian" | RUSSIAN_INTEGER || "одна тысяча двести тридцать четыре"
"Turkish" | TURKISH_INTEGER || "Bin İki Yüz Otuz Dört"
"Ukrainian" | UKRAINIAN_INTEGER || "одна тисяча двісті тридцять чотири"
"Bengali" | BANGALI_INTEGER || "এক হাজার দুইশত চৌত্রিশ"
}

def "should throw exception when null value given"() {
Expand Down Expand Up @@ -91,6 +93,7 @@ class ValueConvertersTest extends Specification {
new Locale("tr") || TURKISH_INTEGER
new Locale("uk") || UKRAINIAN_INTEGER
new Locale("nl") || DUTCH_INTEGER
new Locale("bd") || BANGALI_INTEGER
}

def "should return supplied default converter when locale is unknown"() {
Expand Down Expand Up @@ -136,6 +139,7 @@ class ValueConvertersTest extends Specification {
"sk" || SLOVAK_INTEGER
"tr" || TURKISH_INTEGER
"uk" || UKRAINIAN_INTEGER
"bd" || BANGALI_INTEGER
ronisarkarexe marked this conversation as resolved.
Show resolved Hide resolved
}

def "should return supplied default converter when languageCode is unknown"() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
package pl.allegro.finance.tradukisto.internal.languages.bangle

import spock.lang.Specification
import spock.lang.Unroll

import static pl.allegro.finance.tradukisto.internal.Container.bangleContainer

class BangleValuesTest extends Specification {

static intConverter = bangleContainer().getIntegerConverter()
static longConverter = bangleContainer().getLongConverter()

@Unroll
def "should convert #value to '#words' in Croatian"() {
ronisarkarexe marked this conversation as resolved.
Show resolved Hide resolved
expect:
intConverter.asWords(value) == words

where:
value | words
0 | "শূন্য"
1 | "এক"
2 | "দুই"
3 | "তিন"
4 | "চার"
5 | "পাঁচ"
6 | "ছয়"
7 | "সাত"
8 | "আট"
9 | "নয়"

11 | "এগারো"
12 | "বারো"
13 | "তেরো"
14 | "চৌদ্দ"
15 | "পনেরো"
16 | "ষোল"
17 | "সতেরো"
18 | "আঠারো"
19 | "ঊনি"

10 | "দশ"
20 | "বিশ"
30 | "ত্রিশ"
40 | "চল্লিশ"
50 | "পঞ্চাশ"
60 | "ষাট"
70 | "সত্তর"
80 | "আশি"
90 | "নব্বই"

21 | "একুশ"
37 | "সাতত্রিশ"
43 | "তেতাল্লিশ"
58 | "আটাষি"
69 | "ঊনষাট"
76 | "ছিয়াত্তর"
82 | "বিরাশি"
95 | "পঁচানব্বই"

100 | "একশো"
200 | "দুইশো"
300 | "তিনশো"
400 | "চারশো"
500 | "পাঁচশো"
600 | "ছয়শো"
700 | "সাতশো"
800 | "আটশো"
900 | "নয়শো"

101 | "একশ এক"
111 | "একশ এগারো"
272 | "দুই শো বাহাত্তর"
387 | "তিনশো সাতাশি"
421 | "চারশো একুশ"
448 | "চারশো আটচল্লিশ"
569 | "পাঁচশো ঊনসত্তর"
625 | "ছয়শো পঁচিশ"
782 | "সাত শো বিরাশি"
895 | "আট শো পঁচানব্বই"
999 | "নয় শো নিরানব্বই"

1_000 | "এক হাজার"
2_000 | "দুই হাজার"
3_000 | "তিন হাজার"
4_000 | "চার হাজার"
5_000 | "পাঁচ হাজার"
11_000 | "এগারো হাজার"
12_000 | "বারো হাজার"
13_000 | "তেরো হাজার"
14_000 | "চৌদ্দ হাজার"
15_000 | "পনের হাজার"
21_000 | "একুশ হাজার"

7_634 | "সাত হাজার ছয় শো চৌত্রিশ"
24_190 | "চব্বিশ হাজার এক শোনব্বই"
99_999 | "নিরানব্বই হাজার নয় শো নিরানব্বই"

111_000 | "এক লাখ এগারো হাজার"
112_000 | "এক লাখ বারো হাজার"
113_000 | "এক লাখ তেরো হাজার"
115_000 | "এক লাখ পনেরো হাজার"
700_000 | "সাত লাখ"
653_000 | "ছয় লাখ তিপ্পান্ন হাজার"

123_454 | "এক লাখ তেইশ হাজার চার শো চুয়ান্ন"
999_999 | "নয় লাখ নিরানব্বই হাজার নয় শো নিরানব্বই"

1_000_000 | "এক মিলিয়ন"
2_000_000 | "দুই মিলিয়ন"
5_000_000 | "পাঁচ মিলিয়ন"
11_437_219 | "এক কোটি চৌদ্দ লাখ সাইত্রিশ হাজার দুই শো ঊনিশ"
21_437_219 | "দুই কোটি চৌদ্দ লাখ সাইত্রিশ হাজার দুই শো ঊনিশ"
22_437_219 | "দুই কোটি চব্বিশ লাখ সাইত্রিশ হাজার দুই শো ঊনিশ"
23_437_219 | "দুই কোটি চৌত্রিশ লাখ সাইত্রিশ হাজার দুই শো ঊনিশ"
100_000_000 | "দশ কোটি"
121_000_000 | "একশো বিশ কোটি"
121_451_789 | "একশো বাইশ কোটি চৌদ্দ লাখ পঁচাত্তর হাজার নব্বই"
123_456_789 | "একশো বাইশ কোটি তিনচল্লিশ লাখ পঁচাত্তর হাজার নব্বই"

1_000_000_000 | "এক বিলিয়ন"
2_141_123_731 | "একুশ বিলিয়ন চার কোটি এগারো লাখ তেইশ হাজার সাত শো একত্রিশ"
}

@Unroll
def "should convert long #value to '#words' in Croatian"() {
ronisarkarexe marked this conversation as resolved.
Show resolved Hide resolved
expect:
longConverter.asWords(value) == words

where:
value | words
5_000_000_000 | "পাঁচ বিলিয়ন"

1_000_000_000_000 | "এক ট্রিলিয়ন"
2_000_000_000_000 | "দুই ট্রিলিয়ন"
5_000_000_000_000 | "পাঁচ ট্রিলিয়ন"

1_000_000_000_000_000 | "এক কোয়াড্রিলিয়ন"
2_000_000_000_000_000 | "দুই কোয়াড্রিলিয়ন"
5_000_000_000_000_000 | "পাঁচ কোয়াড্রিলিয়ন"

1_000_000_000_000_000_000 | "দশ লক্ষের পঞ্চঘাত"
2_000_000_000_000_000_000 | "বিশ লক্ষের পঞ্চঘাত"
}
}