income-tax 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (396) hide show
  1. checksums.yaml +4 -4
  2. data/lib/income_tax/countries/austria.rb +13 -5
  3. data/lib/income_tax/countries/france.rb +9 -1
  4. data/lib/income_tax/countries/germany.rb +59 -18
  5. data/lib/income_tax/countries/germany/rates.tsv +10 -0
  6. data/lib/income_tax/countries/greece.rb +3 -2
  7. data/lib/income_tax/countries/singapore.rb +2 -11
  8. data/lib/income_tax/countries/switzerland/aargau.rb +1 -1
  9. data/lib/income_tax/countries/switzerland/appenzell_inner.rb +1 -1
  10. data/lib/income_tax/countries/switzerland/appenzell_outer.rb +1 -1
  11. data/lib/income_tax/countries/switzerland/basel_city.rb +1 -1
  12. data/lib/income_tax/countries/switzerland/basel_land.rb +1 -1
  13. data/lib/income_tax/countries/switzerland/bern.rb +1 -1
  14. data/lib/income_tax/countries/switzerland/data/aargau.dat +0 -0
  15. data/lib/income_tax/countries/switzerland/data/appenzell_inner.dat +0 -0
  16. data/lib/income_tax/countries/switzerland/data/appenzell_outer.dat +0 -0
  17. data/lib/income_tax/countries/switzerland/data/basel_city.dat +0 -0
  18. data/lib/income_tax/countries/switzerland/data/basel_land.dat +0 -0
  19. data/lib/income_tax/countries/switzerland/data/bern.dat +0 -0
  20. data/lib/income_tax/countries/switzerland/data/fribourg.dat +0 -0
  21. data/lib/income_tax/countries/switzerland/data/geneva.dat +0 -0
  22. data/lib/income_tax/countries/switzerland/data/glarus.dat +0 -0
  23. data/lib/income_tax/countries/switzerland/data/grisons.dat +0 -0
  24. data/lib/income_tax/countries/switzerland/data/jura.dat +0 -0
  25. data/lib/income_tax/countries/switzerland/data/lucerne.dat +0 -0
  26. data/lib/income_tax/countries/switzerland/data/neuchatel.dat +0 -0
  27. data/lib/income_tax/countries/switzerland/data/nidwalden.dat +0 -0
  28. data/lib/income_tax/countries/switzerland/data/obwalden.dat +0 -0
  29. data/lib/income_tax/countries/switzerland/data/schaffhausen.dat +0 -0
  30. data/lib/income_tax/countries/switzerland/data/schwyz.dat +0 -0
  31. data/lib/income_tax/countries/switzerland/data/solothurn.dat +0 -0
  32. data/lib/income_tax/countries/switzerland/data/st_gallen.dat +0 -0
  33. data/lib/income_tax/countries/switzerland/data/thurgau.dat +0 -0
  34. data/lib/income_tax/countries/switzerland/data/ticino.dat +0 -0
  35. data/lib/income_tax/countries/switzerland/data/uri.dat +0 -0
  36. data/lib/income_tax/countries/switzerland/data/valais.dat +0 -0
  37. data/lib/income_tax/countries/switzerland/data/vaud.dat +0 -0
  38. data/lib/income_tax/countries/switzerland/data/zug.dat +0 -0
  39. data/lib/income_tax/countries/switzerland/data/zurich.dat +0 -0
  40. data/lib/income_tax/countries/switzerland/fribourg.rb +1 -1
  41. data/lib/income_tax/countries/switzerland/geneva.rb +1 -1
  42. data/lib/income_tax/countries/switzerland/glarus.rb +1 -1
  43. data/lib/income_tax/countries/switzerland/grisons.rb +1 -1
  44. data/lib/income_tax/countries/switzerland/jura.rb +1 -1
  45. data/lib/income_tax/countries/switzerland/lucerne.rb +1 -1
  46. data/lib/income_tax/countries/switzerland/neuchatel.rb +1 -1
  47. data/lib/income_tax/countries/switzerland/nidwalden.rb +1 -1
  48. data/lib/income_tax/countries/switzerland/obwalden.rb +1 -1
  49. data/lib/income_tax/countries/switzerland/schaffhausen.rb +1 -1
  50. data/lib/income_tax/countries/switzerland/schwyz.rb +1 -1
  51. data/lib/income_tax/countries/switzerland/solothurn.rb +1 -1
  52. data/lib/income_tax/countries/switzerland/st_gallen.rb +1 -1
  53. data/lib/income_tax/countries/switzerland/thurgau.rb +1 -1
  54. data/lib/income_tax/countries/switzerland/ticino.rb +1 -1
  55. data/lib/income_tax/countries/switzerland/uri.rb +1 -1
  56. data/lib/income_tax/countries/switzerland/valais.rb +1 -1
  57. data/lib/income_tax/countries/switzerland/vaud.rb +1 -1
  58. data/lib/income_tax/countries/switzerland/zug.rb +1 -1
  59. data/lib/income_tax/countries/switzerland/zurich.rb +1 -1
  60. data/lib/income_tax/countries/united_kingdom.rb +12 -4
  61. data/lib/income_tax/models/generic.rb +5 -1
  62. data/lib/income_tax/models/progressive.rb +27 -5
  63. data/lib/income_tax/rate.rb +1 -0
  64. data/lib/income_tax/register.rb +6 -0
  65. data/lib/income_tax/version.rb +1 -1
  66. data/locations.md +250 -13
  67. data/readme.md +3 -2
  68. data/script/generate_switzerland.rb +10 -6
  69. data/spec/income_tax/countries/afghanistan_spec.rb +11 -1
  70. data/spec/income_tax/countries/aland_spec.rb +11 -1
  71. data/spec/income_tax/countries/albania_spec.rb +11 -1
  72. data/spec/income_tax/countries/algeria_spec.rb +11 -1
  73. data/spec/income_tax/countries/american_samoa_spec.rb +11 -1
  74. data/spec/income_tax/countries/andorra_spec.rb +11 -1
  75. data/spec/income_tax/countries/angola_spec.rb +11 -1
  76. data/spec/income_tax/countries/anguilla_spec.rb +11 -1
  77. data/spec/income_tax/countries/antigua_and_barbuda_spec.rb +11 -1
  78. data/spec/income_tax/countries/argentina_spec.rb +11 -1
  79. data/spec/income_tax/countries/armenia_spec.rb +11 -1
  80. data/spec/income_tax/countries/aruba_spec.rb +11 -1
  81. data/spec/income_tax/countries/australia_spec.rb +11 -1
  82. data/spec/income_tax/countries/austria_spec.rb +185 -74
  83. data/spec/income_tax/countries/azerbaijan_spec.rb +11 -1
  84. data/spec/income_tax/countries/bahamas_spec.rb +11 -1
  85. data/spec/income_tax/countries/bahrain_spec.rb +11 -1
  86. data/spec/income_tax/countries/bangladesh_spec.rb +11 -1
  87. data/spec/income_tax/countries/barbados_spec.rb +11 -1
  88. data/spec/income_tax/countries/belarus_spec.rb +11 -1
  89. data/spec/income_tax/countries/belgium_spec.rb +11 -1
  90. data/spec/income_tax/countries/belize_spec.rb +11 -1
  91. data/spec/income_tax/countries/benin_spec.rb +11 -1
  92. data/spec/income_tax/countries/bermuda_spec.rb +11 -1
  93. data/spec/income_tax/countries/bhutan_spec.rb +11 -1
  94. data/spec/income_tax/countries/bolivia_spec.rb +11 -1
  95. data/spec/income_tax/countries/bosnia_and_herzegovina_spec.rb +11 -1
  96. data/spec/income_tax/countries/botswana_spec.rb +11 -1
  97. data/spec/income_tax/countries/bouvet_island_spec.rb +11 -1
  98. data/spec/income_tax/countries/brazil_spec.rb +11 -1
  99. data/spec/income_tax/countries/british_indian_ocean_territory_spec.rb +35 -25
  100. data/spec/income_tax/countries/brunei_spec.rb +11 -1
  101. data/spec/income_tax/countries/bulgaria_spec.rb +11 -1
  102. data/spec/income_tax/countries/burkina_faso_spec.rb +11 -1
  103. data/spec/income_tax/countries/burundi_spec.rb +11 -1
  104. data/spec/income_tax/countries/cambodia_spec.rb +11 -1
  105. data/spec/income_tax/countries/cameroon_spec.rb +11 -1
  106. data/spec/income_tax/countries/canada_spec.rb +11 -1
  107. data/spec/income_tax/countries/cape_verde_spec.rb +11 -1
  108. data/spec/income_tax/countries/caribbean_netherlands_spec.rb +11 -1
  109. data/spec/income_tax/countries/cayman_islands_spec.rb +11 -1
  110. data/spec/income_tax/countries/central_african_republic_spec.rb +11 -1
  111. data/spec/income_tax/countries/chad_spec.rb +11 -1
  112. data/spec/income_tax/countries/chile_spec.rb +11 -1
  113. data/spec/income_tax/countries/china_spec.rb +11 -1
  114. data/spec/income_tax/countries/christmas_island_spec.rb +11 -1
  115. data/spec/income_tax/countries/cocos_keeling_islands_spec.rb +11 -1
  116. data/spec/income_tax/countries/colombia_spec.rb +11 -1
  117. data/spec/income_tax/countries/comoros_spec.rb +11 -1
  118. data/spec/income_tax/countries/congo_republic_spec.rb +11 -1
  119. data/spec/income_tax/countries/congo_spec.rb +11 -1
  120. data/spec/income_tax/countries/cook_islands_spec.rb +11 -1
  121. data/spec/income_tax/countries/costa_rica_spec.rb +11 -1
  122. data/spec/income_tax/countries/croatia_spec.rb +11 -1
  123. data/spec/income_tax/countries/cuba_spec.rb +11 -1
  124. data/spec/income_tax/countries/curacao_spec.rb +11 -1
  125. data/spec/income_tax/countries/cyprus_spec.rb +11 -1
  126. data/spec/income_tax/countries/czech_republic_spec.rb +11 -1
  127. data/spec/income_tax/countries/denmark_spec.rb +11 -1
  128. data/spec/income_tax/countries/djibouti_spec.rb +11 -1
  129. data/spec/income_tax/countries/dominica_spec.rb +11 -1
  130. data/spec/income_tax/countries/dominican_republic_spec.rb +11 -1
  131. data/spec/income_tax/countries/ecuador_spec.rb +11 -1
  132. data/spec/income_tax/countries/egypt_spec.rb +11 -1
  133. data/spec/income_tax/countries/el_salvador_spec.rb +11 -1
  134. data/spec/income_tax/countries/equatorial_guinea_spec.rb +11 -1
  135. data/spec/income_tax/countries/eritrea_spec.rb +11 -1
  136. data/spec/income_tax/countries/estonia_spec.rb +11 -1
  137. data/spec/income_tax/countries/ethiopia_spec.rb +11 -1
  138. data/spec/income_tax/countries/falkland_islands_spec.rb +11 -1
  139. data/spec/income_tax/countries/faroe_islands_spec.rb +11 -1
  140. data/spec/income_tax/countries/fiji_spec.rb +11 -1
  141. data/spec/income_tax/countries/finland_spec.rb +88 -75
  142. data/spec/income_tax/countries/france_spec.rb +185 -74
  143. data/spec/income_tax/countries/french_guiana_spec.rb +11 -1
  144. data/spec/income_tax/countries/french_polynesia_spec.rb +11 -1
  145. data/spec/income_tax/countries/french_southern_territories_spec.rb +11 -1
  146. data/spec/income_tax/countries/gabon_spec.rb +11 -1
  147. data/spec/income_tax/countries/gambia_spec.rb +11 -1
  148. data/spec/income_tax/countries/georgia_spec.rb +11 -1
  149. data/spec/income_tax/countries/germany_spec.rb +864 -67
  150. data/spec/income_tax/countries/ghana_spec.rb +11 -1
  151. data/spec/income_tax/countries/gibraltar_spec.rb +11 -1
  152. data/spec/income_tax/countries/greece_spec.rb +41 -31
  153. data/spec/income_tax/countries/greenland_spec.rb +11 -1
  154. data/spec/income_tax/countries/grenada_spec.rb +11 -1
  155. data/spec/income_tax/countries/guadeloupe_spec.rb +11 -1
  156. data/spec/income_tax/countries/guam_spec.rb +11 -1
  157. data/spec/income_tax/countries/guatemala_spec.rb +11 -1
  158. data/spec/income_tax/countries/guernsey_spec.rb +11 -1
  159. data/spec/income_tax/countries/guinea_bissau_spec.rb +11 -1
  160. data/spec/income_tax/countries/guinea_spec.rb +11 -1
  161. data/spec/income_tax/countries/guyana_spec.rb +11 -1
  162. data/spec/income_tax/countries/haiti_spec.rb +11 -1
  163. data/spec/income_tax/countries/heard_and_mcdonald_islands_spec.rb +11 -1
  164. data/spec/income_tax/countries/honduras_spec.rb +11 -1
  165. data/spec/income_tax/countries/hong_kong_spec.rb +11 -1
  166. data/spec/income_tax/countries/hungary_spec.rb +11 -1
  167. data/spec/income_tax/countries/iceland_spec.rb +11 -1
  168. data/spec/income_tax/countries/india_spec.rb +11 -1
  169. data/spec/income_tax/countries/indonesia_spec.rb +11 -1
  170. data/spec/income_tax/countries/iran_spec.rb +11 -1
  171. data/spec/income_tax/countries/iraq_spec.rb +11 -1
  172. data/spec/income_tax/countries/ireland_spec.rb +11 -1
  173. data/spec/income_tax/countries/isle_of_man_spec.rb +11 -1
  174. data/spec/income_tax/countries/israel_spec.rb +11 -1
  175. data/spec/income_tax/countries/italy_spec.rb +11 -1
  176. data/spec/income_tax/countries/ivory_coast_spec.rb +11 -1
  177. data/spec/income_tax/countries/jamaica_spec.rb +11 -1
  178. data/spec/income_tax/countries/japan_spec.rb +11 -1
  179. data/spec/income_tax/countries/jersey_spec.rb +11 -1
  180. data/spec/income_tax/countries/jordan_spec.rb +11 -1
  181. data/spec/income_tax/countries/kazakhstan_spec.rb +11 -1
  182. data/spec/income_tax/countries/kenya_spec.rb +11 -1
  183. data/spec/income_tax/countries/kiribati_spec.rb +11 -1
  184. data/spec/income_tax/countries/kosovo_spec.rb +11 -1
  185. data/spec/income_tax/countries/kuwait_spec.rb +11 -1
  186. data/spec/income_tax/countries/kyrgyzstan_spec.rb +11 -1
  187. data/spec/income_tax/countries/laos_spec.rb +11 -1
  188. data/spec/income_tax/countries/latvia_spec.rb +11 -1
  189. data/spec/income_tax/countries/lebanon_spec.rb +11 -1
  190. data/spec/income_tax/countries/lesotho_spec.rb +11 -1
  191. data/spec/income_tax/countries/liberia_spec.rb +11 -1
  192. data/spec/income_tax/countries/libya_spec.rb +11 -1
  193. data/spec/income_tax/countries/liechtenstein_spec.rb +11 -1
  194. data/spec/income_tax/countries/lithuania_spec.rb +11 -1
  195. data/spec/income_tax/countries/luxembourg_spec.rb +11 -1
  196. data/spec/income_tax/countries/macao_spec.rb +11 -1
  197. data/spec/income_tax/countries/macedonia_spec.rb +11 -1
  198. data/spec/income_tax/countries/madagascar_spec.rb +11 -1
  199. data/spec/income_tax/countries/malawi_spec.rb +11 -1
  200. data/spec/income_tax/countries/malaysia_spec.rb +11 -1
  201. data/spec/income_tax/countries/maldives_spec.rb +11 -1
  202. data/spec/income_tax/countries/mali_spec.rb +11 -1
  203. data/spec/income_tax/countries/malta_spec.rb +11 -1
  204. data/spec/income_tax/countries/marshall_islands_spec.rb +11 -1
  205. data/spec/income_tax/countries/martinique_spec.rb +11 -1
  206. data/spec/income_tax/countries/mauritania_spec.rb +11 -1
  207. data/spec/income_tax/countries/mauritius_spec.rb +11 -1
  208. data/spec/income_tax/countries/mayotte_spec.rb +11 -1
  209. data/spec/income_tax/countries/mexico_spec.rb +11 -1
  210. data/spec/income_tax/countries/micronesia_spec.rb +11 -1
  211. data/spec/income_tax/countries/moldova_spec.rb +11 -1
  212. data/spec/income_tax/countries/monaco_spec.rb +11 -1
  213. data/spec/income_tax/countries/mongolia_spec.rb +11 -1
  214. data/spec/income_tax/countries/montenegro_spec.rb +11 -1
  215. data/spec/income_tax/countries/montserrat_spec.rb +11 -1
  216. data/spec/income_tax/countries/morocco_spec.rb +11 -1
  217. data/spec/income_tax/countries/mozambique_spec.rb +11 -1
  218. data/spec/income_tax/countries/myanmar_spec.rb +11 -1
  219. data/spec/income_tax/countries/namibia_spec.rb +11 -1
  220. data/spec/income_tax/countries/nauru_spec.rb +11 -1
  221. data/spec/income_tax/countries/nepal_spec.rb +11 -1
  222. data/spec/income_tax/countries/netherlands_antilles_spec.rb +11 -1
  223. data/spec/income_tax/countries/netherlands_spec.rb +11 -1
  224. data/spec/income_tax/countries/new_caledonia_spec.rb +11 -1
  225. data/spec/income_tax/countries/new_zealand_spec.rb +11 -1
  226. data/spec/income_tax/countries/nicaragua_spec.rb +11 -1
  227. data/spec/income_tax/countries/niger_spec.rb +11 -1
  228. data/spec/income_tax/countries/nigeria_spec.rb +11 -1
  229. data/spec/income_tax/countries/niue_spec.rb +11 -1
  230. data/spec/income_tax/countries/norfolk_island_spec.rb +11 -1
  231. data/spec/income_tax/countries/north_korea_spec.rb +11 -1
  232. data/spec/income_tax/countries/northern_mariana_islands_spec.rb +11 -1
  233. data/spec/income_tax/countries/norway_spec.rb +88 -75
  234. data/spec/income_tax/countries/oman_spec.rb +11 -1
  235. data/spec/income_tax/countries/pakistan_spec.rb +11 -1
  236. data/spec/income_tax/countries/palau_spec.rb +11 -1
  237. data/spec/income_tax/countries/palestinian_territory_spec.rb +11 -1
  238. data/spec/income_tax/countries/panama_spec.rb +11 -1
  239. data/spec/income_tax/countries/papua_new_guinea_spec.rb +11 -1
  240. data/spec/income_tax/countries/paraguay_spec.rb +11 -1
  241. data/spec/income_tax/countries/peru_spec.rb +11 -1
  242. data/spec/income_tax/countries/philippines_spec.rb +11 -1
  243. data/spec/income_tax/countries/pitcairn_spec.rb +11 -1
  244. data/spec/income_tax/countries/poland_spec.rb +11 -1
  245. data/spec/income_tax/countries/portugal_spec.rb +11 -1
  246. data/spec/income_tax/countries/puerto_rico_spec.rb +11 -1
  247. data/spec/income_tax/countries/qatar_spec.rb +11 -1
  248. data/spec/income_tax/countries/reunion_spec.rb +11 -1
  249. data/spec/income_tax/countries/romania_spec.rb +11 -1
  250. data/spec/income_tax/countries/russia_spec.rb +11 -1
  251. data/spec/income_tax/countries/rwanda_spec.rb +11 -1
  252. data/spec/income_tax/countries/saint_barthelemy_spec.rb +11 -1
  253. data/spec/income_tax/countries/saint_helena_spec.rb +11 -1
  254. data/spec/income_tax/countries/saint_kitts_and_nevis_spec.rb +11 -1
  255. data/spec/income_tax/countries/saint_lucia_spec.rb +11 -1
  256. data/spec/income_tax/countries/saint_martin_spec.rb +11 -1
  257. data/spec/income_tax/countries/saint_pierre_and_miquelon_spec.rb +11 -1
  258. data/spec/income_tax/countries/saint_vincent_and_the_grenedines_spec.rb +11 -1
  259. data/spec/income_tax/countries/samoa_spec.rb +11 -1
  260. data/spec/income_tax/countries/san_marino_spec.rb +11 -1
  261. data/spec/income_tax/countries/sao_tome_and_principe_spec.rb +11 -1
  262. data/spec/income_tax/countries/saudi_arabia_spec.rb +11 -1
  263. data/spec/income_tax/countries/senegal_spec.rb +11 -1
  264. data/spec/income_tax/countries/serbia_spec.rb +11 -1
  265. data/spec/income_tax/countries/seychelles_spec.rb +11 -1
  266. data/spec/income_tax/countries/sierra_leone_spec.rb +11 -1
  267. data/spec/income_tax/countries/singapore_spec.rb +185 -74
  268. data/spec/income_tax/countries/sint_maarten_spec.rb +11 -1
  269. data/spec/income_tax/countries/slovakia_spec.rb +11 -1
  270. data/spec/income_tax/countries/slovenia_spec.rb +11 -1
  271. data/spec/income_tax/countries/solomon_islands_spec.rb +11 -1
  272. data/spec/income_tax/countries/somalia_spec.rb +11 -1
  273. data/spec/income_tax/countries/south_africa_spec.rb +11 -1
  274. data/spec/income_tax/countries/south_georgia_and_the_south_sandwich_islands_spec.rb +35 -25
  275. data/spec/income_tax/countries/south_korea_spec.rb +11 -1
  276. data/spec/income_tax/countries/south_sudan_spec.rb +11 -1
  277. data/spec/income_tax/countries/spain_spec.rb +11 -1
  278. data/spec/income_tax/countries/sri_lanka_spec.rb +11 -1
  279. data/spec/income_tax/countries/sudan_spec.rb +11 -1
  280. data/spec/income_tax/countries/suriname_spec.rb +11 -1
  281. data/spec/income_tax/countries/svalbard_and_jan_mayen_spec.rb +11 -1
  282. data/spec/income_tax/countries/swaziland_spec.rb +11 -1
  283. data/spec/income_tax/countries/sweden_spec.rb +11 -1
  284. data/spec/income_tax/countries/switzerland/aargau_spec.rb +11 -1
  285. data/spec/income_tax/countries/switzerland/appenzell_inner_spec.rb +11 -1
  286. data/spec/income_tax/countries/switzerland/appenzell_outer_spec.rb +11 -1
  287. data/spec/income_tax/countries/switzerland/basel_city_spec.rb +11 -1
  288. data/spec/income_tax/countries/switzerland/basel_land_spec.rb +11 -1
  289. data/spec/income_tax/countries/switzerland/bern_spec.rb +11 -1
  290. data/spec/income_tax/countries/switzerland/fribourg_spec.rb +11 -1
  291. data/spec/income_tax/countries/switzerland/geneva_spec.rb +11 -1
  292. data/spec/income_tax/countries/switzerland/glarus_spec.rb +11 -1
  293. data/spec/income_tax/countries/switzerland/grisons_spec.rb +11 -1
  294. data/spec/income_tax/countries/switzerland/jura_spec.rb +11 -1
  295. data/spec/income_tax/countries/switzerland/lucerne_spec.rb +11 -1
  296. data/spec/income_tax/countries/switzerland/neuchatel_spec.rb +11 -1
  297. data/spec/income_tax/countries/switzerland/nidwalden_spec.rb +11 -1
  298. data/spec/income_tax/countries/switzerland/obwalden_spec.rb +11 -1
  299. data/spec/income_tax/countries/switzerland/schaffhausen_spec.rb +11 -1
  300. data/spec/income_tax/countries/switzerland/schwyz_spec.rb +11 -1
  301. data/spec/income_tax/countries/switzerland/solothurn_spec.rb +11 -1
  302. data/spec/income_tax/countries/switzerland/st_gallen_spec.rb +11 -1
  303. data/spec/income_tax/countries/switzerland/thurgau_spec.rb +11 -1
  304. data/spec/income_tax/countries/switzerland/ticino_spec.rb +11 -1
  305. data/spec/income_tax/countries/switzerland/uri_spec.rb +11 -1
  306. data/spec/income_tax/countries/switzerland/valais_spec.rb +11 -1
  307. data/spec/income_tax/countries/switzerland/vaud_spec.rb +11 -1
  308. data/spec/income_tax/countries/switzerland/zug_spec.rb +11 -1
  309. data/spec/income_tax/countries/switzerland/zurich_spec.rb +185 -74
  310. data/spec/income_tax/countries/switzerland_spec.rb +11 -1
  311. data/spec/income_tax/countries/syria_spec.rb +11 -1
  312. data/spec/income_tax/countries/taiwan_spec.rb +11 -1
  313. data/spec/income_tax/countries/tajikistan_spec.rb +11 -1
  314. data/spec/income_tax/countries/tanzania_spec.rb +11 -1
  315. data/spec/income_tax/countries/thailand_spec.rb +11 -1
  316. data/spec/income_tax/countries/timor_leste_spec.rb +11 -1
  317. data/spec/income_tax/countries/togo_spec.rb +11 -1
  318. data/spec/income_tax/countries/tokelau_spec.rb +11 -1
  319. data/spec/income_tax/countries/tonga_spec.rb +11 -1
  320. data/spec/income_tax/countries/trinidad_and_tobago_spec.rb +11 -1
  321. data/spec/income_tax/countries/tunisia_spec.rb +11 -1
  322. data/spec/income_tax/countries/turkey_spec.rb +11 -1
  323. data/spec/income_tax/countries/turkmenistan_spec.rb +11 -1
  324. data/spec/income_tax/countries/turks_and_caicos_islands_spec.rb +11 -1
  325. data/spec/income_tax/countries/tuvalu_spec.rb +11 -1
  326. data/spec/income_tax/countries/uganda_spec.rb +11 -1
  327. data/spec/income_tax/countries/ukraine_spec.rb +11 -1
  328. data/spec/income_tax/countries/united_arab_emirates_spec.rb +11 -1
  329. data/spec/income_tax/countries/united_kingdom_spec.rb +185 -74
  330. data/spec/income_tax/countries/united_states/alabama_spec.rb +11 -1
  331. data/spec/income_tax/countries/united_states/alaska_spec.rb +11 -1
  332. data/spec/income_tax/countries/united_states/arizona_spec.rb +11 -1
  333. data/spec/income_tax/countries/united_states/arkansas_spec.rb +11 -1
  334. data/spec/income_tax/countries/united_states/california_spec.rb +11 -1
  335. data/spec/income_tax/countries/united_states/colorado_spec.rb +11 -1
  336. data/spec/income_tax/countries/united_states/connecticut_spec.rb +11 -1
  337. data/spec/income_tax/countries/united_states/dc_spec.rb +11 -1
  338. data/spec/income_tax/countries/united_states/delaware_spec.rb +11 -1
  339. data/spec/income_tax/countries/united_states/florida_spec.rb +11 -1
  340. data/spec/income_tax/countries/united_states/georgia_spec.rb +11 -1
  341. data/spec/income_tax/countries/united_states/hawaii_spec.rb +11 -1
  342. data/spec/income_tax/countries/united_states/idaho_spec.rb +11 -1
  343. data/spec/income_tax/countries/united_states/illinois_spec.rb +11 -1
  344. data/spec/income_tax/countries/united_states/indiana_spec.rb +11 -1
  345. data/spec/income_tax/countries/united_states/iowa_spec.rb +11 -1
  346. data/spec/income_tax/countries/united_states/kansas_spec.rb +11 -1
  347. data/spec/income_tax/countries/united_states/kentucky_spec.rb +11 -1
  348. data/spec/income_tax/countries/united_states/louisiana_spec.rb +11 -1
  349. data/spec/income_tax/countries/united_states/maine_spec.rb +11 -1
  350. data/spec/income_tax/countries/united_states/maryland_spec.rb +11 -1
  351. data/spec/income_tax/countries/united_states/massachusetts_spec.rb +11 -1
  352. data/spec/income_tax/countries/united_states/michigan_spec.rb +11 -1
  353. data/spec/income_tax/countries/united_states/minnesota_spec.rb +11 -1
  354. data/spec/income_tax/countries/united_states/mississippi_spec.rb +11 -1
  355. data/spec/income_tax/countries/united_states/missouri_spec.rb +11 -1
  356. data/spec/income_tax/countries/united_states/montana_spec.rb +11 -1
  357. data/spec/income_tax/countries/united_states/nebraska_spec.rb +11 -1
  358. data/spec/income_tax/countries/united_states/nevada_spec.rb +11 -1
  359. data/spec/income_tax/countries/united_states/new_hampshire_spec.rb +11 -1
  360. data/spec/income_tax/countries/united_states/new_jersey_spec.rb +11 -1
  361. data/spec/income_tax/countries/united_states/new_mexico_spec.rb +11 -1
  362. data/spec/income_tax/countries/united_states/new_york_spec.rb +11 -1
  363. data/spec/income_tax/countries/united_states/north_carolina_spec.rb +11 -1
  364. data/spec/income_tax/countries/united_states/north_dakota_spec.rb +11 -1
  365. data/spec/income_tax/countries/united_states/ohio_spec.rb +11 -1
  366. data/spec/income_tax/countries/united_states/oklahoma_spec.rb +11 -1
  367. data/spec/income_tax/countries/united_states/oregon_spec.rb +11 -1
  368. data/spec/income_tax/countries/united_states/pennsylvania_spec.rb +11 -1
  369. data/spec/income_tax/countries/united_states/rhode_island_spec.rb +11 -1
  370. data/spec/income_tax/countries/united_states/south_carolina_spec.rb +11 -1
  371. data/spec/income_tax/countries/united_states/south_dakota_spec.rb +11 -1
  372. data/spec/income_tax/countries/united_states/tennessee_spec.rb +11 -1
  373. data/spec/income_tax/countries/united_states/texas_spec.rb +11 -1
  374. data/spec/income_tax/countries/united_states/utah_spec.rb +11 -1
  375. data/spec/income_tax/countries/united_states/vermont_spec.rb +11 -1
  376. data/spec/income_tax/countries/united_states/virginia_spec.rb +11 -1
  377. data/spec/income_tax/countries/united_states/washington_spec.rb +11 -1
  378. data/spec/income_tax/countries/united_states/west_virginia_spec.rb +11 -1
  379. data/spec/income_tax/countries/united_states/wisconsin_spec.rb +11 -1
  380. data/spec/income_tax/countries/united_states/wyoming_spec.rb +11 -1
  381. data/spec/income_tax/countries/united_states_minor_outlying_islands_spec.rb +11 -1
  382. data/spec/income_tax/countries/united_states_spec.rb +11 -1
  383. data/spec/income_tax/countries/uruguay_spec.rb +11 -1
  384. data/spec/income_tax/countries/uzbekistan_spec.rb +11 -1
  385. data/spec/income_tax/countries/vanuatu_spec.rb +11 -1
  386. data/spec/income_tax/countries/vatican_spec.rb +11 -1
  387. data/spec/income_tax/countries/venezuela_spec.rb +11 -1
  388. data/spec/income_tax/countries/vietnam_spec.rb +11 -1
  389. data/spec/income_tax/countries/virgin_islands_british_spec.rb +11 -1
  390. data/spec/income_tax/countries/virgin_islands_us_spec.rb +11 -1
  391. data/spec/income_tax/countries/wallis_and_futuna_spec.rb +11 -1
  392. data/spec/income_tax/countries/western_sahara_spec.rb +11 -1
  393. data/spec/income_tax/countries/yemen_spec.rb +11 -1
  394. data/spec/income_tax/countries/zambia_spec.rb +11 -1
  395. data/spec/income_tax/countries/zimbabwe_spec.rb +11 -1
  396. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ca8c930d2bfb251a1e03a6f51920008f6952bcd6
