spec/galenic_spec.rb in oddb2xml-2.7.1 vs spec/galenic_spec.rb in oddb2xml-2.7.2

- old
+ new

@@ -1,322 +1,299 @@ -# encoding: utf-8 - -require 'spec_helper' +require "spec_helper" require "#{Dir.pwd}/lib/oddb2xml/parslet_compositions" -require 'parslet/rig/rspec' -require 'parslet/convenience' -require 'csv' +require "parslet/rig/rspec" +require "parslet/convenience" +require "csv" -RunAllParsingExamples = false # RunAllParsingExamples /travis|localhost/i.match(hostname) != nil # takes about one minute to run +RUN_ALL_PARSING_EXAMPLES = false # RUN_ALL_PARSING_EXAMPLES /travis|localhost/i.match(hostname) != nil # takes about one minute to run galenic_tests = { - - '1001 Blattgrün Dragées' => { :prepation_name=>'1001 Blattgrün ', :galenic_form=> 'Dragées' }, - '3TC 150 mg, Filmtabletten' => { :prepation_name=>'3TC 150 mg', :galenic_form=>'Filmtabletten' }, - 'Acetocaustin, Lösung' => { :prepation_name=>'Acetocaustin', :galenic_form=>'Lösung' }, - 'Alustal 3-Bäume, Injektionssuspension' => {:prepation_name=>'Alustal 3-Bäume', :galenic_form=> 'Injektionssuspension' }, - 'Alustal Bäume, Injektionssuspension' => {:prepation_name=>'Alustal Bäume', :galenic_form=> 'Injektionssuspension' }, - 'Amoxicillin Streuli, Granulat zur Herstellung einer Suspension' => { :prepation_name=>'Amoxicillin Streuli', :galenic_form=> 'Granulat zur Herstellung einer Suspension', }, - 'Arkocaps Passiflore/Passionsblume, 300 mg, capsules'=> { :prepation_name=>'Arkocaps Passiflore/Passionsblume', :galenic_form=>'capsules' }, - 'Atenativ, Antithrombin III 500 I.E., Injektionspräparat' => { :prepation_name=>'Atenativ', :galenic_form=>'Injektionspräparat' }, - 'Atorvastatin Helvepharm, 10 mg Filmtabletten' => {:prepation_name=>'Atorvastatin Helvepharm', :galenic_form=> 'Filmtabletten' }, - 'Atorvastax-Drossapharm 20 mg' => {:prepation_name=> 'Atorvastax-Drossapharm 20 mg', :galenic_form=> nil}, - 'Co-Losartan Spirig HC 50/12,5 mg' => { :prepation_name=>'Co-Losartan Spirig HC 50/12,5 mg', :galenic_form=> nil, }, - 'Dicloabak 0,1% Augentropfen' => { :prepation_name=>'Dicloabak 0,1% ', :galenic_form=>'Augentropfen' }, - 'Kaliumchlorid 14,9 % B. Braun, Zusatzampullen'=> { :prepation_name=>'Kaliumchlorid 14,9 % B. Braun', :galenic_form=>'Zusatzampullen' }, - 'Methrexx 7.5 mg / 0.75 ml,Injektionslösung in Fertigspritzen'=> { :prepation_name=>'Methrexx 7.5 mg / 0.75 ml', :galenic_form=> 'Injektionslösung in Fertigspritzen' }, - 'Nitroderm TTS 10' => { :prepation_name=>'Nitroderm TTS 10', :galenic_form=> nil }, - 'Ondansetron Labatec, 8mg/4ml, concentré pour perfusion' => {:prepation_name=>'Ondansetron Labatec', :galenic_form=> 'concentré pour perfusion' }, - 'Paronex 20, Filmtabletten'=> { :prepation_name=>'Paronex 20', :galenic_form=>'Filmtabletten' }, - 'Physioneal 35 Clear-Flex 3,86 % Peritonealdialyselösung' => { :prepation_name=>'Physioneal 35 Clear-Flex 3,86 % ', :galenic_form=>'Peritonealdialyselösung' }, - 'Phytopharma foie et bile capsules/Leber-Galle Kapseln' => { :prepation_name=>'Phytopharma foie et bile capsules', :galenic_form=> 'Leber-Galle Kapseln' }, - 'Plak-out Spray 0,1 %' => { :prepation_name=>'Plak-out Spray 0,1 %', :galenic_form=> nil }, - 'Sandostatin 0,2 mg/mL, Injektionslösung' => { :prepation_name=>'Sandostatin 0,2 mg/mL', :galenic_form=>'Injektionslösung' }, - 'Sulfure de Rhénium (186Re)-RE-186-MM-1 Cis bio International, Suspension' => { :prepation_name=>'Sulfure de Rhénium (186Re)-RE-186-MM-1 Cis bio International', :galenic_form=> 'Suspension' }, - 'Tramal 100, Injektionslösung (i.m., i.v.)' => { :prepation_name=>'Tramal 100', :galenic_form=>'Injektionslösung (i.m., i.v.)' }, - 'Uman Albumin Kedrion 20%' => { :prepation_name=>'Uman Albumin Kedrion 20%', :galenic_form=> nil }, - } - - todo = %( -Testlösung zur Allergiediagnose Teomed Kaninchen (Fell) Lösung -Testlösung zur Allergiediagnose Teomed Hund (Haare) Lösung -Pandemrix (Pandemic Influenza Vaccine H1N1) -Phytopharma dragées pour la détente et le sommeil / Entspannungs- und Schlafdragées -Phytopharma dragées pour le coeur / Herz Dragées -Best Friend Katzenhalsband / Katzenhalsband Reflex ad us.vet. -Amlodipin Helvepharm 10 Tabletten -Salbu Orion Easyhaler 100 ug Inhalationspulver -TISSEEL 10 ml 2 Fertigspritzen -TISSEEL 2 ml 2 Fertigspritzen -TISSEEL 4 ml 2 Fertigspritzen -Norprolac Starter-pack 25 ug + 50 ug, Tabletten -Phostal 5-Gräser 4-Getreidemischung 10IR, Injektionssuspension -Alustal 5-Gräser 4-Getreidemischung Kombipackung, Injektionssuspension -Staloral Beifuss 5-Gräser 100IR, Injektionssuspension -Phostal Beifuss 5-Gräser 10IR, Injektionssuspension -Alustal Beifuss 5-Gräser 10IR, Injektionssuspension -Seebri Breezhaler 50 Mikrogramm, Pulver zur Inhalation, Hartkapseln -Nplate 500 mcg Pulver und Lösungsmittel zur Herstellung einer Injektionslösung -Bayvantage ad us.vet. 80 für Katzen, Lösung -Ondansetron-Teva 8mg, Filmtabletten -Soluprick SQ 3-Bäumemischung (Alnus glutinosa Betula verrucosa, Corylus avellana), Lösung -BicaVera 2,3% Glucose Calcium, Peritonealdialyselösung -Telfastin Allergo 120 comprimés pelliculés 120 mg -Multaq comprimés pelliculés de 400 mg de dronédarone -KCL 7,45% Sintetica concentrato per soluzione per infusione (fiala di 20 ml) -Alk7 Frühblühermischung Depotsuspension zur s.c. Injektion "1 Flasche B" -Alk7 Gräsermischung und Roggen Depotsuspension zur s.c. Injektion "1 Flasche B" -Relenza 5 mg Disk (Pulverinhalation) -Ventolin Dosier-Aerosol (FCKW-frei) -Axotide 0,125 mg Dosier-Aerosol (FCKW-frei) -Axotide 0,250 mg Dosier-Aerosol (FCKW-frei) -Axotide 0,050 mg Dosier-Aerosol (FCKW-frei) -Serevent Dosier-Aerosol FCKW-frei -Bronchialpastillen Dr. Welti -Conoxia Druckgasflasche 300 bar -Staloral Pollen 3-Bäume Esche 100IR, Lösung zur sublingualen Anwendung -Staloral Pollen Birke Esche 100IR, Lösung zur sublingualen Anwendung -Phostal Birke Esche 10IR, Injektionssuspension -Alustal Birke Esche 10IR, Injektionssuspension -Alustal 3-Bäume Esche Kombipackung , Injektionssuspension -Phostal 3-Bäume Esche Kombipackung, Injektionssuspension -Fisherman's Friend Eucalyptus-Menthol, sans sucre, avec sorbitol, nouvelle formule, pastilles -Victoza 6 mg/ml Fertigpen (Triple-Dose) -Fluimucil Erkältungshusten Fertigsirup mit Himbeergeschmack -Rebif Neue Formulierung 22 Fertigspritzen, Injektionslösung -Rebif Neue Formulierung 44 Fertigspritzen, Injektionslösung -Rebif Neue Formulierung 8.8 Fertigspritzen, Injektionslösung -Bonherba rocks Kräuterzucker, Kräuterbonbon 2,7 g -Ricola Kräuter, Kräuterbonbons ohne Zucker, 2,5 g -Testlösung zur Allergiediagnose Teomed Ei ganz, Lösung -Helena's Fenchelfruchttee ganze Droge -Intron A 10 Mio. I.E./1 mL gebrauchsfertige, HSA-freie Injektionslösung -Picato Gel 500 mcg/g -Duodopa Gel zur intestinalen Anwendung -Weleda Arnica-Gel Gel, anthroposophisches Arzneimittel -Burgerstein Vitamin E-Kapseln 400 I.E. -Solmucol 10 % local i.v., i.m., soluzione iniettabile -Synacthen (i.m. i.v.), Injektionslösung -Nutriflex Lipid plus ohne Elektrolyte Infusionsemulsion 1250ml -Nutriflex Omega plus Infusionsemulsion 1875 ml -SmofKabiven Infusionsemulsion 1970 ml -SmofKabiven EF Infusionsemulsion 1970 ml -Nutriflex Omega special Infusionsemulsion 2500 ml -Nutriflex Lipid special ohne Elektrolyte Infusionsemulsion 2500ml -Nutriflex Lipid peri Infusionsemulsion, 1250ml -Nutriflex Lipid plus Infusionsemulsion, 1250ml -Nutriflex Lipid special Infusionsemulsion, 1250ml -Dexdor Infusionskonzentrat 1000ug/10ml -Peditrace Infusionskonzentrat, Zusatzampulle -M Classic Eucalyptus Gummipastillen zuckerfrei -M Classic Halsbonbons zuckerfrei -Salbisan Halspastillen zuckerfrei -Madopar LIQ 125 Tabletten zur Herstellung einer Suspension zum Einnehmen -Anginazol forte tablettes à sucer -Tisane provençale No 1 tisane laxative, plantes coupées -) - + "1001 Blattgrün Dragées" => {prepation_name: "1001 Blattgrün ", galenic_form: "Dragées"}, + "3TC 150 mg, Filmtabletten" => {prepation_name: "3TC 150 mg", galenic_form: "Filmtabletten"}, + "Acetocaustin, Lösung" => {prepation_name: "Acetocaustin", galenic_form: "Lösung"}, + "Alustal 3-Bäume, Injektionssuspension" => {prepation_name: "Alustal 3-Bäume", galenic_form: "Injektionssuspension"}, + "Alustal Bäume, Injektionssuspension" => {prepation_name: "Alustal Bäume", galenic_form: "Injektionssuspension"}, + "Amoxicillin Streuli, Granulat zur Herstellung einer Suspension" => {prepation_name: "Amoxicillin Streuli", galenic_form: "Granulat zur Herstellung einer Suspension"}, + "Arkocaps Passiflore/Passionsblume, 300 mg, capsules" => {prepation_name: "Arkocaps Passiflore/Passionsblume", galenic_form: "capsules"}, + "Atenativ, Antithrombin III 500 I.E., Injektionspräparat" => {prepation_name: "Atenativ", galenic_form: "Injektionspräparat"}, + "Atorvastatin Helvepharm, 10 mg Filmtabletten" => {prepation_name: "Atorvastatin Helvepharm", galenic_form: "Filmtabletten"}, + "Atorvastax-Drossapharm 20 mg" => {prepation_name: "Atorvastax-Drossapharm 20 mg", galenic_form: nil}, + "Co-Losartan Spirig HC 50/12,5 mg" => {prepation_name: "Co-Losartan Spirig HC 50/12,5 mg", galenic_form: nil}, + "Dicloabak 0,1% Augentropfen" => {prepation_name: "Dicloabak 0,1% ", galenic_form: "Augentropfen"}, + "Kaliumchlorid 14,9 % B. Braun, Zusatzampullen" => {prepation_name: "Kaliumchlorid 14,9 % B. Braun", galenic_form: "Zusatzampullen"}, + "Methrexx 7.5 mg / 0.75 ml,Injektionslösung in Fertigspritzen" => {prepation_name: "Methrexx 7.5 mg / 0.75 ml", galenic_form: "Injektionslösung in Fertigspritzen"}, + "Nitroderm TTS 10" => {prepation_name: "Nitroderm TTS 10", galenic_form: nil}, + "Ondansetron Labatec, 8mg/4ml, concentré pour perfusion" => {prepation_name: "Ondansetron Labatec", galenic_form: "concentré pour perfusion"}, + "Paronex 20, Filmtabletten" => {prepation_name: "Paronex 20", galenic_form: "Filmtabletten"}, + "Physioneal 35 Clear-Flex 3,86 % Peritonealdialyselösung" => {prepation_name: "Physioneal 35 Clear-Flex 3,86 % ", galenic_form: "Peritonealdialyselösung"}, + "Phytopharma foie et bile capsules/Leber-Galle Kapseln" => {prepation_name: "Phytopharma foie et bile capsules", galenic_form: "Leber-Galle Kapseln"}, + "Plak-out Spray 0,1 %" => {prepation_name: "Plak-out Spray 0,1 %", galenic_form: nil}, + "Sandostatin 0,2 mg/mL, Injektionslösung" => {prepation_name: "Sandostatin 0,2 mg/mL", galenic_form: "Injektionslösung"}, + "Sulfure de Rhénium (186Re)-RE-186-MM-1 Cis bio International, Suspension" => {prepation_name: "Sulfure de Rhénium (186Re)-RE-186-MM-1 Cis bio International", galenic_form: "Suspension"}, + "Tramal 100, Injektionslösung (i.m., i.v.)" => {prepation_name: "Tramal 100", galenic_form: "Injektionslösung (i.m., i.v.)"}, + "Uman Albumin Kedrion 20%" => {prepation_name: "Uman Albumin Kedrion 20%", galenic_form: nil} +} +x = %( + Testlösung zur Allergiediagnose Teomed Kaninchen (Fell) Lösung + Testlösung zur Allergiediagnose Teomed Hund (Haare) Lösung + Pandemrix (Pandemic Influenza Vaccine H1N1) + Phytopharma dragées pour la détente et le sommeil / Entspannungs- und Schlafdragées + Phytopharma dragées pour le coeur / Herz Dragées + Best Friend Katzenhalsband / Katzenhalsband Reflex ad us.vet. + Amlodipin Helvepharm 10 Tabletten + Salbu Orion Easyhaler 100 ug Inhalationspulver + TISSEEL 10 ml 2 Fertigspritzen + TISSEEL 2 ml 2 Fertigspritzen + TISSEEL 4 ml 2 Fertigspritzen + Norprolac Starter-pack 25 ug + 50 ug, Tabletten + Phostal 5-Gräser 4-Getreidemischung 10IR, Injektionssuspension + Alustal 5-Gräser 4-Getreidemischung Kombipackung, Injektionssuspension + Staloral Beifuss 5-Gräser 100IR, Injektionssuspension + Phostal Beifuss 5-Gräser 10IR, Injektionssuspension + Alustal Beifuss 5-Gräser 10IR, Injektionssuspension + Seebri Breezhaler 50 Mikrogramm, Pulver zur Inhalation, Hartkapseln + Nplate 500 mcg Pulver und Lösungsmittel zur Herstellung einer Injektionslösung + Bayvantage ad us.vet. 80 für Katzen, Lösung + Ondansetron-Teva 8mg, Filmtabletten + Soluprick SQ 3-Bäumemischung (Alnus glutinosa Betula verrucosa, Corylus avellana), Lösung + BicaVera 2,3% Glucose Calcium, Peritonealdialyselösung + Telfastin Allergo 120 comprimés pelliculés 120 mg + Multaq comprimés pelliculés de 400 mg de dronédarone + KCL 7,45% Sintetica concentrato per soluzione per infusione (fiala di 20 ml) + Alk7 Frühblühermischung Depotsuspension zur s.c. Injektion "1 Flasche B" + Alk7 Gräsermischung und Roggen Depotsuspension zur s.c. Injektion "1 Flasche B" + Relenza 5 mg Disk (Pulverinhalation) + Ventolin Dosier-Aerosol (FCKW-frei) + Axotide 0,125 mg Dosier-Aerosol (FCKW-frei) + Axotide 0,250 mg Dosier-Aerosol (FCKW-frei) + Axotide 0,050 mg Dosier-Aerosol (FCKW-frei) + Serevent Dosier-Aerosol FCKW-frei + Bronchialpastillen Dr. Welti + Conoxia Druckgasflasche 300 bar + Staloral Pollen 3-Bäume Esche 100IR, Lösung zur sublingualen Anwendung + Staloral Pollen Birke Esche 100IR, Lösung zur sublingualen Anwendung + Phostal Birke Esche 10IR, Injektionssuspension + Alustal Birke Esche 10IR, Injektionssuspension + Alustal 3-Bäume Esche Kombipackung , Injektionssuspension + Phostal 3-Bäume Esche Kombipackung, Injektionssuspension + Fisherman's Friend Eucalyptus-Menthol, sans sucre, avec sorbitol, nouvelle formule, pastilles + Victoza 6 mg/ml Fertigpen (Triple-Dose) + Fluimucil Erkältungshusten Fertigsirup mit Himbeergeschmack + Rebif Neue Formulierung 22 Fertigspritzen, Injektionslösung + Rebif Neue Formulierung 44 Fertigspritzen, Injektionslösung + Rebif Neue Formulierung 8.8 Fertigspritzen, Injektionslösung + Bonherba rocks Kräuterzucker, Kräuterbonbon 2,7 g + Ricola Kräuter, Kräuterbonbons ohne Zucker, 2,5 g + Testlösung zur Allergiediagnose Teomed Ei ganz, Lösung + Helena's Fenchelfruchttee ganze Droge + Intron A 10 Mio. I.E./1 mL gebrauchsfertige, HSA-freie Injektionslösung + Picato Gel 500 mcg/g + Duodopa Gel zur intestinalen Anwendung + Weleda Arnica-Gel Gel, anthroposophisches Arzneimittel + Burgerstein Vitamin E-Kapseln 400 I.E. + Solmucol 10 % local i.v., i.m., soluzione iniettabile + Synacthen (i.m. i.v.), Injektionslösung + Nutriflex Lipid plus ohne Elektrolyte Infusionsemulsion 1250ml + Nutriflex Omega plus Infusionsemulsion 1875 ml + SmofKabiven Infusionsemulsion 1970 ml + SmofKabiven EF Infusionsemulsion 1970 ml + Nutriflex Omega special Infusionsemulsion 2500 ml + Nutriflex Lipid special ohne Elektrolyte Infusionsemulsion 2500ml + Nutriflex Lipid peri Infusionsemulsion, 1250ml + Nutriflex Lipid plus Infusionsemulsion, 1250ml + Nutriflex Lipid special Infusionsemulsion, 1250ml + Dexdor Infusionskonzentrat 1000ug/10ml + Peditrace Infusionskonzentrat, Zusatzampulle + M Classic Eucalyptus Gummipastillen zuckerfrei + M Classic Halsbonbons zuckerfrei + Salbisan Halspastillen zuckerfrei + Madopar LIQ 125 Tabletten zur Herstellung einer Suspension zum Einnehmen + Anginazol forte tablettes à sucer + Tisane provençale No 1 tisane laxative, plantes coupées + ) +puts "Have #{x.split("\n").size} more examples toDO" describe ParseGalenicForm do context "parse_column_c should work" do - name, gal_form = ParseGalenicForm.from_string(galenic_tests.first.first) + name, gal_form = ParseGalenicForm.from_string(galenic_tests.first.first) specify { expect(name).to eq galenic_tests.first.last[:prepation_name].strip } specify { expect(gal_form).to eq galenic_tests.first.last[:galenic_form] } end - galenic_tests.each{ - |string, expected| - context "should handle #{string}" do - name, form = ParseGalenicForm.from_string(string) - specify { expect(name).to eq expected[:prepation_name].strip } - specify { expect(form).to eq expected[:galenic_form] } - end + galenic_tests.each { |string, expected| + context "should handle #{string}" do + name, form = ParseGalenicForm.from_string(string) + specify { expect(name).to eq expected[:prepation_name].strip } + specify { expect(form).to eq expected[:galenic_form] } + end } - { 'Phytopharma dragées pour le coeur / Herz Dragées' => - { :prepation_name=>'Phytopharma dragées pour le coeur', :galenic_form=> 'Herz Dragées' }, - }.each { - |string, expected| - context "should handle #{string}" do - name, form = ParseGalenicForm.from_string(string) - specify { expect(name).to eq expected[:prepation_name].strip } - specify { expect(form).to eq expected[:galenic_form] } - end + {"Phytopharma dragées pour le coeur / Herz Dragées" => + {prepation_name: "Phytopharma dragées pour le coeur", galenic_form: "Herz Dragées"}}.each { |string, expected| + context "should handle #{string}" do + name, form = ParseGalenicForm.from_string(string) + specify { expect(name).to eq expected[:prepation_name].strip } + specify { expect(form).to eq expected[:galenic_form] } + end } end def test_one_string(parser, string, expected) res1 = parser.parse_with_debug(string) - res1.delete(:qty) if res1 - res1.delete(:unit) if res1 - stringified = res1 ? res1.to_s.gsub(/@\d+/, '') : nil - if res1 == nil or ! stringified.eql? expected.to_s - puts "Failed testing: #{string}"; binding.pry + res1&.delete(:qty) + res1&.delete(:unit) + stringified = res1 ? res1.to_s.gsub(/@\d+/, "") : nil + if res1.nil? || !stringified.eql?(expected.to_s) + puts "Failed testing: #{string}" end expect(stringified).to eq expected.to_s if expected end -if true then describe GalenicFormParser do +describe GalenicFormParser do let(:parser) { GalenicFormParser.new } context "identifier parsing" do let(:galenic_parser) { parser.galenic } let(:qty_unit_parser) { parser.qty_unit } - galenic_tests.each{ - |string, expected| - puts string - it "parses galenic #{string}" do - test_one_string(galenic_parser, string, expected) - end + galenic_tests.each { |string, expected| + puts string + it "parses galenic #{string}" do + test_one_string(galenic_parser, string, expected) + end } end -end end +end -if RunAllParsingExamples then describe GalenicFormParser do +if RUN_ALL_PARSING_EXAMPLES then describe GalenicFormParser do context "should parse all lines in #{File.basename(AllColumn_C_Lines)}" do let(:galenic_parser) { GalenicFormParser.new.galenic } ausgabe = {} count = 0 galenic_parser = GalenicFormParser.new.galenic - IO.readlines(AllColumn_C_Lines).each { - |string| - count += 1 - # break if count > 100 - puts string.strip - it "parses galenic #{string}" do - res1 = galenic_parser.parse_with_debug(string.strip) - if res1 - ausgabe[res1[:prepation_name].to_s] = res1[:galenic_form] if res1 - else - puts "Failed testing: #{string}" - pp res1 -# binding.pry - end + IO.readlines(AllColumn_C_Lines).each { |string| + count += 1 + # break if count > 100 + puts string.strip + it "parses galenic #{string}" do + res1 = galenic_parser.parse_with_debug(string.strip) + if res1 + ausgabe[res1[:prepation_name].to_s] = res1[:galenic_form] if res1 + else + puts "Failed testing: #{string}" + pp res1 + # binding.pry end + end } - csv_name = File.join(Oddb2xml::WorkDir, 'galenic.csv') - at_exit do CSV.open(csv_name, "w+", :col_sep => ';') do |csv| + csv_name = File.join(Oddb2xml::WORK_DIR, "galenic.csv") + at_exit do + CSV.open(csv_name, "w+", col_sep: ";") do |csv| ausgabe.each do |key, value| - csv << [key, value] + csv << [key, value] end end end end -end end +end +end describe GalenicFormParser do let(:parser) { GalenicFormParser.new } context "gal_form parsing" do let(:gal_form_parser) { parser.gal_form } - should_pass = [ - ', Lösung', - ', 100mg Lösung', - 'Lösung', - '100mg Lösung', - 'Injektionslösung (i.m., i.v.)', - ].each { - |id| - it "parses gal_form #{id}" do - expect(gal_form_parser).to parse(id) - end - } - should_not_pass = [ - ].each { - |id| - it "parses gal_form #{id}" do - expect(gal_form_parser).to_not parse(id) - end - } + [ + ", Lösung", + ", 100mg Lösung", + "Lösung", + "100mg Lösung", + "Injektionslösung (i.m., i.v.)" + ].each { |id| + it "parses gal_form #{id}" do + expect(gal_form_parser).to parse(id) + end + } + [].each { |id| + it "parses gal_form #{id}" do + expect(gal_form_parser).to_not parse(id) + end + } end context "name_gal_form parsing" do let(:name_gal_form_parser) { parser.name_gal_form } - should_pass = [ - 'Dicloabak 0,1% Augentropfen', - '35 Clear-Flex 3,86 % Peritonealdialyselösung', - 'Esmeron 100mg/10ml Injektionslösung', - ].each { - |id| - it "parses name_gal_form #{id}" do - expect(name_gal_form_parser).to parse(id) - end - } - should_not_pass = [ - ].each { - |id| - it "parses name_gal_form #{id}" do - expect(name_gal_form_parser).to_not parse(id) - end - } + [ + "Dicloabak 0,1% Augentropfen", + "35 Clear-Flex 3,86 % Peritonealdialyselösung", + "Esmeron 100mg/10ml Injektionslösung" + ].each { |id| + it "parses name_gal_form #{id}" do + expect(name_gal_form_parser).to parse(id) + end + } + [].each { |id| + it "parses name_gal_form #{id}" do + expect(name_gal_form_parser).to_not parse(id) + end + } end context "prepation_name parsing" do let(:prepation_name_parser) { parser.prepation_name } - should_pass = [ - 'name', - 'name more', - 'name more and more', - 'Dicloabak 0,1% Augentropfen', - ].each { - |id| - it "parses prepation_name #{id}" do - expect(prepation_name_parser).to parse(id) - end - } - should_not_pass = [ - ].each { - |id| - it "parses prepation_name #{id}" do - expect(prepation_name_parser).to_not parse(id) - end - } + [ + "name", + "name more", + "name more and more", + "Dicloabak 0,1% Augentropfen" + ].each { |id| + it "parses prepation_name #{id}" do + expect(prepation_name_parser).to parse(id) + end + } + [].each { |id| + it "parses prepation_name #{id}" do + expect(prepation_name_parser).to_not parse(id) + end + } end context "standard_galenic parsing" do let(:standard_galenic_parser) { parser.standard_galenic } - should_pass = [ - 'Antithrombin III 500 I.E., Injektionspräparat', - 'Ondansetron Labatec, 8mg/4ml, concentré pour perfusion', - ].each { - |id| - it "parses standard_galenic #{id}" do - expect(standard_galenic_parser).to parse(id) - end - } - should_not_pass = [ - 'Dicloabak 0,1% Augentropfen', - '35 Clear-Flex 3,86 % Peritonealdialyselösung', - 'Esmeron 100mg/10ml Injektionslösung', - ].each { - |id| - it "parses standard_galenic #{id}" do - expect(standard_galenic_parser).to_not parse(id) - end - } + [ + "Antithrombin III 500 I.E., Injektionspräparat", + "Ondansetron Labatec, 8mg/4ml, concentré pour perfusion" + ].each { |id| + it "parses standard_galenic #{id}" do + expect(standard_galenic_parser).to parse(id) + end + } + [ + "Dicloabak 0,1% Augentropfen", + "35 Clear-Flex 3,86 % Peritonealdialyselösung", + "Esmeron 100mg/10ml Injektionslösung" + ].each { |id| + it "parses standard_galenic #{id}" do + expect(standard_galenic_parser).to_not parse(id) + end + } end context "dose_with_pro parsing" do let(:dose_with_pro_parser) { parser.dose_with_pro } - should_pass = [ - '100mg/10ml', - '8mg/4ml', - ].each { - |id| - it "parses dose_with_pro #{id}" do - expect(dose_with_pro_parser).to parse(id) - end - } - should_not_pass = [ - '100mgx10ml', - '8mgX4ml', - ].each { - |id| - it "parses dose_with_pro #{id}" do - expect(dose_with_pro_parser).to_not parse(id) - end - } + [ + "100mg/10ml", + "8mg/4ml" + ].each { |id| + it "parses dose_with_pro #{id}" do + expect(dose_with_pro_parser).to parse(id) + end + } + [ + "100mgx10ml", + "8mgX4ml" + ].each { |id| + it "parses dose_with_pro #{id}" do + expect(dose_with_pro_parser).to_not parse(id) + end + } end - - end -