Article

Tests

BeginPackage["Wikicode`WorldEconomy`"]

Production::usage = "Production[materials,date] charts the annual \
world production of the listed materials from the specified date."

Begin["`Private`"]

supportedMaterials = {"Aluminum", "Antimony", "Arsenic", "Asbestos",
  "Barite", "Beryllium", "Bismuth", "Boron", "Bromine", "Cadmium",
  "Cement", "Chromium", "Coal combustion products", "Cobalt",
  "Copper", "Diamond", "Diatomaceous earth", "Feldspar", "Fluorite",
  "Gallium", "Garnet", "Gemstone", "Germanium", "Gold", "Graphite",
  "Gypsum", "Helium", "Indium", "Iodine", "Iron ore", "Kyanite",
  "Lead", "Lime", "Lithium", "Magnesium", "Manganese", "Mercury",
  "Molybdenum", "Nickel", "Niobium", "Nitrogen", "Perlite",
  "Phosphorite", "Platinum group", "Potash", "Pumice", "Rhenium",
  "Salt", "Selenium", "Silicon", "Silver", "Sodium carbonate",
  "Sodium sulfate", "Strontium", "Sulfur", "Tantalum", "Thallium",
  "Tin", "Tungsten", "Vanadium", "Vermiculite", "Wollastonite", "Zinc"}

stringToPackage[string_String] :=
 StringJoin[
  StringReplace[#, first_ ~~ rest___ :> ToUpperCase@first <> rest] & /@
    StringSplit@string]

Production[materials_List, from_Integer] :=
 DateListPlot[(Wikicode`Load@#;
     Symbol[stringToPackage@# <> "`Production"][from]) & /@
   Select[materials, MemberQ[supportedMaterials, #] &],
  Joined -> True, PlotLegends -> LineLegend@materials]

End[]
EndPackage[]