4
- data.tar.gz: b8c9ee09d3564038a777e45deb5890b1dcbed778
3
+ metadata.gz: 635d5c723ad24b9dba8fe3a117678eb75e198a26
4
+ data.tar.gz: a3175eae88b38643bd0da70abcce7b40ee878555
5
5
  SHA512:
6
- metadata.gz: c6c87405c8526020703d49855875f29f6ee786c7cbf344b4dc2fd41f1644b38adcc34ebceb35bb5ec4ff372d437110d22126d80caf4e0d49bbb7ce82bb03fd47
7
- data.tar.gz: 5456b7c26fbf3f3ef1e1371dd108091fdb6c3a29658b4e7bfc69e3f0a6b7d5610b57d91684924b19acd5c2c556cbe326e2459168beabe25e068e2c88203e8e14
6
+ metadata.gz: 98ac83c0cbe0a9d868d288653257c264c13a91646d9f0b0a7d5c197db69009178ef9f2b4a167206384703274dda7c60f62eb0d030518a590bc8b55c28df311f0
7
+ data.tar.gz: ee562313ea58d142de283e22e78f79add8c0bb7d0de1033511d418aae11f547bc0b94793d067aff70881da80448471cf33eb1f95bedfb90c41abe6bed2fcb3b8
@@ -4,11 +4,19 @@ module IncomeTax
4
4
  register "Austria", "AT", "AUT"
