diff --git a/test/__init__.py b/test/__init__.py
index e69de29..b73f929 100644
--- a/test/__init__.py
+++ b/test/__init__.py
@@ -0,0 +1,2 @@
+import test_album
+import test_tag
\ No newline at end of file
diff --git a/test/data/261ff5a1d7da94c30a4cf934316cae8f.xml b/test/data/261ff5a1d7da94c30a4cf934316cae8f.xml
new file mode 100644
index 0000000..b851658
--- /dev/null
+++ b/test/data/261ff5a1d7da94c30a4cf934316cae8f.xml
@@ -0,0 +1,505 @@
+
+
+
+
+
+ Radiohead
+ 10156
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+ 1
+ http://userserve-ak.last.fm/serve/34/8461403.jpg
+ http://userserve-ak.last.fm/serve/64/8461403.jpg
+ http://userserve-ak.last.fm/serve/126/8461403.jpg
+
+
+ Muse
+ 6469
+ 9c9f1380-2516-4fc9-a3e6-f9f61941d090
+ http://www.last.fm/music/Muse
+ 1
+ http://userserve-ak.last.fm/serve/34/398895.jpg
+ http://userserve-ak.last.fm/serve/64/398895.jpg
+ http://userserve-ak.last.fm/serve/126/398895.jpg
+
+
+ Coldplay
+ 5957
+ cc197bad-dc9c-440d-a5b5-d52ba2e14234
+ http://www.last.fm/music/Coldplay
+ 1
+ http://userserve-ak.last.fm/serve/34/5735261.jpg
+ http://userserve-ak.last.fm/serve/64/5735261.jpg
+ http://userserve-ak.last.fm/serve/126/5735261.jpg
+
+
+ Placebo
+ 5318
+ 847e8284-8582-4b0e-9c26-b042a4f49e57
+ http://www.last.fm/music/Placebo
+ 1
+ http://userserve-ak.last.fm/serve/34/300983.jpg
+ http://userserve-ak.last.fm/serve/64/300983.jpg
+ http://userserve-ak.last.fm/serve/126/300983.jpg
+
+
+ Red Hot Chili Peppers
+ 5258
+ 8bfac288-ccc5-448d-9573-c33ea2aa5c30
+ http://www.last.fm/music/Red+Hot+Chili+Peppers
+ 1
+ http://userserve-ak.last.fm/serve/34/59561.jpg
+ http://userserve-ak.last.fm/serve/64/59561.jpg
+ http://userserve-ak.last.fm/serve/126/59561.jpg
+
+
+ Björk
+ 4365
+ 87c5dedd-371d-4a53-9f7f-80522fb7f3cb
+ http://www.last.fm/music/Bj%C3%B6rk
+ 1
+ http://userserve-ak.last.fm/serve/34/3115163.jpg
+ http://userserve-ak.last.fm/serve/64/3115163.jpg
+ http://userserve-ak.last.fm/serve/126/3115163.jpg
+
+
+ Beck
+ 4119
+ 309c62ba-7a22-4277-9f67-4a162526d18a
+ http://www.last.fm/music/Beck
+ 1
+ http://userserve-ak.last.fm/serve/34/19628.jpg
+ http://userserve-ak.last.fm/serve/64/19628.jpg
+ http://userserve-ak.last.fm/serve/126/19628.jpg
+
+
+ The Smashing Pumpkins
+ 4049
+ ba0d6274-db14-4ef5-b28d-657ebde1a396
+ http://www.last.fm/music/The+Smashing+Pumpkins
+ 1
+ http://userserve-ak.last.fm/serve/34/172885.jpg
+ http://userserve-ak.last.fm/serve/64/172885.jpg
+ http://userserve-ak.last.fm/serve/126/172885.jpg
+
+
+ Nirvana
+ 3992
+ 5b11f4ce-a62d-471e-81fc-a69a8278c7da
+ http://www.last.fm/music/Nirvana
+ 1
+ http://userserve-ak.last.fm/serve/34/380269.jpg
+ http://userserve-ak.last.fm/serve/64/380269.jpg
+ http://userserve-ak.last.fm/serve/126/380269.jpg
+
+
+ The White Stripes
+ 3955
+ 11ae9fbb-f3d7-4a47-936f-4c0a04d3b3b5
+ http://www.last.fm/music/The+White+Stripes
+ 1
+ http://userserve-ak.last.fm/serve/34/2152402.jpg
+ http://userserve-ak.last.fm/serve/64/2152402.jpg
+ http://userserve-ak.last.fm/serve/126/2152402.jpg
+
+
+ Gorillaz
+ 3876
+ e21857d5-3256-4547-afb3-4b6ded592596
+ http://www.last.fm/music/Gorillaz
+ 1
+ http://userserve-ak.last.fm/serve/34/350359.png
+ http://userserve-ak.last.fm/serve/64/350359.png
+ http://userserve-ak.last.fm/serve/126/350359.png
+
+
+ The Killers
+ 3661
+ 95e1ead9-4d31-4808-a7ac-32c3614c116b
+ http://www.last.fm/music/The+Killers
+ 1
+ http://userserve-ak.last.fm/serve/34/137030.jpg
+ http://userserve-ak.last.fm/serve/64/137030.jpg
+ http://userserve-ak.last.fm/serve/126/137030.jpg
+
+
+ The Cure
+ 3610
+ 69ee3720-a7cb-4402-b48d-a02c366f2bcf
+ http://www.last.fm/music/The+Cure
+ 1
+ http://userserve-ak.last.fm/serve/34/355763.jpg
+ http://userserve-ak.last.fm/serve/64/355763.jpg
+ http://userserve-ak.last.fm/serve/126/355763.jpg
+
+
+ System of a Down
+ 3604
+ cc0b7089-c08d-4c10-b6b0-873582c17fd6
+ http://www.last.fm/music/System+of+a+Down
+ 1
+ http://userserve-ak.last.fm/serve/34/3513059.jpg
+ http://userserve-ak.last.fm/serve/64/3513059.jpg
+ http://userserve-ak.last.fm/serve/126/3513059.jpg
+
+
+ Linkin Park
+ 3326
+ f59c5520-5f46-4d2c-b2c4-822eabf53419
+ http://www.last.fm/music/Linkin+Park
+ 1
+ http://userserve-ak.last.fm/serve/34/161.jpg
+ http://userserve-ak.last.fm/serve/64/161.jpg
+ http://userserve-ak.last.fm/serve/126/161.jpg
+
+
+ Foo Fighters
+ 3220
+ 67f66c07-6e61-4026-ade5-7e782fad3a5d
+ http://www.last.fm/music/Foo+Fighters
+ 1
+ http://userserve-ak.last.fm/serve/34/272188.jpg
+ http://userserve-ak.last.fm/serve/64/272188.jpg
+ http://userserve-ak.last.fm/serve/126/272188.jpg
+
+
+ Incubus
+ 3174
+ e3e0abcd-7671-4482-a9d8-462f5acc9be5
+ http://www.last.fm/music/Incubus
+ 1
+ http://userserve-ak.last.fm/serve/34/362765.jpg
+ http://userserve-ak.last.fm/serve/64/362765.jpg
+ http://userserve-ak.last.fm/serve/126/362765.jpg
+
+
+ Franz Ferdinand
+ 3068
+ aa7a2827-f74b-473c-bd79-03d065835cf7
+ http://www.last.fm/music/Franz+Ferdinand
+ 1
+ http://userserve-ak.last.fm/serve/34/3882921.jpg
+ http://userserve-ak.last.fm/serve/64/3882921.jpg
+ http://userserve-ak.last.fm/serve/126/3882921.jpg
+
+
+ Pixies
+ 2954
+ b6b2bb8d-54a9-491f-9607-7b546023b433
+ http://www.last.fm/music/Pixies
+ 1
+ http://userserve-ak.last.fm/serve/34/108906.jpg
+ http://userserve-ak.last.fm/serve/64/108906.jpg
+ http://userserve-ak.last.fm/serve/126/108906.jpg
+
+
+ Rage Against the Machine
+ 2768
+ 3798b104-01cb-484c-a3b0-56adc6399b80
+ http://www.last.fm/music/Rage+Against+the+Machine
+ 1
+ http://userserve-ak.last.fm/serve/34/159588.jpg
+ http://userserve-ak.last.fm/serve/64/159588.jpg
+ http://userserve-ak.last.fm/serve/126/159588.jpg
+
+
+ Death Cab for Cutie
+ 2727
+ 0039c7ae-e1a7-4a7d-9b49-0cbc716821a6
+ http://www.last.fm/music/Death+Cab+for+Cutie
+ 1
+ http://userserve-ak.last.fm/serve/34/91747.jpg
+ http://userserve-ak.last.fm/serve/64/91747.jpg
+ http://userserve-ak.last.fm/serve/126/91747.jpg
+
+
+ Weezer
+ 2684
+ 6fe07aa5-fec0-4eca-a456-f29bff451b04
+ http://www.last.fm/music/Weezer
+ 1
+ http://userserve-ak.last.fm/serve/34/6341969.jpg
+ http://userserve-ak.last.fm/serve/64/6341969.jpg
+ http://userserve-ak.last.fm/serve/126/6341969.jpg
+
+
+ Arctic Monkeys
+ 2640
+ ada7a83c-e3e1-40f1-93f9-3e73dbc9298a
+ http://www.last.fm/music/Arctic+Monkeys
+ 1
+ http://userserve-ak.last.fm/serve/34/206195.jpg
+ http://userserve-ak.last.fm/serve/64/206195.jpg
+ http://userserve-ak.last.fm/serve/126/206195.jpg
+
+
+ Nine Inch Nails
+ 2623
+ b7ffd2af-418f-4be2-bdd1-22f8b48613da
+ http://www.last.fm/music/Nine+Inch+Nails
+ 1
+ http://userserve-ak.last.fm/serve/34/10629345.jpg
+ http://userserve-ak.last.fm/serve/64/10629345.jpg
+ http://userserve-ak.last.fm/serve/126/10629345.jpg
+
+
+ Sigur Rós
+ 2517
+ f6f2326f-6b25-4170-b89d-e235b25508e8
+ http://www.last.fm/music/Sigur+R%C3%B3s
+ 1
+ http://userserve-ak.last.fm/serve/34/3371896.jpg
+ http://userserve-ak.last.fm/serve/64/3371896.jpg
+ http://userserve-ak.last.fm/serve/126/3371896.jpg
+
+
+ R.E.M.
+ 2464
+ ea4dfa26-f633-4da6-a52a-f49ea4897b58
+ http://www.last.fm/music/R.E.M.
+ 1
+ http://userserve-ak.last.fm/serve/34/151713.jpg
+ http://userserve-ak.last.fm/serve/64/151713.jpg
+ http://userserve-ak.last.fm/serve/126/151713.jpg
+
+
+ Bloc Party
+ 2424
+ 8c538f11-c141-4588-8ecb-931083524186
+ http://www.last.fm/music/Bloc+Party
+ 1
+ http://userserve-ak.last.fm/serve/34/5454523.jpg
+ http://userserve-ak.last.fm/serve/64/5454523.jpg
+ http://userserve-ak.last.fm/serve/126/5454523.jpg
+
+
+ The Strokes
+ 2406
+ f181961b-20f7-459e-89de-920ef03c7ed0
+ http://www.last.fm/music/The+Strokes
+ 1
+ http://userserve-ak.last.fm/serve/34/74876.jpg
+ http://userserve-ak.last.fm/serve/64/74876.jpg
+ http://userserve-ak.last.fm/serve/126/74876.jpg
+
+
+ My Chemical Romance
+ 2379
+ c07f0676-9143-4217-8a9f-4c26bd636f13
+ http://www.last.fm/music/My+Chemical+Romance
+ 1
+ http://userserve-ak.last.fm/serve/34/3078522.png
+ http://userserve-ak.last.fm/serve/64/3078522.png
+ http://userserve-ak.last.fm/serve/126/3078522.png
+
+
+ Green Day
+ 2345
+ 084308bd-1654-436f-ba03-df6697104e19
+ http://www.last.fm/music/Green+Day
+ 1
+ http://userserve-ak.last.fm/serve/34/17650103.jpg
+ http://userserve-ak.last.fm/serve/64/17650103.jpg
+ http://userserve-ak.last.fm/serve/126/17650103.jpg
+
+
+ Interpol
+ 2332
+ b23e8a63-8f47-4882-b55b-df2c92ef400e
+ http://www.last.fm/music/Interpol
+ 1
+ http://userserve-ak.last.fm/serve/34/2737.jpg
+ http://userserve-ak.last.fm/serve/64/2737.jpg
+ http://userserve-ak.last.fm/serve/126/2737.jpg
+
+
+ Sonic Youth
+ 2299
+ 5cbef01b-cc35-4f52-af7b-d0df0c4f61b9
+ http://www.last.fm/music/Sonic+Youth
+ 1
+ http://userserve-ak.last.fm/serve/34/219069.png
+ http://userserve-ak.last.fm/serve/64/219069.png
+ http://userserve-ak.last.fm/serve/126/219069.png
+
+
+ Garbage
+ 2289
+ f9ef7a22-4262-4596-a2a8-1d19345b8e50
+ http://www.last.fm/music/Garbage
+ 1
+ http://userserve-ak.last.fm/serve/34/322257.jpg
+ http://userserve-ak.last.fm/serve/64/322257.jpg
+ http://userserve-ak.last.fm/serve/126/322257.jpg
+
+
+ Oasis
+ 2229
+ 39ab1aed-75e0-4140-bd47-540276886b60
+ http://www.last.fm/music/Oasis
+ 1
+ http://userserve-ak.last.fm/serve/34/7394339.jpg
+ http://userserve-ak.last.fm/serve/64/7394339.jpg
+ http://userserve-ak.last.fm/serve/126/7394339.jpg
+
+
+ Tool
+ 2162
+ 66fc5bf8-daa4-4241-b378-9bc9077939d2
+ http://www.last.fm/music/Tool
+ 1
+ http://userserve-ak.last.fm/serve/34/3727739.jpg
+ http://userserve-ak.last.fm/serve/64/3727739.jpg
+ http://userserve-ak.last.fm/serve/126/3727739.jpg
+
+
+ A Perfect Circle
+ 2150
+ 078a9376-3c04-4280-b7d7-b20e158f345d
+ http://www.last.fm/music/A+Perfect+Circle
+ 1
+ http://userserve-ak.last.fm/serve/34/2918151.jpg
+ http://userserve-ak.last.fm/serve/64/2918151.jpg
+ http://userserve-ak.last.fm/serve/126/2918151.jpg
+
+
+ Tori Amos
+ 2130
+ c0b2500e-0cef-4130-869d-732b23ed9df5
+ http://www.last.fm/music/Tori+Amos
+ 1
+ http://userserve-ak.last.fm/serve/34/275097.jpg
+ http://userserve-ak.last.fm/serve/64/275097.jpg
+ http://userserve-ak.last.fm/serve/126/275097.jpg
+
+
+ Queens of the Stone Age
+ 2107
+ 7dc8f5bd-9d0b-4087-9f73-dc164950bbd8
+ http://www.last.fm/music/Queens+of+the+Stone+Age
+ 1
+ http://userserve-ak.last.fm/serve/34/267928.jpg
+ http://userserve-ak.last.fm/serve/64/267928.jpg
+ http://userserve-ak.last.fm/serve/126/267928.jpg
+
+
+ Snow Patrol
+ 2102
+ a66999a7-ae5c-460e-ba94-1a01143ae847
+ http://www.last.fm/music/Snow+Patrol
+ 1
+ http://userserve-ak.last.fm/serve/34/13341777.jpg
+ http://userserve-ak.last.fm/serve/64/13341777.jpg
+ http://userserve-ak.last.fm/serve/126/13341777.jpg
+
+
+ PJ Harvey
+ 2053
+ e795e03d-b5d5-4a5f-834d-162cfb308a2c
+ http://www.last.fm/music/PJ+Harvey
+ 1
+ http://userserve-ak.last.fm/serve/34/4306938.jpg
+ http://userserve-ak.last.fm/serve/64/4306938.jpg
+ http://userserve-ak.last.fm/serve/126/4306938.jpg
+
+
+ Modest Mouse
+ 2041
+ a96ac800-bfcb-412a-8a63-0a98df600700
+ http://www.last.fm/music/Modest+Mouse
+ 1
+ http://userserve-ak.last.fm/serve/34/276303.jpg
+ http://userserve-ak.last.fm/serve/64/276303.jpg
+ http://userserve-ak.last.fm/serve/126/276303.jpg
+
+
+ Deftones
+ 2012
+ 7527f6c2-d762-4b88-b5e2-9244f1e34c46
+ http://www.last.fm/music/Deftones
+ 1
+ http://userserve-ak.last.fm/serve/34/383723.gif
+ http://userserve-ak.last.fm/serve/64/383723.gif
+ http://userserve-ak.last.fm/serve/126/383723.gif
+
+
+ 30 Seconds to Mars
+ 1975
+ d8354b38-e942-4c89-ba93-29323432abc3
+ http://www.last.fm/music/30+Seconds+to+Mars
+ 1
+ http://userserve-ak.last.fm/serve/34/67909.jpg
+ http://userserve-ak.last.fm/serve/64/67909.jpg
+ http://userserve-ak.last.fm/serve/126/67909.jpg
+
+
+ Jimmy Eat World
+ 1916
+ bbc5b66b-d037-4f26-aecf-0b129e7f876a
+ http://www.last.fm/music/Jimmy+Eat+World
+ 1
+ http://userserve-ak.last.fm/serve/34/12576673.jpg
+ http://userserve-ak.last.fm/serve/64/12576673.jpg
+ http://userserve-ak.last.fm/serve/126/12576673.jpg
+
+
+ Pearl Jam
+ 1884
+ 83b9cbe7-9857-49e2-ab8e-b57b01038103
+ http://www.last.fm/music/Pearl+Jam
+ 1
+ http://userserve-ak.last.fm/serve/34/200803.jpg
+ http://userserve-ak.last.fm/serve/64/200803.jpg
+ http://userserve-ak.last.fm/serve/126/200803.jpg
+
+
+ Panic! At the Disco
+ 1842
+ b9472588-93f3-4922-a1a2-74082cdf9ce8
+ http://www.last.fm/music/Panic%21+At+the+Disco
+ 1
+ http://userserve-ak.last.fm/serve/34/67849.jpg
+ http://userserve-ak.last.fm/serve/64/67849.jpg
+ http://userserve-ak.last.fm/serve/126/67849.jpg
+
+
+ The Arcade Fire
+ 1837
+
+ http://www.last.fm/music/The+Arcade+Fire
+ 1
+ http://userserve-ak.last.fm/serve/34/1452.jpg
+ http://userserve-ak.last.fm/serve/64/1452.jpg
+ http://userserve-ak.last.fm/serve/126/1452.jpg
+
+
+ The Cranberries
+ 1835
+ c98d40fd-f6cf-4b26-883e-eaa515ee2851
+ http://www.last.fm/music/The+Cranberries
+ 1
+ http://userserve-ak.last.fm/serve/34/5011172.jpg
+ http://userserve-ak.last.fm/serve/64/5011172.jpg
+ http://userserve-ak.last.fm/serve/126/5011172.jpg
+
+
+ The Smiths
+ 1806
+ 40f5d9e4-2de7-4f2d-ad41-e31a9a9fea27
+ http://www.last.fm/music/The+Smiths
+ 1
+ http://userserve-ak.last.fm/serve/34/360758.png
+ http://userserve-ak.last.fm/serve/64/360758.png
+ http://userserve-ak.last.fm/serve/126/360758.png
+
+
+ Depeche Mode
+ 1788
+ 8538e728-ca0b-4321-b7e5-cff6565dd4c0
+ http://www.last.fm/music/Depeche+Mode
+ 1
+ http://userserve-ak.last.fm/serve/34/11067583.jpg
+ http://userserve-ak.last.fm/serve/64/11067583.jpg
+ http://userserve-ak.last.fm/serve/126/11067583.jpg
+
+
diff --git a/test/data/4de671548158bec683a0c7f929322834.xml b/test/data/4de671548158bec683a0c7f929322834.xml
new file mode 100644
index 0000000..5d69db3
--- /dev/null
+++ b/test/data/4de671548158bec683a0c7f929322834.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/data/7a49243a635818e5248e05f4553bf24b.xml b/test/data/7a49243a635818e5248e05f4553bf24b.xml
new file mode 100644
index 0000000..bd4a5ac
--- /dev/null
+++ b/test/data/7a49243a635818e5248e05f4553bf24b.xml
@@ -0,0 +1,110 @@
+
+
+
+
+8368
+0
+20
+
+
+ alternative
+ 1121849
+ www.last.fm/tag/alternative
+
+
+ alternative rock
+ 521455
+ www.last.fm/tag/alternative%20rock
+
+
+ alternative metal
+ 60883
+ www.last.fm/tag/alternative%20metal
+
+
+ alternative pop
+ 10392
+ www.last.fm/tag/alternative%20pop
+
+
+ alternative dance
+ 3190
+ www.last.fm/tag/alternative%20dance
+
+
+ alternative rap
+ 5459
+ www.last.fm/tag/alternative%20rap
+
+
+ alternative country
+ 5652
+ www.last.fm/tag/alternative%20country
+
+
+ adult alternative
+ 5327
+ www.last.fm/tag/adult%20alternative
+
+
+ alternative hip-hop
+ 2601
+ www.last.fm/tag/alternative%20hip-hop
+
+
+ alternative folk
+ 4853
+ www.last.fm/tag/alternative%20folk
+
+
+ russian alternative
+ 9058
+ www.last.fm/tag/russian%20alternative
+
+
+ rock alternative
+ 1189
+ www.last.fm/tag/rock%20alternative
+
+
+ alternative pop-rock
+ 3666
+ www.last.fm/tag/alternative%20pop-rock
+
+
+ alternative punk
+ 1602
+ www.last.fm/tag/alternative%20punk
+
+
+ 90s alternative
+ 1737
+ www.last.fm/tag/90s%20alternative
+
+
+ polish alternative
+ 1113
+ www.last.fm/tag/polish%20alternative
+
+
+ alternative punk
+ 23683
+ www.last.fm/tag/alternative%20%20punk
+
+
+ alternative country-rock
+ 1379
+ www.last.fm/tag/alternative%20country-rock
+
+
+ latin alternative
+ 1158
+ www.last.fm/tag/latin%20alternative
+
+
+ christian alternative
+ 726
+ www.last.fm/tag/christian%20alternative
+
+
+
diff --git a/test/data/8472883801ab304edeb47e9ad44c7e27.xml b/test/data/8472883801ab304edeb47e9ad44c7e27.xml
new file mode 100644
index 0000000..3455bc4
--- /dev/null
+++ b/test/data/8472883801ab304edeb47e9ad44c7e27.xml
@@ -0,0 +1,210 @@
+
+
+
+
+48
+0
+20
+
+
+ return to paradice
+ Waldeck
+ 4031124
+ http://www.last.fm/music/Waldeck/return+to+paradice
+
+
+
+ 0
+
+
+ Paradice is Empty
+ I-Disagree
+ 3858585
+ http://www.last.fm/music/I-Disagree/Paradice+is+Empty
+ http://userserve-ak.last.fm/serve/34s/7623935.jpg
+ http://userserve-ak.last.fm/serve/64s/7623935.jpg
+ http://userserve-ak.last.fm/serve/126/7623935.jpg
+ 0
+
+
+ Paradice
+ The Mods
+ 2837671
+ http://www.last.fm/music/The+Mods/Paradice
+ http://images.amazon.com/images/P/B00005HOCU.01._SCMZZZZZZZ_.jpg
+ http://images.amazon.com/images/P/B00005HOCU.01._SCMZZZZZZZ_.jpg
+ http://images.amazon.com/images/P/B00005HOCU.01._SCMZZZZZZZ_.jpg
+ 0
+
+
+ paradice slave
+ flower of flesh and blood
+ 3377962
+ http://www.last.fm/music/flower+of+flesh+and+blood/paradice+slave
+ http://userserve-ak.last.fm/serve/34s/10295141.jpg
+ http://userserve-ak.last.fm/serve/64s/10295141.jpg
+ http://userserve-ak.last.fm/serve/126/10295141.jpg
+ 0
+
+
+ return to paradice
+ Flunk
+ 4010562
+ http://www.last.fm/music/Flunk/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Nostalgia 77
+ 3957505
+ http://www.last.fm/music/Nostalgia+77/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Katalyst
+ 4096868
+ http://www.last.fm/music/Katalyst/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Ennio Morricone
+ 4172746
+ http://www.last.fm/music/Ennio+Morricone/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Cornucopia
+ 4189660
+ http://www.last.fm/music/Cornucopia/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Lost Balance
+ 4251872
+ http://www.last.fm/music/Lost+Balance/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Ameaba
+ 7510910
+ http://www.last.fm/music/Ameaba/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Boozoo Bajou Feat Tony Joe Whit
+ 4106786
+ http://www.last.fm/music/Boozoo+Bajou+Feat+Tony+Joe+Whit/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Foggy White
+ 4167090
+ http://www.last.fm/music/Foggy+White/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Quantic Feat Alice Russell
+ 4595356
+ http://www.last.fm/music/Quantic+Feat+Alice+Russell/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Love Archives
+ 3984466
+ http://www.last.fm/music/Love+Archives/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ JJ Burnel
+ 4022592
+ http://www.last.fm/music/JJ+Burnel/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ STRATUS feat ASHA PUTHLI
+ 4125401
+ http://www.last.fm/music/STRATUS+feat+ASHA+PUTHLI/return+to+paradice
+
+
+
+ 0
+
+
+ Reggtae's Paradice
+ Reggtae
+ 3267813
+ http://www.last.fm/music/Reggtae/Reggtae%27s+Paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Tango Fusion Club
+ 3912185
+ http://www.last.fm/music/Tango+Fusion+Club/return+to+paradice
+
+
+
+ 0
+
+
+ return to paradice
+ Alcove Feat Shazz
+ 3973047
+ http://www.last.fm/music/Alcove+Feat+Shazz/return+to+paradice
+
+
+
+ 0
+
+
+
diff --git a/test/data/dcc65d8182a989bdfa29beac543cab3c.xml b/test/data/dcc65d8182a989bdfa29beac543cab3c.xml
new file mode 100644
index 0000000..64e8a84
--- /dev/null
+++ b/test/data/dcc65d8182a989bdfa29beac543cab3c.xml
@@ -0,0 +1,304 @@
+
+
+
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ 1199680000
+ http://www.last.fm/music/Radiohead
+
+
+ Coldplay
+ cc197bad-dc9c-440d-a5b5-d52ba2e14234
+ 1000771456
+ http://www.last.fm/music/Coldplay
+
+
+ Muse
+ 9c9f1380-2516-4fc9-a3e6-f9f61941d090
+ 777053504
+ http://www.last.fm/music/Muse
+
+
+ Placebo
+ 847e8284-8582-4b0e-9c26-b042a4f49e57
+ 574809984
+ http://www.last.fm/music/Placebo
+
+
+ The Killers
+ 95e1ead9-4d31-4808-a7ac-32c3614c116b
+ 549784640
+ http://www.last.fm/music/The+Killers
+
+
+ The Smashing Pumpkins
+ ba0d6274-db14-4ef5-b28d-657ebde1a396
+ 523733376
+ http://www.last.fm/music/The+Smashing+Pumpkins
+
+
+ The Cure
+ 69ee3720-a7cb-4402-b48d-a02c366f2bcf
+ 503786272
+ http://www.last.fm/music/The+Cure
+
+
+ Gorillaz
+ e21857d5-3256-4547-afb3-4b6ded592596
+ 488720000
+ http://www.last.fm/music/Gorillaz
+
+
+ Beck
+ 309c62ba-7a22-4277-9f67-4a162526d18a
+ 474790016
+ http://www.last.fm/music/Beck
+
+
+ Weezer
+ 6fe07aa5-fec0-4eca-a456-f29bff451b04
+ 448279168
+ http://www.last.fm/music/Weezer
+
+
+ Linkin Park
+ f59c5520-5f46-4d2c-b2c4-822eabf53419
+ 435823744
+ http://www.last.fm/music/Linkin+Park
+
+
+ Red Hot Chili Peppers
+ 8bfac288-ccc5-448d-9573-c33ea2aa5c30
+ 428008896
+ http://www.last.fm/music/Red+Hot+Chili+Peppers
+
+
+ Björk
+ 87c5dedd-371d-4a53-9f7f-80522fb7f3cb
+ 400910400
+ http://www.last.fm/music/Bj%C3%B6rk
+
+
+ Incubus
+ e3e0abcd-7671-4482-a9d8-462f5acc9be5
+ 386276928
+ http://www.last.fm/music/Incubus
+
+
+ Snow Patrol
+ a66999a7-ae5c-460e-ba94-1a01143ae847
+ 340135840
+ http://www.last.fm/music/Snow+Patrol
+
+
+ R.E.M.
+ ea4dfa26-f633-4da6-a52a-f49ea4897b58
+ 330725984
+ http://www.last.fm/music/R.E.M.
+
+
+ The White Stripes
+ 11ae9fbb-f3d7-4a47-936f-4c0a04d3b3b5
+ 327514304
+ http://www.last.fm/music/The+White+Stripes
+
+
+ Paramore
+ 44cf61b8-5197-448a-b82b-cef6ee89fac5
+ 317637280
+ http://www.last.fm/music/Paramore
+
+
+ Rage Against the Machine
+ 3798b104-01cb-484c-a3b0-56adc6399b80
+ 302651072
+ http://www.last.fm/music/Rage+Against+the+Machine
+
+
+ The Strokes
+ f181961b-20f7-459e-89de-920ef03c7ed0
+ 302001344
+ http://www.last.fm/music/The+Strokes
+
+
+ Pixies
+ b6b2bb8d-54a9-491f-9607-7b546023b433
+ 301640000
+ http://www.last.fm/music/Pixies
+
+
+ Franz Ferdinand
+ aa7a2827-f74b-473c-bd79-03d065835cf7
+ 298208544
+ http://www.last.fm/music/Franz+Ferdinand
+
+
+ Arctic Monkeys
+ ada7a83c-e3e1-40f1-93f9-3e73dbc9298a
+ 295201792
+ http://www.last.fm/music/Arctic+Monkeys
+
+
+ Foo Fighters
+ 67f66c07-6e61-4026-ade5-7e782fad3a5d
+ 293137984
+ http://www.last.fm/music/Foo+Fighters
+
+
+ Sonic Youth
+ 5cbef01b-cc35-4f52-af7b-d0df0c4f61b9
+ 290270016
+ http://www.last.fm/music/Sonic+Youth
+
+
+ The Smiths
+ 40f5d9e4-2de7-4f2d-ad41-e31a9a9fea27
+ 284569536
+ http://www.last.fm/music/The+Smiths
+
+
+ Jimmy Eat World
+ bbc5b66b-d037-4f26-aecf-0b129e7f876a
+ 283559872
+ http://www.last.fm/music/Jimmy+Eat+World
+
+
+ Death Cab for Cutie
+ 0039c7ae-e1a7-4a7d-9b49-0cbc716821a6
+ 282031712
+ http://www.last.fm/music/Death+Cab+for+Cutie
+
+
+ The Fray
+ 2ddd167f-5b8a-4372-b350-6ad50493bac0
+ 276929984
+ http://www.last.fm/music/The+Fray
+
+
+ System of a Down
+ cc0b7089-c08d-4c10-b6b0-873582c17fd6
+ 274672128
+ http://www.last.fm/music/System+of+a+Down
+
+
+ Oasis
+ 39ab1aed-75e0-4140-bd47-540276886b60
+ 269423040
+ http://www.last.fm/music/Oasis
+
+
+ Keane
+ c7020c6d-cae9-4db3-92a7-e5c561cbad50
+ 261902128
+ http://www.last.fm/music/Keane
+
+
+ Green Day
+ 084308bd-1654-436f-ba03-df6697104e19
+ 257923712
+ http://www.last.fm/music/Green+Day
+
+
+ Bloc Party
+ 8c538f11-c141-4588-8ecb-931083524186
+ 248881408
+ http://www.last.fm/music/Bloc+Party
+
+
+ Maroon 5
+ 0ab49580-c84f-44d4-875f-d83760ea2cfe
+ 248128256
+ http://www.last.fm/music/Maroon+5
+
+
+ Modest Mouse
+ a96ac800-bfcb-412a-8a63-0a98df600700
+ 242365296
+ http://www.last.fm/music/Modest+Mouse
+
+
+ PJ Harvey
+ e795e03d-b5d5-4a5f-834d-162cfb308a2c
+ 237214784
+ http://www.last.fm/music/PJ+Harvey
+
+
+ Cake
+ fa7b9055-3703-473a-8a09-adf2fe031a24
+ 232220000
+ http://www.last.fm/music/Cake
+
+
+ Garbage
+ f9ef7a22-4262-4596-a2a8-1d19345b8e50
+ 227805936
+ http://www.last.fm/music/Garbage
+
+
+ Deftones
+ 7527f6c2-d762-4b88-b5e2-9244f1e34c46
+ 226653072
+ http://www.last.fm/music/Deftones
+
+
+ 30 Seconds to Mars
+ d8354b38-e942-4c89-ba93-29323432abc3
+ 225624288
+ http://www.last.fm/music/30+Seconds+to+Mars
+
+
+ Interpol
+ b23e8a63-8f47-4882-b55b-df2c92ef400e
+ 220641360
+ http://www.last.fm/music/Interpol
+
+
+ The Cranberries
+ c98d40fd-f6cf-4b26-883e-eaa515ee2851
+ 218535216
+ http://www.last.fm/music/The+Cranberries
+
+
+ Nirvana
+ 5b11f4ce-a62d-471e-81fc-a69a8278c7da
+ 216378368
+ http://www.last.fm/music/Nirvana
+
+
+ Fall Out Boy
+ 516cef4d-0718-4007-9939-f9b38af3f784
+ 210719776
+ http://www.last.fm/music/Fall+Out+Boy
+
+
+ Queens of the Stone Age
+ 7dc8f5bd-9d0b-4087-9f73-dc164950bbd8
+ 210162672
+ http://www.last.fm/music/Queens+of+the+Stone+Age
+
+
+ The Flaming Lips
+ 1f43d76f-8edf-44f6-aaf1-b65f05ad9402
+ 208553232
+ http://www.last.fm/music/The+Flaming+Lips
+
+
+ Nick Cave and the Bad Seeds
+
+ 205368304
+ http://www.last.fm/music/Nick+Cave+and+the+Bad+Seeds
+
+
+ Alanis Morissette
+ 4bdcee62-4902-4773-8cd1-e252e2e31225
+ 201217664
+ http://www.last.fm/music/Alanis+Morissette
+
+
+ Yeah Yeah Yeahs
+ 584c04d2-4acc-491b-8a0a-e63133f4bfc4
+ 199289168
+ http://www.last.fm/music/Yeah+Yeah+Yeahs
+
+
diff --git a/test/data/eb1f6d9e67c9945bfeafcceb419cbcf7.xml b/test/data/eb1f6d9e67c9945bfeafcceb419cbcf7.xml
new file mode 100644
index 0000000..2e4f20a
--- /dev/null
+++ b/test/data/eb1f6d9e67c9945bfeafcceb419cbcf7.xml
@@ -0,0 +1,749 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/data/fc7e23db0257cbdb67bdd63db58489f5.xml b/test/data/fc7e23db0257cbdb67bdd63db58489f5.xml
new file mode 100644
index 0000000..131512d
--- /dev/null
+++ b/test/data/fc7e23db0257cbdb67bdd63db58489f5.xml
@@ -0,0 +1,705 @@
+
+
+
+
+
+ OK Computer
+ 174
+ fba5f8fe-c6c8-4511-8562-c9febf482674
+ http://www.last.fm/music/Radiohead/OK+Computer
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/11396311.jpg
+ http://userserve-ak.last.fm/serve/64s/11396311.jpg
+ http://userserve-ak.last.fm/serve/126/11396311.jpg
+
+
+ Nevermind
+ 105
+ c12262e2-7185-4942-87ee-da27ddd45ddf
+ http://www.last.fm/music/Nirvana/Nevermind
+
+ Nirvana
+ 5b11f4ce-a62d-471e-81fc-a69a8278c7da
+ http://www.last.fm/music/Nirvana
+
+ http://userserve-ak.last.fm/serve/34s/8590151.jpg
+ http://userserve-ak.last.fm/serve/64s/8590151.jpg
+ http://userserve-ak.last.fm/serve/126/8590151.jpg
+
+
+ In Rainbows
+ 97
+
+ http://www.last.fm/music/Radiohead/In+Rainbows
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/12441259.jpg
+ http://userserve-ak.last.fm/serve/64s/12441259.jpg
+ http://userserve-ak.last.fm/serve/126/12441259.jpg
+
+
+ Absolution
+ 96
+ a0a2b395-7989-4ec7-99f9-9bc9425c53b7
+ http://www.last.fm/music/Muse/Absolution
+
+ Muse
+ 9c9f1380-2516-4fc9-a3e6-f9f61941d090
+ http://www.last.fm/music/Muse
+
+ http://userserve-ak.last.fm/serve/34s/8600369.jpg
+ http://userserve-ak.last.fm/serve/64s/8600369.jpg
+ http://userserve-ak.last.fm/serve/126/8600369.jpg
+
+
+ Kid A
+ 91
+ e1bdf797-8b89-4d4c-8986-bcb0974d9726
+ http://www.last.fm/music/Radiohead/Kid+A
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/11408327.jpg
+ http://userserve-ak.last.fm/serve/64s/11408327.jpg
+ http://userserve-ak.last.fm/serve/126/11408327.jpg
+
+
+ InTRO
+ 90
+
+ http://www.last.fm/music/Bruno+Sanfilippo/InTRO
+
+ Bruno Sanfilippo
+ 8716f569-77ce-4044-a578-26c2f142c67a
+ http://www.last.fm/music/Bruno+Sanfilippo
+
+ http://userserve-ak.last.fm/serve/34s/9775925.jpg
+ http://userserve-ak.last.fm/serve/64s/9775925.jpg
+ http://userserve-ak.last.fm/serve/126/9775925.jpg
+
+
+ A Long And Ugly Road (European edition)
+ 88
+
+ http://www.last.fm/music/June+Madrona/A+Long+And+Ugly+Road+%28European+edition%29
+
+ June Madrona
+
+ http://www.last.fm/music/June+Madrona
+
+ http://userserve-ak.last.fm/serve/34s/9968601.jpg
+ http://userserve-ak.last.fm/serve/64s/9968601.jpg
+ http://userserve-ak.last.fm/serve/126/9968601.jpg
+
+
+ The Bends
+ 71
+ c9bd3da3-ee62-4c3e-a48e-a1b20ae7d0ed
+ http://www.last.fm/music/Radiohead/The+Bends
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/14192921.jpg
+ http://userserve-ak.last.fm/serve/64s/14192921.jpg
+ http://userserve-ak.last.fm/serve/126/14192921.jpg
+
+
+ A Rush of Blood to the Head
+ 70
+ b83b32dd-aa1a-4f18-a5af-00e418041617
+ http://www.last.fm/music/Coldplay/A+Rush+of+Blood+to+the+Head
+
+ Coldplay
+ cc197bad-dc9c-440d-a5b5-d52ba2e14234
+ http://www.last.fm/music/Coldplay
+
+ http://userserve-ak.last.fm/serve/34s/14245401.jpg
+ http://userserve-ak.last.fm/serve/64s/14245401.jpg
+ http://userserve-ak.last.fm/serve/126/14245401.jpg
+
+
+ Black Holes And Revelations
+ 70
+
+ http://www.last.fm/music/Muse/Black+Holes+And+Revelations
+
+ Muse
+ 9c9f1380-2516-4fc9-a3e6-f9f61941d090
+ http://www.last.fm/music/Muse
+
+ http://userserve-ak.last.fm/serve/34s/8855843.jpg
+ http://userserve-ak.last.fm/serve/64s/8855843.jpg
+ http://userserve-ak.last.fm/serve/126/8855843.jpg
+
+
+ Franz Ferdinand
+ 67
+ 35fd1780-fe47-4e69-a74d-1fd8a0f07dd5
+ http://www.last.fm/music/Franz+Ferdinand/Franz+Ferdinand
+
+ Franz Ferdinand
+ aa7a2827-f74b-473c-bd79-03d065835cf7
+ http://www.last.fm/music/Franz+Ferdinand
+
+ http://userserve-ak.last.fm/serve/34s/19815833.jpg
+ http://userserve-ak.last.fm/serve/64s/19815833.jpg
+ http://userserve-ak.last.fm/serve/126/19815833.jpg
+
+
+ Hapless
+ 65
+
+ http://www.last.fm/music/Flowers+From+The+Man+Who+Shot+Your+Cousin/Hapless
+
+ Flowers From The Man Who Shot Your Cousin
+ 84fd990d-7889-406c-845c-5af0cfb7c4a5
+ http://www.last.fm/music/Flowers+From+The+Man+Who+Shot+Your+Cousin
+
+ http://userserve-ak.last.fm/serve/34s/9585953.jpg
+ http://userserve-ak.last.fm/serve/64s/9585953.jpg
+ http://userserve-ak.last.fm/serve/126/9585953.jpg
+
+
+ Fallen
+ 60
+ afc4be52-b92e-4a6e-99e4-decde16d7ee7
+ http://www.last.fm/music/Evanescence/Fallen
+
+ Evanescence
+ f4a31f0a-51dd-4fa7-986d-3095c40c5ed9
+ http://www.last.fm/music/Evanescence
+
+ http://userserve-ak.last.fm/serve/34s/19743737.jpg
+ http://userserve-ak.last.fm/serve/64s/19743737.jpg
+ http://userserve-ak.last.fm/serve/126/19743737.jpg
+
+
+ Demon Days
+ 60
+ be144352-0bad-4dd6-b4e7-95e5ef43522a
+ http://www.last.fm/music/Gorillaz/Demon+Days
+
+ Gorillaz
+ e21857d5-3256-4547-afb3-4b6ded592596
+ http://www.last.fm/music/Gorillaz
+
+ http://userserve-ak.last.fm/serve/34s/11453045.jpg
+ http://userserve-ak.last.fm/serve/64s/11453045.jpg
+ http://userserve-ak.last.fm/serve/126/11453045.jpg
+
+
+ Songs & Circuits
+ 60
+
+ http://www.last.fm/music/Capsula/Songs%2B%2526%2BCircuits
+
+ Capsula
+ 2209c9f8-7063-4f34-8227-c8c76a9b2e12
+ http://www.last.fm/music/Capsula
+
+ http://userserve-ak.last.fm/serve/34s/10311065.jpg
+ http://userserve-ak.last.fm/serve/64s/10311065.jpg
+ http://userserve-ak.last.fm/serve/126/10311065.jpg
+
+
+ Odelay
+ 59
+ 99da9256-3e47-453b-b33a-f7c4c36012bf
+ http://www.last.fm/music/Beck/Odelay
+
+ Beck
+ 309c62ba-7a22-4277-9f67-4a162526d18a
+ http://www.last.fm/music/Beck
+
+ http://userserve-ak.last.fm/serve/34s/8593437.jpg
+ http://userserve-ak.last.fm/serve/64s/8593437.jpg
+ http://userserve-ak.last.fm/serve/126/8593437.jpg
+
+
+ Hail to the Thief
+ 58
+ f470c26b-0beb-44d0-b49e-4caa02379b76
+ http://www.last.fm/music/Radiohead/Hail+to+the+Thief
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/11380865.jpg
+ http://userserve-ak.last.fm/serve/64s/11380865.jpg
+ http://userserve-ak.last.fm/serve/126/11380865.jpg
+
+
+ Californication
+ 56
+ a5429e73-586a-4247-a6e2-4bde73205069
+ http://www.last.fm/music/Red+Hot+Chili+Peppers/Californication
+
+ Red Hot Chili Peppers
+ 8bfac288-ccc5-448d-9573-c33ea2aa5c30
+ http://www.last.fm/music/Red+Hot+Chili+Peppers
+
+ http://userserve-ak.last.fm/serve/34s/8593509.jpg
+ http://userserve-ak.last.fm/serve/64s/8593509.jpg
+ http://userserve-ak.last.fm/serve/126/8593509.jpg
+
+
+ Stadium Arcadium
+ 53
+
+ http://www.last.fm/music/Red+Hot+Chili+Peppers/Stadium+Arcadium
+
+ Red Hot Chili Peppers
+ 8bfac288-ccc5-448d-9573-c33ea2aa5c30
+ http://www.last.fm/music/Red+Hot+Chili+Peppers
+
+ http://userserve-ak.last.fm/serve/34s/8810061.jpg
+ http://userserve-ak.last.fm/serve/64s/8810061.jpg
+ http://userserve-ak.last.fm/serve/126/8810061.jpg
+
+
+ Garbage
+ 52
+ 6af59248-2aa1-413d-88a3-1f08e9e14222
+ http://www.last.fm/music/Garbage/Garbage
+
+ Garbage
+ f9ef7a22-4262-4596-a2a8-1d19345b8e50
+ http://www.last.fm/music/Garbage
+
+ http://userserve-ak.last.fm/serve/34s/8593715.jpg
+ http://userserve-ak.last.fm/serve/64s/8593715.jpg
+ http://userserve-ak.last.fm/serve/126/8593715.jpg
+
+
+ Folks Pop In at the Waterhouse
+ 52
+
+ http://www.last.fm/music/Various+Artists/Folks+Pop+In+at+the+Waterhouse
+
+ Various Artists
+ 89ad4ac3-39f7-470e-963a-56509c546377
+ http://www.last.fm/music/Various+Artists
+
+ http://userserve-ak.last.fm/serve/34s/9628021.jpg
+ http://userserve-ak.last.fm/serve/64s/9628021.jpg
+ http://userserve-ak.last.fm/serve/126/9628021.jpg
+
+
+ Hot Fuss
+ 51
+ 3127c6af-617f-4d82-9002-6cc74ab8648d
+ http://www.last.fm/music/The+Killers/Hot+Fuss
+
+ The Killers
+ 95e1ead9-4d31-4808-a7ac-32c3614c116b
+ http://www.last.fm/music/The+Killers
+
+ http://userserve-ak.last.fm/serve/34s/8634917.jpg
+ http://userserve-ak.last.fm/serve/64s/8634917.jpg
+ http://userserve-ak.last.fm/serve/126/8634917.jpg
+
+
+ Origin of Symmetry
+ 49
+ 2a7a193e-c148-48fa-a39c-8d17e5cf3443
+ http://www.last.fm/music/Muse/Origin+of+Symmetry
+
+ Muse
+ 9c9f1380-2516-4fc9-a3e6-f9f61941d090
+ http://www.last.fm/music/Muse
+
+ http://userserve-ak.last.fm/serve/34s/8634859.jpg
+ http://userserve-ak.last.fm/serve/64s/8634859.jpg
+ http://userserve-ak.last.fm/serve/126/8634859.jpg
+
+
+ Begin to Hope
+ 49
+
+ http://www.last.fm/music/Regina+Spektor/Begin+to+Hope
+
+ Regina Spektor
+ fbb375f9-48bb-4635-824e-4120273b3ba7
+ http://www.last.fm/music/Regina+Spektor
+
+ http://userserve-ak.last.fm/serve/34s/8840795.jpg
+ http://userserve-ak.last.fm/serve/64s/8840795.jpg
+ http://userserve-ak.last.fm/serve/126/8840795.jpg
+
+
+ Alpha Generation
+ 48
+
+ http://www.last.fm/music/Olspur/Alpha+Generation
+
+ Olspur
+ a2eed440-6894-44d2-ae9b-d6a3748d139e
+ http://www.last.fm/music/Olspur
+
+ http://userserve-ak.last.fm/serve/34s/13282459.jpg
+ http://userserve-ak.last.fm/serve/64s/13282459.jpg
+ http://userserve-ak.last.fm/serve/126/13282459.jpg
+
+
+ Minutes To Midnight
+ 48
+
+ http://www.last.fm/music/Linkin+Park/Minutes+To+Midnight
+
+ Linkin Park
+ f59c5520-5f46-4d2c-b2c4-822eabf53419
+ http://www.last.fm/music/Linkin+Park
+
+ http://userserve-ak.last.fm/serve/34s/9150945.jpg
+ http://userserve-ak.last.fm/serve/64s/9150945.jpg
+ http://userserve-ak.last.fm/serve/126/9150945.jpg
+
+
+ Goodbye Different Oceans
+ 48
+
+ http://www.last.fm/music/Christina+Antipa/Goodbye+Different+Oceans
+
+ Christina Antipa
+
+ http://www.last.fm/music/Christina+Antipa
+
+ http://userserve-ak.last.fm/serve/34s/9628345.jpg
+ http://userserve-ak.last.fm/serve/64s/9628345.jpg
+ http://userserve-ak.last.fm/serve/126/9628345.jpg
+
+
+ The Winged Life (European edition)
+ 48
+
+ http://www.last.fm/music/June+Madrona/The+Winged+Life+%28European+edition%29
+
+ June Madrona
+
+ http://www.last.fm/music/June+Madrona
+
+ http://userserve-ak.last.fm/serve/34s/10119031.jpg
+ http://userserve-ak.last.fm/serve/64s/10119031.jpg
+ http://userserve-ak.last.fm/serve/126/10119031.jpg
+
+
+ Rage Against the Machine
+ 47
+ e956c901-acb7-48d6-9dc6-389a5f91f372
+ http://www.last.fm/music/Rage+Against+the+Machine/Rage+Against+the+Machine
+
+ Rage Against the Machine
+ 3798b104-01cb-484c-a3b0-56adc6399b80
+ http://www.last.fm/music/Rage+Against+the+Machine
+
+ http://userserve-ak.last.fm/serve/34s/19784479.jpg
+ http://userserve-ak.last.fm/serve/64s/19784479.jpg
+ http://userserve-ak.last.fm/serve/126/19784479.jpg
+
+
+ Parachutes
+ 47
+ 8fb50f96-279e-4d44-92aa-d49ea56f5c08
+ http://www.last.fm/music/Coldplay/Parachutes
+
+ Coldplay
+ cc197bad-dc9c-440d-a5b5-d52ba2e14234
+ http://www.last.fm/music/Coldplay
+
+ http://userserve-ak.last.fm/serve/34s/14225619.jpg
+ http://userserve-ak.last.fm/serve/64s/14225619.jpg
+ http://userserve-ak.last.fm/serve/126/14225619.jpg
+
+
+ Showbiz
+ 47
+ 4b812512-5dc1-4f61-9104-7d3289390395
+ http://www.last.fm/music/Muse/Showbiz
+
+ Muse
+ 9c9f1380-2516-4fc9-a3e6-f9f61941d090
+ http://www.last.fm/music/Muse
+
+ http://userserve-ak.last.fm/serve/34s/8597641.jpg
+ http://userserve-ak.last.fm/serve/64s/8597641.jpg
+ http://userserve-ak.last.fm/serve/126/8597641.jpg
+
+
+ Chapel Hill
+ 47
+
+ http://www.last.fm/music/My+Broken+Frame/Chapel+Hill
+
+ My Broken Frame
+
+ http://www.last.fm/music/My+Broken+Frame
+
+ http://userserve-ak.last.fm/serve/34s/11912025.jpg
+ http://userserve-ak.last.fm/serve/64s/11912025.jpg
+ http://userserve-ak.last.fm/serve/126/11912025.jpg
+
+
+ ad libitum
+ 46
+
+ http://www.last.fm/music/Bruno+Sanfilippo/ad+libitum
+
+ Bruno Sanfilippo
+ 8716f569-77ce-4044-a578-26c2f142c67a
+ http://www.last.fm/music/Bruno+Sanfilippo
+
+ http://userserve-ak.last.fm/serve/34s/11990039.jpg
+ http://userserve-ak.last.fm/serve/64s/11990039.jpg
+ http://userserve-ak.last.fm/serve/126/11990039.jpg
+
+
+ Elephant
+ 45
+ 9bf86596-1ef0-4bd4-8f5e-bb205a77b075
+ http://www.last.fm/music/The+White+Stripes/Elephant
+
+ The White Stripes
+ 11ae9fbb-f3d7-4a47-936f-4c0a04d3b3b5
+ http://www.last.fm/music/The+White+Stripes
+
+ http://userserve-ak.last.fm/serve/34s/8594965.jpg
+ http://userserve-ak.last.fm/serve/64s/8594965.jpg
+ http://userserve-ak.last.fm/serve/126/8594965.jpg
+
+
+ Pablo Honey
+ 44
+ 661e10a1-8a01-4201-8f1b-e3a42684739d
+ http://www.last.fm/music/Radiohead/Pablo+Honey
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/11498407.jpg
+ http://userserve-ak.last.fm/serve/64s/11498407.jpg
+ http://userserve-ak.last.fm/serve/126/11498407.jpg
+
+
+ Post
+ 44
+ 095b8e2c-b4b9-45e7-b393-0f8e60062a68
+ http://www.last.fm/music/Bj%C3%B6rk/Post
+
+ Björk
+ 87c5dedd-371d-4a53-9f7f-80522fb7f3cb
+ http://www.last.fm/music/Bj%C3%B6rk
+
+ http://userserve-ak.last.fm/serve/34s/8681249.jpg
+ http://userserve-ak.last.fm/serve/64s/8681249.jpg
+ http://userserve-ak.last.fm/serve/126/8681249.jpg
+
+
+ Meds
+ 44
+ d67c1834-59d7-4422-82b2-b1de8582fc60
+ http://www.last.fm/music/Placebo/Meds
+
+ Placebo
+ 847e8284-8582-4b0e-9c26-b042a4f49e57
+ http://www.last.fm/music/Placebo
+
+ http://images.amazon.com/images/P/B000EBEHR2.01.MZZZZZZZ.jpg
+ http://images.amazon.com/images/P/B000EBEHR2.01.MZZZZZZZ.jpg
+ http://images.amazon.com/images/P/B000EBEHR2.01.MZZZZZZZ.jpg
+
+
+ ER-1035 on Elefant Records
+ 44
+
+ http://www.last.fm/music/Loons/ER-1035+on+Elefant+Records
+
+ Loons
+ 7319c7fd-396c-4a3c-bd02-eeff759b4c2d
+ http://www.last.fm/music/Loons
+
+ http://userserve-ak.last.fm/serve/34s/11913479.jpg
+ http://userserve-ak.last.fm/serve/64s/11913479.jpg
+ http://userserve-ak.last.fm/serve/126/11913479.jpg
+
+
+ Amnesiac
+ 42
+ 530abf13-be96-4467-b8d5-bdbaa56a1b12
+ http://www.last.fm/music/Radiohead/Amnesiac
+
+ Radiohead
+ a74b1b7f-71a5-4011-9441-d0b5e4122711
+ http://www.last.fm/music/Radiohead
+
+ http://userserve-ak.last.fm/serve/34s/11487267.jpg
+ http://userserve-ak.last.fm/serve/64s/11487267.jpg
+ http://userserve-ak.last.fm/serve/126/11487267.jpg
+
+
+ Morning View
+ 42
+ f1edc40a-a2a0-4396-b088-3714f964e11b
+ http://www.last.fm/music/Incubus/Morning+View
+
+ Incubus
+ e3e0abcd-7671-4482-a9d8-462f5acc9be5
+ http://www.last.fm/music/Incubus
+
+ http://userserve-ak.last.fm/serve/34s/19681051.jpg
+ http://userserve-ak.last.fm/serve/64s/19681051.jpg
+ http://userserve-ak.last.fm/serve/126/19681051.jpg
+
+
+ X&Y
+ 42
+ a45b3f71-8ff1-4498-8a7a-e2d18a2f6aa8
+ http://www.last.fm/music/Coldplay/X%2526Y
+
+ Coldplay
+ cc197bad-dc9c-440d-a5b5-d52ba2e14234
+ http://www.last.fm/music/Coldplay
+
+ http://images.amazon.com/images/P/B0006L16N8.01.MZZZZZZZ.jpg
+ http://images.amazon.com/images/P/B0006L16N8.01.MZZZZZZZ.jpg
+ http://images.amazon.com/images/P/B0006L16N8.01.MZZZZZZZ.jpg
+
+
+ Momentum
+ 42
+
+ http://www.last.fm/music/Furiosa+Curiosa/Momentum
+
+ Furiosa Curiosa
+
+ http://www.last.fm/music/Furiosa+Curiosa
+
+ http://userserve-ak.last.fm/serve/34s/10890403.jpg
+ http://userserve-ak.last.fm/serve/64s/10890403.jpg
+ http://userserve-ak.last.fm/serve/126/10890403.jpg
+
+
+ Jagged Little Pill
+ 41
+ 3b58a643-6152-4785-bc35-7bb7a08f8dad
+ http://www.last.fm/music/Alanis+Morissette/Jagged+Little+Pill
+
+ Alanis Morissette
+ 4bdcee62-4902-4773-8cd1-e252e2e31225
+ http://www.last.fm/music/Alanis+Morissette
+
+ http://userserve-ak.last.fm/serve/34s/8593421.jpg
+ http://userserve-ak.last.fm/serve/64s/8593421.jpg
+ http://userserve-ak.last.fm/serve/126/8593421.jpg
+
+
+ Blood Sugar Sex Magik
+ 39
+ 8b69a5f2-d3de-4df0-ae61-54b2227862c8
+ http://www.last.fm/music/Red+Hot+Chili+Peppers/Blood+Sugar+Sex+Magik
+
+ Red Hot Chili Peppers
+ 8bfac288-ccc5-448d-9573-c33ea2aa5c30
+ http://www.last.fm/music/Red+Hot+Chili+Peppers
+
+ http://userserve-ak.last.fm/serve/34s/8590485.jpg
+ http://userserve-ak.last.fm/serve/64s/8590485.jpg
+ http://userserve-ak.last.fm/serve/126/8590485.jpg
+
+
+ Siamese Dream
+ 39
+ 60c4b799-d564-47d5-a77f-9f95c03fdf8e
+ http://www.last.fm/music/The+Smashing+Pumpkins/Siamese+Dream
+
+ The Smashing Pumpkins
+ ba0d6274-db14-4ef5-b28d-657ebde1a396
+ http://www.last.fm/music/The+Smashing+Pumpkins
+
+ http://userserve-ak.last.fm/serve/34s/15185749.jpg
+ http://userserve-ak.last.fm/serve/64s/15185749.jpg
+ http://userserve-ak.last.fm/serve/126/15185749.jpg
+
+
+ In Utero
+ 39
+ 1cbfd7e6-a888-4184-924d-e59a9f0c621c
+ http://www.last.fm/music/Nirvana/In+Utero
+
+ Nirvana
+ 5b11f4ce-a62d-471e-81fc-a69a8278c7da
+ http://www.last.fm/music/Nirvana
+
+ http://userserve-ak.last.fm/serve/34s/8624587.jpg
+ http://userserve-ak.last.fm/serve/64s/8624587.jpg
+ http://userserve-ak.last.fm/serve/126/8624587.jpg
+
+
+ By the Way
+ 38
+ 3f66063a-e91b-4025-9582-1adb1695123b
+ http://www.last.fm/music/Red+Hot+Chili+Peppers/By+the+Way
+
+ Red Hot Chili Peppers
+ 8bfac288-ccc5-448d-9573-c33ea2aa5c30
+ http://www.last.fm/music/Red+Hot+Chili+Peppers
+
+ http://userserve-ak.last.fm/serve/34s/8593331.jpg
+ http://userserve-ak.last.fm/serve/64s/8593331.jpg
+ http://userserve-ak.last.fm/serve/126/8593331.jpg
+
+
+ What Would the Community Think
+ 38
+ cb552dc7-b0fe-4bcd-b864-1b3940baee8c
+ http://www.last.fm/music/Cat+Power/What+Would+the+Community+Think
+
+ Cat Power
+ 05755bf1-380c-487f-983f-d1a02401fa28
+ http://www.last.fm/music/Cat+Power
+
+ http://userserve-ak.last.fm/serve/34s/19142719.jpg
+ http://userserve-ak.last.fm/serve/64s/19142719.jpg
+ http://userserve-ak.last.fm/serve/126/19142719.jpg
+
+
+ Guero
+ 38
+ 705ed05b-074d-4e14-91dc-09e5a0b5b0f6
+ http://www.last.fm/music/Beck/Guero
+
+ Beck
+ 309c62ba-7a22-4277-9f67-4a162526d18a
+ http://www.last.fm/music/Beck
+
+ http://userserve-ak.last.fm/serve/34s/8672877.jpg
+ http://userserve-ak.last.fm/serve/64s/8672877.jpg
+ http://userserve-ak.last.fm/serve/126/8672877.jpg
+
+
+ Gorillaz
+ 38
+ d6b71621-f939-4abd-b99c-6b57d86e7f95
+ http://www.last.fm/music/Gorillaz/Gorillaz
+
+ Gorillaz
+ e21857d5-3256-4547-afb3-4b6ded592596
+ http://www.last.fm/music/Gorillaz
+
+ http://images.amazon.com/images/P/B00005LMBK.01.MZZZZZZZ.jpg
+ http://images.amazon.com/images/P/B00005LMBK.01.MZZZZZZZ.jpg
+ http://images.amazon.com/images/P/B00005LMBK.01.MZZZZZZZ.jpg
+
+
diff --git a/test/data/feef4cd6eca1984e8d5cdfe7a79de6a2.xml b/test/data/feef4cd6eca1984e8d5cdfe7a79de6a2.xml
new file mode 100644
index 0000000..28d3a4a
--- /dev/null
+++ b/test/data/feef4cd6eca1984e8d5cdfe7a79de6a2.xml
@@ -0,0 +1,1254 @@
+
+
+
+
+ rock
+ 2118857
+ www.last.fm/tag/rock
+
+
+ seen live
+ 1222494
+ www.last.fm/tag/seen%20live
+
+
+ alternative
+ 1073596
+ www.last.fm/tag/alternative
+
+
+ indie
+ 991944
+ www.last.fm/tag/indie
+
+
+ electronic
+ 866939
+ www.last.fm/tag/electronic
+
+
+ pop
+ 774329
+ www.last.fm/tag/pop
+
+
+ metal
+ 626505
+ www.last.fm/tag/metal
+
+
+ female vocalists
+ 525080
+ www.last.fm/tag/female%20vocalists
+
+
+ alternative rock
+ 495568
+ www.last.fm/tag/alternative%20rock
+
+
+ classic rock
+ 489738
+ www.last.fm/tag/classic%20rock
+
+
+ punk
+ 478922
+ www.last.fm/tag/punk
+
+
+ jazz
+ 472753
+ www.last.fm/tag/jazz
+
+
+ indie rock
+ 431513
+ www.last.fm/tag/indie%20rock
+
+
+ electronica
+ 360425
+ www.last.fm/tag/electronica
+
+
+ folk
+ 357002
+ www.last.fm/tag/folk
+
+
+ singer-songwriter
+ 343099
+ www.last.fm/tag/singer-songwriter
+
+
+ ambient
+ 332989
+ www.last.fm/tag/ambient
+
+
+ hard rock
+ 328036
+ www.last.fm/tag/hard%20rock
+
+
+ hip-hop
+ 327684
+ www.last.fm/tag/hip-hop
+
+
+ experimental
+ 319813
+ www.last.fm/tag/experimental
+
+
+ dance
+ 318086
+ www.last.fm/tag/dance
+
+
+ 80s
+ 304206
+ www.last.fm/tag/80s
+
+
+ black metal
+ 298318
+ www.last.fm/tag/black%20metal
+
+
+ hardcore
+ 294136
+ www.last.fm/tag/hardcore
+
+
+ death metal
+ 292244
+ www.last.fm/tag/death%20metal
+
+
+ progressive rock
+ 284774
+ www.last.fm/tag/progressive%20rock
+
+
+ heavy metal
+ 270885
+ www.last.fm/tag/heavy%20metal
+
+
+ chillout
+ 267716
+ www.last.fm/tag/chillout
+
+
+ industrial
+ 253201
+ www.last.fm/tag/industrial
+
+
+ punk rock
+ 250632
+ www.last.fm/tag/punk%20rock
+
+
+ instrumental
+ 247643
+ www.last.fm/tag/instrumental
+
+
+ british
+ 246211
+ www.last.fm/tag/british
+
+
+ soundtrack
+ 240885
+ www.last.fm/tag/soundtrack
+
+
+ emo
+ 227602
+ www.last.fm/tag/emo
+
+
+ soul
+ 210893
+ www.last.fm/tag/soul
+
+
+ favorites
+ 202753
+ www.last.fm/tag/favorites
+
+
+ blues
+ 198059
+ www.last.fm/tag/blues
+
+
+ classical
+ 197091
+ www.last.fm/tag/classical
+
+
+ rap
+ 196925
+ www.last.fm/tag/rap
+
+
+ 90s
+ 195526
+ www.last.fm/tag/90s
+
+
+ thrash metal
+ 193671
+ www.last.fm/tag/thrash%20metal
+
+
+ japanese
+ 192998
+ www.last.fm/tag/japanese
+
+
+ metalcore
+ 189027
+ www.last.fm/tag/metalcore
+
+
+ trance
+ 186681
+ www.last.fm/tag/trance
+
+
+ country
+ 178452
+ www.last.fm/tag/country
+
+
+ progressive metal
+ 174687
+ www.last.fm/tag/progressive%20metal
+
+
+ power metal
+ 170491
+ www.last.fm/tag/power%20metal
+
+
+ reggae
+ 170017
+ www.last.fm/tag/reggae
+
+
+ acoustic
+ 169951
+ www.last.fm/tag/acoustic
+
+
+ hip hop
+ 165883
+ www.last.fm/tag/hip%20hop
+
+
+ melodic death metal
+ 163249
+ www.last.fm/tag/melodic%20death%20metal
+
+
+ indie pop
+ 160350
+ www.last.fm/tag/indie%20pop
+
+
+ psychedelic
+ 157350
+ www.last.fm/tag/psychedelic
+
+
+ trip-hop
+ 157327
+ www.last.fm/tag/trip-hop
+
+
+ post-rock
+ 154862
+ www.last.fm/tag/post-rock
+
+
+ new wave
+ 154836
+ www.last.fm/tag/new%20wave
+
+
+ funk
+ 153673
+ www.last.fm/tag/funk
+
+
+ electro
+ 150659
+ www.last.fm/tag/electro
+
+
+ techno
+ 148364
+ www.last.fm/tag/techno
+
+
+ house
+ 145385
+ www.last.fm/tag/house
+
+
+ german
+ 140873
+ www.last.fm/tag/german
+
+
+ britpop
+ 136895
+ www.last.fm/tag/britpop
+
+
+ love
+ 133634
+ www.last.fm/tag/love
+
+
+ gothic metal
+ 130437
+ www.last.fm/tag/gothic%20metal
+
+
+ albums i own
+ 129517
+ www.last.fm/tag/albums%20i%20own
+
+
+ grunge
+ 126215
+ www.last.fm/tag/grunge
+
+
+ ska
+ 123973
+ www.last.fm/tag/ska
+
+
+ rnb
+ 123504
+ www.last.fm/tag/rnb
+
+
+ american
+ 122533
+ www.last.fm/tag/american
+
+
+ 00s
+ 121302
+ www.last.fm/tag/00s
+
+
+ beautiful
+ 120424
+ www.last.fm/tag/beautiful
+
+
+ gothic
+ 120112
+ www.last.fm/tag/gothic
+
+
+ post-punk
+ 119713
+ www.last.fm/tag/post-punk
+
+
+ downtempo
+ 119327
+ www.last.fm/tag/downtempo
+
+
+ 70s
+ 119042
+ www.last.fm/tag/70s
+
+
+ mellow
+ 117965
+ www.last.fm/tag/mellow
+
+
+ screamo
+ 115454
+ www.last.fm/tag/screamo
+
+
+ piano
+ 115239
+ www.last.fm/tag/piano
+
+
+ chill
+ 114831
+ www.last.fm/tag/chill
+
+
+ 60s
+ 112228
+ www.last.fm/tag/60s
+
+
+ doom metal
+ 109461
+ www.last.fm/tag/doom%20metal
+
+
+ j-rock
+ 101504
+ www.last.fm/tag/j-rock
+
+
+ french
+ 101457
+ www.last.fm/tag/french
+
+
+ awesome
+ 98333
+ www.last.fm/tag/awesome
+
+
+ guitar
+ 97982
+ www.last.fm/tag/guitar
+
+
+ idm
+ 97800
+ www.last.fm/tag/idm
+
+
+ finnish
+ 97227
+ www.last.fm/tag/finnish
+
+
+ swedish
+ 95829
+ www.last.fm/tag/swedish
+
+
+ symphonic metal
+ 93321
+ www.last.fm/tag/symphonic%20metal
+
+
+ favourites
+ 92368
+ www.last.fm/tag/favourites
+
+
+ nu metal
+ 92341
+ www.last.fm/tag/nu%20metal
+
+
+ male vocalists
+ 90303
+ www.last.fm/tag/male%20vocalists
+
+
+ oldies
+ 89593
+ www.last.fm/tag/oldies
+
+
+ progressive
+ 88109
+ www.last.fm/tag/progressive
+
+
+ female vocalist
+ 87461
+ www.last.fm/tag/female%20vocalist
+
+
+ grindcore
+ 87309
+ www.last.fm/tag/grindcore
+
+
+ j-pop
+ 87094
+ www.last.fm/tag/j-pop
+
+
+ folk metal
+ 86015
+ www.last.fm/tag/folk%20metal
+
+
+ canadian
+ 85159
+ www.last.fm/tag/canadian
+
+
+ lounge
+ 83887
+ www.last.fm/tag/lounge
+
+
+ ebm
+ 80509
+ www.last.fm/tag/ebm
+
+
+ polish
+ 80185
+ www.last.fm/tag/polish
+
+
+ world
+ 79922
+ www.last.fm/tag/world
+
+
+ synthpop
+ 78927
+ www.last.fm/tag/synthpop
+
+
+ drum and bass
+ 77961
+ www.last.fm/tag/drum%20and%20bass
+
+
+ favorite
+ 77683
+ www.last.fm/tag/favorite
+
+
+ female
+ 77042
+ www.last.fm/tag/female
+
+
+ post-hardcore
+ 73514
+ www.last.fm/tag/post-hardcore
+
+
+ pop punk
+ 72716
+ www.last.fm/tag/pop%20punk
+
+
+ cover
+ 72685
+ www.last.fm/tag/cover
+
+
+ pop rock
+ 71648
+ www.last.fm/tag/pop%20rock
+
+
+ darkwave
+ 71140
+ www.last.fm/tag/darkwave
+
+
+ minimal
+ 70792
+ www.last.fm/tag/minimal
+
+
+ latin
+ 69587
+ www.last.fm/tag/latin
+
+
+ new age
+ 69072
+ www.last.fm/tag/new%20age
+
+
+ noise
+ 67554
+ www.last.fm/tag/noise
+
+
+ industrial metal
+ 66081
+ www.last.fm/tag/industrial%20metal
+
+
+ dark ambient
+ 64868
+ www.last.fm/tag/dark%20ambient
+
+
+ russian
+ 63657
+ www.last.fm/tag/russian
+
+
+ anime
+ 62687
+ www.last.fm/tag/anime
+
+
+ brutal death metal
+ 62053
+ www.last.fm/tag/brutal%20death%20metal
+
+
+ favourite
+ 61559
+ www.last.fm/tag/favourite
+
+
+ avant-garde
+ 60828
+ www.last.fm/tag/avant-garde
+
+
+ sexy
+ 59854
+ www.last.fm/tag/sexy
+
+
+ gothic rock
+ 59496
+ www.last.fm/tag/gothic%20rock
+
+
+ dub
+ 58471
+ www.last.fm/tag/dub
+
+
+ alternative metal
+ 57522
+ www.last.fm/tag/alternative%20metal
+
+
+ psychedelic rock
+ 57267
+ www.last.fm/tag/psychedelic%20rock
+
+
+ celtic
+ 56958
+ www.last.fm/tag/celtic
+
+
+ jpop
+ 56423
+ www.last.fm/tag/jpop
+
+
+ cool
+ 56404
+ www.last.fm/tag/cool
+
+
+ disco
+ 55482
+ www.last.fm/tag/disco
+
+
+ easy listening
+ 55321
+ www.last.fm/tag/easy%20listening
+
+
+ classic
+ 55226
+ www.last.fm/tag/classic
+
+
+ christian
+ 54845
+ www.last.fm/tag/christian
+
+
+ fun
+ 53941
+ www.last.fm/tag/fun
+
+
+ sad
+ 53632
+ www.last.fm/tag/sad
+
+
+ comedy
+ 53194
+ www.last.fm/tag/comedy
+
+
+ shoegaze
+ 52855
+ www.last.fm/tag/shoegaze
+
+
+ psytrance
+ 52527
+ www.last.fm/tag/psytrance
+
+
+ stoner rock
+ 52034
+ www.last.fm/tag/stoner%20rock
+
+
+ folk rock
+ 51432
+ www.last.fm/tag/folk%20rock
+
+
+ melancholy
+ 50961
+ www.last.fm/tag/melancholy
+
+
+ favorite songs
+ 48606
+ www.last.fm/tag/favorite%20songs
+
+
+ atmospheric
+ 47750
+ www.last.fm/tag/atmospheric
+
+
+ viking metal
+ 47492
+ www.last.fm/tag/viking%20metal
+
+
+ uk
+ 47401
+ www.last.fm/tag/uk
+
+
+ blues rock
+ 47185
+ www.last.fm/tag/blues%20rock
+
+
+ visual kei
+ 45878
+ www.last.fm/tag/visual%20kei
+
+
+ goth
+ 45267
+ www.last.fm/tag/goth
+
+
+ alt-country
+ 44898
+ www.last.fm/tag/alt-country
+
+
+ christmas
+ 44829
+ www.last.fm/tag/christmas
+
+
+ covers
+ 44420
+ www.last.fm/tag/covers
+
+
+ female fronted metal
+ 44388
+ www.last.fm/tag/female%20fronted%20metal
+
+
+ amazing
+ 43805
+ www.last.fm/tag/amazing
+
+
+ irish
+ 43564
+ www.last.fm/tag/irish
+
+
+ deutsch
+ 43308
+ www.last.fm/tag/deutsch
+
+
+ relax
+ 43223
+ www.last.fm/tag/relax
+
+
+ lo-fi
+ 42882
+ www.last.fm/tag/lo-fi
+
+
+ romantic
+ 42739
+ www.last.fm/tag/romantic
+
+
+ fusion
+ 42167
+ www.last.fm/tag/fusion
+
+
+ relaxing
+ 41878
+ www.last.fm/tag/relaxing
+
+
+ happy
+ 41477
+ www.last.fm/tag/happy
+
+
+ dark
+ 41278
+ www.last.fm/tag/dark
+
+
+ acid jazz
+ 41237
+ www.last.fm/tag/acid%20jazz
+
+
+ live
+ 41172
+ www.last.fm/tag/live
+
+
+ spanish
+ 40975
+ www.last.fm/tag/spanish
+
+
+ garage rock
+ 40779
+ www.last.fm/tag/garage%20rock
+
+
+ good
+ 40597
+ www.last.fm/tag/good
+
+
+ rockabilly
+ 40558
+ www.last.fm/tag/rockabilly
+
+
+ deathcore
+ 40095
+ www.last.fm/tag/deathcore
+
+
+ norwegian
+ 39977
+ www.last.fm/tag/norwegian
+
+
+ emocore
+ 39626
+ www.last.fm/tag/emocore
+
+
+ melancholic
+ 39430
+ www.last.fm/tag/melancholic
+
+
+ hardcore punk
+ 39331
+ www.last.fm/tag/hardcore%20punk
+
+
+ ethereal
+ 39210
+ www.last.fm/tag/ethereal
+
+
+ americana
+ 38406
+ www.last.fm/tag/americana
+
+
+ jrock
+ 38363
+ www.last.fm/tag/jrock
+
+
+ hiphop
+ 38271
+ www.last.fm/tag/hiphop
+
+
+ glam rock
+ 38226
+ www.last.fm/tag/glam%20rock
+
+
+ synth pop
+ 37295
+ www.last.fm/tag/synth%20pop
+
+
+ favourite songs
+ 37191
+ www.last.fm/tag/favourite%20songs
+
+
+ male vocalist
+ 37179
+ www.last.fm/tag/male%20vocalist
+
+
+ ballad
+ 37014
+ www.last.fm/tag/ballad
+
+
+ political
+ 36978
+ www.last.fm/tag/political
+
+
+ swing
+ 36857
+ www.last.fm/tag/swing
+
+
+ italian
+ 36838
+ www.last.fm/tag/italian
+
+
+ australian
+ 36696
+ www.last.fm/tag/australian
+
+
+ melodic metal
+ 36443
+ www.last.fm/tag/melodic%20metal
+
+
+ post rock
+ 36131
+ www.last.fm/tag/post%20rock
+
+
+ party
+ 36123
+ www.last.fm/tag/party
+
+
+ female vocals
+ 34925
+ www.last.fm/tag/female%20vocals
+
+
+ rock n roll
+ 34822
+ www.last.fm/tag/rock%20n%20roll
+
+
+ soft rock
+ 34143
+ www.last.fm/tag/soft%20rock
+
+
+ brazilian
+ 33934
+ www.last.fm/tag/brazilian
+
+
+ vocal
+ 33545
+ www.last.fm/tag/vocal
+
+
+ technical death metal
+ 32835
+ www.last.fm/tag/technical%20death%20metal
+
+
+ sludge
+ 32414
+ www.last.fm/tag/sludge
+
+
+ nu-metal
+ 32200
+ www.last.fm/tag/nu-metal
+
+
+ remix
+ 31792
+ www.last.fm/tag/remix
+
+
+ epic
+ 31706
+ www.last.fm/tag/epic
+
+
+ club
+ 31504
+ www.last.fm/tag/club
+
+
+ trip hop
+ 31341
+ www.last.fm/tag/trip%20hop
+
+
+ usa
+ 31191
+ www.last.fm/tag/usa
+
+
+ funky
+ 30440
+ www.last.fm/tag/funky
+
+
+ speed metal
+ 30396
+ www.last.fm/tag/speed%20metal
+
+
+ electroclash
+ 29547
+ www.last.fm/tag/electroclash
+
+
+ baroque
+ 29376
+ www.last.fm/tag/baroque
+
+
+ industrial rock
+ 28705
+ www.last.fm/tag/industrial%20rock
+
+
+ neofolk
+ 28616
+ www.last.fm/tag/neofolk
+
+
+ contemporary classical
+ 28585
+ www.last.fm/tag/contemporary%20classical
+
+
+ thrash
+ 28407
+ www.last.fm/tag/thrash
+
+
+ progressive trance
+ 28297
+ www.last.fm/tag/progressive%20trance
+
+
+ summer
+ 28182
+ www.last.fm/tag/summer
+
+
+ rhythm and blues
+ 28116
+ www.last.fm/tag/rhythm%20and%20blues
+
+
+ rock and roll
+ 28019
+ www.last.fm/tag/rock%20and%20roll
+
+
+ drum n bass
+ 27905
+ www.last.fm/tag/drum%20n%20bass
+
+
+ psychobilly
+ 27747
+ www.last.fm/tag/psychobilly
+
+
+ dancehall
+ 27664
+ www.last.fm/tag/dancehall
+
+
+ electropop
+ 27494
+ www.last.fm/tag/electropop
+
+
+ bossa nova
+ 27373
+ www.last.fm/tag/bossa%20nova
+
+
+ dnb
+ 27325
+ www.last.fm/tag/dnb
+
+
+ art rock
+ 26943
+ www.last.fm/tag/art%20rock
+
+
+ loved
+ 26741
+ www.last.fm/tag/loved
+
+
+ catchy
+ 26612
+ www.last.fm/tag/catchy
+
+
+ guitar virtuoso
+ 26596
+ www.last.fm/tag/guitar%20virtuoso
+
+
+ singer songwriter
+ 26288
+ www.last.fm/tag/singer%20songwriter
+
+
+ dark electro
+ 26236
+ www.last.fm/tag/dark%20electro
+
+
+ breakbeat
+ 26163
+ www.last.fm/tag/breakbeat
+
+
+ favorite albums
+ 25848
+ www.last.fm/tag/favorite%20albums
+
+
+ ska punk
+ 25788
+ www.last.fm/tag/ska%20punk
+
+
+ video game music
+ 25773
+ www.last.fm/tag/video%20game%20music
+
+
+ drone
+ 25390
+ www.last.fm/tag/drone
+
+
+ rapcore
+ 25306
+ www.last.fm/tag/rapcore
+
+
+ dreamy
+ 25088
+ www.last.fm/tag/dreamy
+
+
+ world music
+ 24973
+ www.last.fm/tag/world%20music
+
+
+ brasil
+ 24784
+ www.last.fm/tag/brasil
+
+
+ favorite artists
+ 24709
+ www.last.fm/tag/favorite%20artists
+
+
+ english
+ 24657
+ www.last.fm/tag/english
+
+
+ medieval
+ 24513
+ www.last.fm/tag/medieval
+
+
+ southern rock
+ 24058
+ www.last.fm/tag/southern%20rock
+
+
+ folk-rock
+ 24014
+ www.last.fm/tag/folk-rock
+
+
+ symphonic black metal
+ 23998
+ www.last.fm/tag/symphonic%20black%20metal
+
+
+ melodic black metal
+ 23994
+ www.last.fm/tag/melodic%20black%20metal
+
+
+ melodic
+ 23984
+ www.last.fm/tag/melodic
+
+
+ christian rock
+ 23952
+ www.last.fm/tag/christian%20rock
+
+
+ avantgarde
+ 23935
+ www.last.fm/tag/avantgarde
+
+
+ pagan metal
+ 23934
+ www.last.fm/tag/pagan%20metal
+
+
+ sweet
+ 23922
+ www.last.fm/tag/sweet
+
+
+ russian rock
+ 23911
+ www.last.fm/tag/russian%20rock
+
+
diff --git a/test/test_album.py b/test/test_album.py
index 84d4440..be6db80 100644
--- a/test/test_album.py
+++ b/test/test_album.py
@@ -1,3 +1,9 @@
+#!/usr/bin/env python
+
+__author__ = "Abhinav Sarkar "
+__version__ = "0.2"
+__license__ = "GNU Lesser General Public License"
+
import unittest
import datetime
import sys
@@ -10,7 +16,7 @@ install_opener()
wsgi_intercept.add_wsgi_intercept('ws.audioscrobbler.com', 80, create_wsgi_app)
sys.path.append("..")
-from src import Api
+from lastfm import Api
class TestAlbum(unittest.TestCase):
""" A test class for the Album module. """
@@ -18,7 +24,7 @@ class TestAlbum(unittest.TestCase):
def setUp(self):
apikey = "152a230561e72192b8b0f3e42362c6ff"
self.api = Api(apikey, no_cache = True)
- self.album = self.api.getAlbum("Oasis", "Supersonic")
+ self.album = self.api.get_album("Oasis", "Supersonic")
def tearDown(self):
pass
@@ -42,7 +48,7 @@ class TestAlbum(unittest.TestCase):
def testAlbumReleaseDate(self):
date = datetime.datetime(1994, 7, 28, 0, 0)
- self.assertEqual(self.album.releaseDate, date)
+ self.assertEqual(self.album.release_date, date)
def testAlbumImage(self):
self.assertEqual(self.album.image['small'], "http://userserve-ak.last.fm/serve/34/11846565.jpg")
@@ -61,7 +67,25 @@ class TestAlbum(unittest.TestCase):
pass
def testAlbumPlaylist(self):
- self.assertEqual(self.album.playlist.url, "lastfm://playlist/album/2038492")
-
+ self.assertEqual(self.album.playlist.url, "lastfm://playlist/album/2038492")
+
+ def testAlbumSearch(self):
+ albums = [('return to paradice', 'Waldeck'),
+ ('Paradice is Empty', 'I-Disagree'),
+ ('Paradice', 'The Mods'),
+ ('paradice slave', 'flower of flesh and blood'),
+ ('return to paradice', 'Flunk'),
+ ('return to paradice', 'Nostalgia 77'),
+ ('return to paradice', 'Katalyst'),
+ ('return to paradice', 'Ennio Morricone'),
+ ('return to paradice', 'Cornucopia'),
+ ('return to paradice', 'Lost Balance')]
+ self.assertEqual(
+ [(album.name, album.artist.name) for album in self.api.search_album("paradice")[:10]],
+ albums
+ )
+
+test_suite = unittest.TestLoader().loadTestsFromTestCase(TestAlbum)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_tag.py b/test/test_tag.py
index 4d3ec67..55513af 100644
--- a/test/test_tag.py
+++ b/test/test_tag.py
@@ -1,3 +1,9 @@
+#!/usr/bin/env python
+
+__author__ = "Abhinav Sarkar "
+__version__ = "0.2"
+__license__ = "GNU Lesser General Public License"
+
import unittest
import datetime
import sys
@@ -10,7 +16,7 @@ install_opener()
wsgi_intercept.add_wsgi_intercept('ws.audioscrobbler.com', 80, create_wsgi_app)
sys.path.append("..")
-from src import Api
+from lastfm import Api
class TestTag(unittest.TestCase):
""" A test class for the Album module. """
@@ -18,7 +24,7 @@ class TestTag(unittest.TestCase):
def setUp(self):
apikey = "152a230561e72192b8b0f3e42362c6ff"
self.api = Api(apikey, no_cache = True)#, debug = True)
- self.tag = self.api.getTag("rock").mostSimilar
+ self.tag = self.api.get_tag("rock").most_similar
def tearDown(self):
pass
@@ -42,35 +48,135 @@ class TestTag(unittest.TestCase):
'electronic',
'electronica',
'kiwi indie niceness',
- 'singer-songwriter'
- ]
+ 'singer-songwriter']
self.assertEqual([t.name for t in self.tag.similar[:10]], tags)
def testTagMostSimilar(self):
- self.assertEqual(self.tag.mostSimilar.name, 'rock')
-#
-# def testAlbumReleaseDate(self):
-# date = datetime.datetime(1994, 7, 28, 0, 0)
-# self.assertEqual(self.album.releaseDate, date)
-#
-# def testAlbumImage(self):
-# self.assertEqual(self.album.image['small'], "http://userserve-ak.last.fm/serve/34/11846565.jpg")
-# self.assertEqual(self.album.image['medium'], "http://userserve-ak.last.fm/serve/64/11846565.jpg")
-# self.assertEqual(self.album.image['large'], "http://userserve-ak.last.fm/serve/174s/11846565.jpg")
-# self.assertEqual(self.album.image['extralarge'], "http://userserve-ak.last.fm/serve/300x300/11846565.jpg")
-#
-# def testAlbumStats(self):
-# self.assertEqual(self.album.stats.listeners, 14286)
-# self.assertEqual(self.album.stats.playcount, 39594)
-#
-# def testAlbumTopTags(self):
-# pass
-#
-# def testAlbumTopTag(self):
-# pass
-#
-# def testAlbumPlaylist(self):
-# self.assertEqual(self.album.playlist.url, "lastfm://playlist/album/2038492")
+ self.assertEqual(self.tag.most_similar.name, 'rock')
+
+ def testTagTopAlbums(self):
+ albums = [('OK Computer', 'Radiohead'),
+ ('Nevermind', 'Nirvana'),
+ ('In Rainbows', 'Radiohead'),
+ ('Absolution', 'Muse'),
+ ('Kid A', 'Radiohead'),
+ ('InTRO', 'Bruno Sanfilippo'),
+ ('A Long And Ugly Road (European edition)', 'June Madrona'),
+ ('The Bends', 'Radiohead'),
+ ('A Rush of Blood to the Head', 'Coldplay'),
+ ('Black Holes And Revelations', 'Muse')]
+ self.assertEqual(
+ [(album.name, album.artist.name) for album in self.tag.top_albums[:10]],
+ albums)
+ def testTagTopAlbum(self):
+ top_album = self.tag.top_album
+ self.assertEqual((top_album.name, top_album.artist.name), ('OK Computer', 'Radiohead'))
+
+ def testTagTopArtists(self):
+ artists = ['Radiohead',
+ 'Muse',
+ 'Coldplay',
+ 'Placebo',
+ 'Red Hot Chili Peppers',
+ u'Bj\xf6rk',
+ 'Beck',
+ 'The Smashing Pumpkins',
+ 'Nirvana',
+ 'The White Stripes']
+ self.assertEqual([artist.name for artist in self.tag.top_artists[:10]], artists)
+
+ def testTagTopArtist(self):
+ self.assertEqual(self.tag.top_artist.name, 'Radiohead')
+
+ def testTagTopTracks(self):
+ tracks = [('Nude', 'Radiohead'),
+ ('Karma Police', 'Radiohead'),
+ ('Creep', 'Radiohead'),
+ ('Paranoid Android', 'Radiohead'),
+ ('Starlight', 'Muse'),
+ ('Clocks', 'Coldplay'),
+ ('Wonderwall', 'Oasis'),
+ ("Don't Let Him Waste Your Time", 'Jarvis Cocker'),
+ ('Time Is Running Out', 'Muse'),
+ ('Somebody Told Me', 'The Killers')]
+ self.assertEqual(
+ [(track.name, track.artist.name) for track in self.tag.top_tracks[:10]],
+ tracks)
+
+ def testTagTopTrack(self):
+ top_track = self.tag.top_track
+ self.assertEqual((top_track.name, top_track.artist.name), ('Nude', 'Radiohead'))
+
+ def testTagPlaylist(self):
+ self.assertEqual(self.tag.playlist.url, 'lastfm://playlist/tag/alternative/freetracks')
+
+ def testTagWeeklyChartList(self):
+ wcl = [('Sun, 25 May 2008', 'Sun, 01 Jun 2008'),
+ ('Sun, 01 Jun 2008', 'Sun, 08 Jun 2008'),
+ ('Sun, 08 Jun 2008', 'Sun, 15 Jun 2008'),
+ ('Sun, 15 Jun 2008', 'Sun, 22 Jun 2008'),
+ ('Sun, 22 Jun 2008', 'Sun, 29 Jun 2008'),
+ ('Sun, 29 Jun 2008', 'Sun, 06 Jul 2008'),
+ ('Sun, 06 Jul 2008', 'Sun, 13 Jul 2008'),
+ ('Sun, 13 Jul 2008', 'Sun, 20 Jul 2008'),
+ ('Sun, 20 Jul 2008', 'Sun, 27 Jul 2008'),
+ ('Sun, 27 Jul 2008', 'Sun, 03 Aug 2008')]
+ self.assertEqual(
+ [
+ (
+ wc.start.date().strftime('%a, %d %b %Y'),
+ wc.end.date().strftime('%a, %d %b %Y')
+ )
+ for wc in self.tag.weekly_chart_list[:10]
+ ],
+ wcl
+ )
+
+ def testTagGetWeeklyArtistChart(self):
+ artists = [('Radiohead', 1199680000),
+ ('Coldplay', 1000771456),
+ ('Muse', 777053504),
+ ('Placebo', 574809984),
+ ('The Killers', 549784640),
+ ('The Smashing Pumpkins', 523733376),
+ ('The Cure', 503786272),
+ ('Gorillaz', 488720000),
+ ('Beck', 474790016),
+ ('Weezer', 448279168)]
+ wc = self.tag.weekly_chart_list[0]
+ self.assertEqual(
+ [(artist.name, artist.stats.weight)
+ for artist in self.tag.get_weekly_artist_chart(wc.start, wc.end).artists[:10]],
+ artists)
+
+ def testTagGetTopTags(self):
+ tags = ['rock',
+ 'seen live',
+ 'alternative',
+ 'indie',
+ 'electronic',
+ 'pop',
+ 'metal',
+ 'female vocalists',
+ 'alternative rock',
+ 'classic rock']
+ self.assertEqual([tag.name for tag in self.api.get_global_top_tags()[:10]], tags)
+
+ def testTagSearch(self):
+ tags = ['alternative',
+ 'alternative rock',
+ 'alternative metal',
+ 'alternative pop',
+ 'alternative dance',
+ 'alternative rap',
+ 'alternative country',
+ 'adult alternative',
+ 'alternative hip-hop',
+ 'alternative folk']
+ self.assertEqual([tag.name for tag in self.api.search_tag('alternative')[:10]], tags)
+
+test_suite = unittest.TestLoader().loadTestsFromTestCase(TestTag)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/wsgi_test_app.py b/test/wsgi_test_app.py
index 7cf6e96..ebdb3bd 100644
--- a/test/wsgi_test_app.py
+++ b/test/wsgi_test_app.py
@@ -20,7 +20,6 @@ def test_app(environ, start_response):
environ['QUERY_STRING'],
''
))
- #print "intercepted: %s" % url
key = md5.new(url).hexdigest()
status = '200 OK'
response_headers = [('Content-type','text/xml')]
@@ -29,7 +28,12 @@ def test_app(environ, start_response):
global _app_was_hit
_app_was_hit = True
- filedata = unicode(open(os.path.join(os.path.dirname(__file__), 'data', "%s.xml" % key)).read())
+ try:
+ filedata = open(os.path.join(os.path.dirname(__file__), 'data', "%s.xml" % key)).read()
+ except IOError:
+ print "\nintercepted: %s" % url
+ print "key:", key
+ raise
return [filedata]
def create_wsgi_app():