<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3APgn%2Ftestcases</id>
	<title>Module:Pgn/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3APgn%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Pgn/testcases&amp;action=history"/>
	<updated>2026-07-28T02:42:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Pgn/testcases&amp;diff=144298&amp;oldid=prev</id>
		<title>imported&gt;Pppery: Corrected module name</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Pgn/testcases&amp;diff=144298&amp;oldid=prev"/>
		<updated>2020-02-10T21:11:26Z</updated>

		<summary type="html">&lt;p&gt;Corrected module name&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Unit tests for [[Module:Pgn]]. Click talk page to run tests.&lt;br /&gt;
local p = require(&amp;#039;Module:UnitTests&amp;#039;)&lt;br /&gt;
local pgnModule = require(&amp;#039;Module:Pgn&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
-- test extraction of moves to FEN notation - main functionality of the module&lt;br /&gt;
function p:testFullPgnMoves()&lt;br /&gt;
	local pgn=[[[Event &amp;quot;World Cup&amp;quot;]&lt;br /&gt;
[Site &amp;quot;Khanty-Mansiysk&amp;quot;]&lt;br /&gt;
[Date &amp;quot;2007.11.25&amp;quot;]&lt;br /&gt;
[Round &amp;quot;1.2&amp;quot;]&lt;br /&gt;
[White &amp;quot;Mamedyarov, Shakhriyar&amp;quot;]&lt;br /&gt;
[Black &amp;quot;Abdel Razik, Khaled&amp;quot;]&lt;br /&gt;
[Result &amp;quot;1-0&amp;quot;]&lt;br /&gt;
[ECO &amp;quot;D43&amp;quot;]&lt;br /&gt;
[WhiteElo &amp;quot;2752&amp;quot;]&lt;br /&gt;
[BlackElo &amp;quot;2389&amp;quot;]&lt;br /&gt;
[PlyCount &amp;quot;65&amp;quot;]&lt;br /&gt;
[EventDate &amp;quot;2007.11.24&amp;quot;]&lt;br /&gt;
[EventType &amp;quot;k.o.&amp;quot;]&lt;br /&gt;
[EventRounds &amp;quot;7&amp;quot;]&lt;br /&gt;
[EventCountry &amp;quot;RUS&amp;quot;]&lt;br /&gt;
[Source &amp;quot;ChessBase&amp;quot;]&lt;br /&gt;
[SourceDate &amp;quot;2008.01.30&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
1. d4 e6 2. c4 Nf6 3. Nf3 d5 4. Nc3 c6 5. Bg5 h6 6. Bxf6 Qxf6 7. Qc2 Nd7 8. e4&lt;br /&gt;
dxe4 9. Qxe4 Bb4 10. Bd3 g6 11. O-O O-O 12. Qe3 Bxc3 13. bxc3 Kg7 14. a4 b6 15.&lt;br /&gt;
a5 Ba6 16. Rfb1 Rfc8 17. h4 b5 18. cxb5 Bxb5 19. Bxb5 cxb5 20. Rxb5 Rab8 21.&lt;br /&gt;
Rab1 Qf5 22. Rxb8 Rxb8 23. Rxb8 Nxb8 24. Ne5 h5 25. c4 f6 26. Qb3 fxe5 27. Qxb8&lt;br /&gt;
exd4 28. Qxa7+ Kg8 29. Qb8+ Kh7 30. a6 d3 31. a7 d2 32. a8=Q d1=Q+ 33. Kh2 1-0&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
	metadata, moves = pgnModule.main(pgn)&lt;br /&gt;
	&lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	moves[1],&lt;br /&gt;
    	&amp;#039;rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	moves[#moves],&lt;br /&gt;
    	&amp;#039;QQ6/7k/4p1p1/5q1p/2P4P/8/5PPK/3q4&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--tests metadata extraction&lt;br /&gt;
function p:testFullPgnMetadata()&lt;br /&gt;
	local pgn=[[[Event &amp;quot;World Cup&amp;quot;]&lt;br /&gt;
[Site &amp;quot;Khanty-Mansiysk&amp;quot;]&lt;br /&gt;
[Date &amp;quot;2007.11.25&amp;quot;]&lt;br /&gt;
[Round &amp;quot;1.2&amp;quot;]&lt;br /&gt;
[White &amp;quot;Mamedyarov, Shakhriyar&amp;quot;]&lt;br /&gt;
[Black &amp;quot;Abdel Razik, Khaled&amp;quot;]&lt;br /&gt;
[Result &amp;quot;1-0&amp;quot;]&lt;br /&gt;
[ECO &amp;quot;D43&amp;quot;]&lt;br /&gt;
[WhiteElo &amp;quot;2752&amp;quot;]&lt;br /&gt;
[BlackElo &amp;quot;2389&amp;quot;]&lt;br /&gt;
[PlyCount &amp;quot;65&amp;quot;]&lt;br /&gt;
[EventDate &amp;quot;2007.11.24&amp;quot;]&lt;br /&gt;
[EventType &amp;quot;k.o.&amp;quot;]&lt;br /&gt;
[EventRounds &amp;quot;7&amp;quot;]&lt;br /&gt;
[EventCountry &amp;quot;RUS&amp;quot;]&lt;br /&gt;
[Source &amp;quot;ChessBase&amp;quot;]&lt;br /&gt;
[SourceDate &amp;quot;2008.01.30&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
1. d4 e6 2. c4 Nf6 3. Nf3 d5 4. Nc3 c6 5. Bg5 h6 6. Bxf6 Qxf6 7. Qc2 Nd7 8. e4&lt;br /&gt;
dxe4 9. Qxe4 Bb4 10. Bd3 g6 11. O-O O-O 12. Qe3 Bxc3 13. bxc3 Kg7 14. a4 b6 15.&lt;br /&gt;
a5 Ba6 16. Rfb1 Rfc8 17. h4 b5 18. cxb5 Bxb5 19. Bxb5 cxb5 20. Rxb5 Rab8 21.&lt;br /&gt;
Rab1 Qf5 22. Rxb8 Rxb8 23. Rxb8 Nxb8 24. Ne5 h5 25. c4 f6 26. Qb3 fxe5 27. Qxb8&lt;br /&gt;
exd4 28. Qxa7+ Kg8 29. Qb8+ Kh7 30. a6 d3 31. a7 d2 32. a8=Q d1=Q+ 33. Kh2 1-0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	metadata, moves = pgnModule.main(pgn)&lt;br /&gt;
    self:preprocess_equals( metadata[&amp;#039;Black&amp;#039;] or &amp;#039;&amp;#039;, &amp;#039;Abdel Razik, Khaled&amp;#039; )&lt;br /&gt;
    self:preprocess_equals( metadata[&amp;#039;White&amp;#039;] or &amp;#039;&amp;#039;, &amp;#039;Mamedyarov, Shakhriyar&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- tests algebric notation PGN with no metadata&lt;br /&gt;
function p:testAlgebricNotation()&lt;br /&gt;
	local pgn=[[1. d4 e6 2. c4 Nf6 3. Nf3 d5 4. Nc3 c6 5. Bg5 h6 6. Bxf6 Qxf6 7. Qc2 Nd7 8. e4&lt;br /&gt;
dxe4 9. Qxe4 Bb4 10. Bd3 g6 11. O-O O-O 12. Qe3 Bxc3 13. bxc3 Kg7 14. a4 b6 15.&lt;br /&gt;
a5 Ba6 16. Rfb1 Rfc8 17. h4 b5 18. cxb5 Bxb5 19. Bxb5 cxb5 20. Rxb5 Rab8 21.&lt;br /&gt;
Rab1 Qf5 22. Rxb8 Rxb8 23. Rxb8 Nxb8 24. Ne5 h5 25. c4 f6 26. Qb3 fxe5 27. Qxb8&lt;br /&gt;
exd4 28. Qxa7+ Kg8 29. Qb8+ Kh7 30. a6 d3 31. a7 d2 32. a8=Q d1=Q+ 33. Kh2 1-0&lt;br /&gt;
]]&lt;br /&gt;
	local metadata, moves&lt;br /&gt;
	success, metadata, moves = pcall(pgnModule.main,pgn)&lt;br /&gt;
	if not success then&lt;br /&gt;
		moves  = {&amp;#039;fail&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	moves[1],&lt;br /&gt;
    	&amp;#039;rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	moves[#moves],&lt;br /&gt;
    	&amp;#039;QQ6/7k/4p1p1/5q1p/2P4P/8/5PPK/3q4&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Pppery</name></author>
	</entry>
</feed>