5
5
  currency "EUR"
6
6
 
7
- level 3640, "0%"
8
- level 7270, "21%"
9
- level 21800, "31%"
10
- level 50870, "41%"
11
- remainder "50%"
7
+ levels year: 2005 do
8
+ level 10_000, "0%"
9
+ level 25_000, "38.333%"
10
+ level 51_000, "43.596%"
11
+ remainder "50%"
12
+ end
13
+
14
+ levels year: 2009 do
15
+ level 11_000, "0%"
16
+ level 25_000, "36.5%"
17
+ level 60_000, "43.2143%"
18
+ remainder "50%"
19
+ end
12
20
  end
13
21
  end
14
22
  end
@@ -6,7 +6,7 @@ module IncomeTax
6
6
 
7
7
  wants_options :married, :children
8
8
 
9
- levels :per_unit do
9
+ levels :per_unit, year: 2015 do
10
10
  level 6011, "0%"
11
11
  level 11991, "5.5%"
12
12
  level 26631, "14%"
@@ -15,6 +15,14 @@ module IncomeTax
15
15
  remainder "45%"
16
16
  end
17
17
 
18
+ levels :per_unit, year: 2016 do
19
+ level 9690, "0%"
20
+ level 26764, "14%"
21
+ level 71754, "30%"
22
+ level 151956, "41%"
23
+ remainder "45%"
24
+ end
25
+
18
26
  def levels
19
27
  super(:per_unit).multiply_brackets(units)
20
28
  end
@@ -5,37 +5,76 @@ module IncomeTax
5
5
  currency "EUR"
6
6
 
7
7
  wants_options :married
8
+ SOLIDARITY = Rate("5.5%")
9
+
10
+ def self.parse_line(line)
11
+ line.chomp.split("\t").map do |entry|
12
+ next 1/0.0 if entry == "–"
13
+ entry.include?(?.) ? Rational(entry) : Integer(entry)
14
+ end
15
+ end
8
16
 
9
- infinity = 1/0.0
10
- ZONES = [
11
- [ 0, 8472, 0, Rate("0%"), Rate("0%") ],
12
- [ 8473, 13469, 0, Rate("14%"), Rate((997.6r * (13469 - 8472) / 10_000 + 1400) / 10_000) ],
13
- [ 13470, 52881, "948.68".to_d, Rate("23.97%"), Rate((228.74r * (52881 - 13469) / 10_000 + 2397) / 10_000) ],
14
- [ 52882, 250730, 13949, Rate("42%"), Rate("42%") ],
15
- [ 250731, infinity, 97045, Rate("45%"), Rate("45%") ]
16
- ]
17
+ def self.load_rates(path)
18
+ File.read(path).lines[1..-1].each do |line|
19
+ year, e0, e1, e2, e3, s1, s2, s3, a1, b1, a2, b2, b3, b4 = parse_line(line)
20
+ e4 = 1/0.0
17
21
 
18
- SOLIDARITY = Rate("5.5%")
22
+ tax_years[year] = [
23
+ [ 0, e0, 0, Rate("0%"), Rate("0%") ],
24
+ [ e0+1, e1, 0, Rate(b1), Rate((a1 * (e1 - e0) / 10_000 + b1*10_000) / 10_000) ],
25
+ [ e1+1, e2, s1, Rate(b2), Rate((a2 * (e2 - e1) / 10_000 + b2*10_000) / 10_000) ],
26
+ [ e2+1, e3, s2, Rate(b3), Rate(b3) ],
27
+ [ e3+1, e4, s3, Rate(b4), Rate(b4) ]
28
+ ]
29
+ end
30
+ end
31
+
32
+ def self.tax_years
33
+ @tax_years ||= {}
34
+ end
35
+
36
+ def self.first_year
37
+ @first_year ||= tax_years.to_a.first.first
38
+ end
39
+
40
+ def self.tax_year(year)
41
+ year = first_year if year < first_year
42
+ tax_years[year] || tax_year(year - 1)
43
+ end
44
+
45
+ def zones
46
+ @zones ||= self.class.tax_year(tax_year)
47
+ end
19
48
 
20
49
  def net_taxes(income, lower, upper, lower_taxes, lower_rate, upper_rate, upper_taxes)
21
50
  lower_income = lower - lower_taxes
22
51
  upper_income = upper - upper_taxes
23
- step = (upper_rate - lower_rate) / (upper_income - lower_income)
24
52
  steps = income - lower_income
25
- rate = lower_rate + Rate(step * steps)
53
+
54
+ if upper_rate > lower_rate
55
+ step = (upper_rate - lower_rate) / (upper_income - lower_income)
56
+ rate = lower_rate + Rate(step * steps)
57
+ else
58
+ rate = lower_rate
59
+ end
60
+
26
61
  rate.net_taxes(steps).to_i + lower_taxes
27
62
  end
28
63
 
64
+ def for_range(value)
65
+ value.to_f.nan? ? 1/0.0 : value
66
+ end
67
+
29
68
  def calculate_net
30
69
  income = net_income.to_i
31
70
  income /= 2 if married?
32
71
 
33
72
  case income
34
- when 0 .. ZONES[0][1] then @taxes = 0
35
- when 0 .. ZONES[1][1] - ZONES[2][2] then @taxes = net_taxes(income, *ZONES[1], ZONES[2][2])
36
- when 0 .. ZONES[2][1] - ZONES[3][2] then @taxes = net_taxes(income, *ZONES[2], ZONES[3][2])
37
- when 0 .. ZONES[3][1] - ZONES[4][2] then @taxes = net_taxes(income, *ZONES[3], ZONES[4][2])
38
- else @taxes = net_taxes(income, *ZONES[4], ZONES[4][2])
73
+ when 0 .. for_range(zones[0][1]) then @taxes = 0
74
+ when 0 .. for_range(zones[1][1] - zones[2][2]) then @taxes = net_taxes(income, *zones[1], zones[2][2])
75
+ when 0 .. for_range(zones[2][1] - zones[3][2]) then @taxes = net_taxes(income, *zones[2], zones[3][2])
76
+ when 0 .. for_range(zones[3][1] - zones[4][2]) then @taxes = net_taxes(income, *zones[3], zones[4][2])
77
+ else @taxes = net_taxes(income, *zones[4], zones[4][2])
39
78
  end
40
79
 
41
80
  @taxes *= 2 if married?
@@ -46,15 +85,17 @@ module IncomeTax
46
85
  income = gross_income.to_i
47
86
  income /= 2 if married?
48
87
 
49
- lower, upper, fixed, lower_rate, upper_rate = ZONES.detect { |l,u,*| income.between?(l,u) }
88
+ lower, upper, fixed, lower_rate, upper_rate = zones.detect { |l,u,*| income.between?(l,u) }
50
89
  step = (upper_rate - lower_rate) / (upper - lower + 1)
51
90
  steps = (income - lower + 1)
52
91
  rate = lower_rate + Rate(step * steps)
53
92
  @taxes = rate.gross_taxes(steps).to_i + fixed
54
93
 
55
94
  @taxes *= 2 if married?
56
- @taxes += SOLIDARITY.gross_taxes(income)
95
+ @taxes += SOLIDARITY.gross_taxes(@taxes)
57
96
  end
97
+
98
+ load_rates "#{__dir__}/germany/rates.tsv"
58
99
  end
59
100
  end
60
101
  end
@@ -0,0 +1,10 @@
1
+ year e0 e1 e2 e3 s1 s2 s3 a1 b1 a2 b2 b3 b4
2
+ 2002 7235 9251 55007 – 432 16807 – 768.85 0.199 278.65 0.23 0.485 –
3
+ 2004 7664 12739 52151 – 1016 14623 – 793.10 0.16 265.78 0.2405 0.45 –
4
+ 2005 7664 12739 52151 – 989 13990 – 883.74 0.15 228.74 0.2397 0.42 –
5
+ 2007 7664 12739 52151 250000 989 13990 97086 883.74 0.15 228.74 0.2397 0.42 0.45
6
+ 2009 7834 13139 52551 250400 1007 14007 97104 939.68 0.14 228.74 0.2397 0.42 0.45
7
+ 2010 8004 13469 52881 250730 1038 14038 97134 912.17 0.14 228.74 0.2397 0.42 0.45
8
+ 2013 8130 13469 52881 250730 1014 14014 97110 933.70 0.14 228.74 0.2397 0.42 0.45
9
+ 2014 8354 13469 52881 250730 971 13971 97067 974.58 0.14 228.74 0.2397 0.42 0.45
10
+ 2015 8472 13469 52881 250730 948.68 13949 97045 997.60 0.14 228.74 0.2397 0.42 0.45
@@ -4,8 +4,9 @@ module IncomeTax
4
4
  register "Greece", "GR", "GRC"
5
5
  currency "EUR"
6
6
 
7
- level 50000, "26%"
8
- remainder "33%"
7
+ level 25_000, "22%"
8
+ level 42_000, "32%"
9
+ remainder "42%"
9
10
  end
10
11
  end
11
12
  end
@@ -4,7 +4,7 @@ module IncomeTax
4
4
  register "Singapore", "SG", "SGP"
5
5
  currency "SGD"
6
6
 
7
- levels :old do
7
+ levels year: 2015 do
8
8
  level offset(20_000), "0%"
9
9
  level offset(10_000), "2%"
10
10
  level offset(10_000), "3.5%"
@@ -16,7 +16,7 @@ module IncomeTax
16
16
  remainder "20%"
17
17
  end
18
18
 
19
- levels :new do
19
+ levels year: 2017 do
20
20
  level offset(20_000), "0%"
21
21
  level offset(10_000), "2%"
22
22
  level offset(10_000), "3.5%"
@@ -29,15 +29,6 @@ module IncomeTax
29
29
  level offset(40_000), "20%"
30
30
  remainder "22%"
31
31
  end
32
-
33
- def level_category
34
- year < 2017 ? :old : :new
35
- end
36
-
37
- def year
38
- # TODO: config option?
39
- Time.now.year
40
- end
41
32
  end
42
33
  end
43
34
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Aargau < Canton
5
5
  register "Aargau", "Argovia", "AG"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/aargau.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/aargau.dat")) }
7
7
  municipal_multiplier "94%"
8
8
  cantonal_multiplier "109%"
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class AppenzellInner < Canton
5
5
  register "Appenzell Inner Rhodes", "Appenzell Innerrhoden", "AI"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/appenzell_inner.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/appenzell_inner.dat")) }
7
7
  municipal_multiplier "77%"
8
8
  cantonal_multiplier "96%"
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class AppenzellOuter < Canton
5
5
  register "Appenzell Outer Rhodes", "Appenzell Ausserrhoden", "AR"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/appenzell_outer.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/appenzell_outer.dat")) }
7
7
  municipal_multiplier Rational(41, 32)
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class BaselCity < Canton
5
5
  register "Basel-Stadt", "Basel-City", "Basel", "BS"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/basel_city.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/basel_city.dat")) }
7
7
  municipal_multiplier "0%"
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class BaselLand < Canton
5
5
  register "Basel-Landschaft", "Baselland", "Baselbiet", "Basel-Country", "BL"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/basel_land.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/basel_land.dat")) }
7
7
  municipal_multiplier "65%"
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Bern < Canton
5
5
  register "Bern", "Berne", "BE"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/bern.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/bern.dat")) }
7
7
  end
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Fribourg < Canton
5
5
  register "Fribourg", "Freiburg", "FR"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/fribourg.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/fribourg.dat")) }
7
7
  municipal_multiplier "81.6%"
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Geneva < Canton
5
5
  register "Geneva", "GE"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/geneva.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/geneva.dat")) }
7
7
  municipal_multiplier "45.5%"
8
8
  cantonal_multiplier "148.5%"
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Glarus < Canton
5
5
  register "Glarus", "GL"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/glarus.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/glarus.dat")) }
7
7
  municipal_multiplier "63%"
8
8
  cantonal_multiplier "55%"
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Grisons < Canton
5
5
  register "Grisons", "Graubünden", "Grigioni", "Grischun", "GR"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/grisons.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/grisons.dat")) }
7
7
  municipal_multiplier "90%"
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Jura < Canton
5
5
  register "Jura", "JU"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/jura.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/jura.dat")) }
7
7
  municipal_multiplier Rational(195, 285)
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Lucerne < Canton
5
5
  register "Lucerne", "Luzern", "LU"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/lucerne.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/lucerne.dat")) }
7
7
  municipal_multiplier Rational(185,160)
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Neuchatel < Canton
5
5
  register "Neuchâtel", "Neuchatel", "NE"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/neuchatel.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/neuchatel.dat")) }
7
7
  municipal_multiplier "67%"
8
8
  cantonal_multiplier "123%"
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Nidwalden < Canton
5
5
  register "Nidwalden", "NW"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/nidwalden.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/nidwalden.dat")) }
7
7
  municipal_multiplier Rational(245, 266)
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ module IncomeTax
3
3
  class Switzerland
4
4
  class Obwalden < Canton
5
5
  register "Obwalden", "OW"
6
- lazy { @levels = Marshal.load(File.open("#{__dir__}/data/obwalden.dat")) }
6
+ lazy { @tax_years = Marshal.load(File.open("#{__dir__}/data/obwalden.dat")) }
7
7
  municipal_multiplier Rational(416, 305)
8
8
  end
9
9
  end