Release: EGTB verification tool

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
jshriver
Posts: 1342
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Release: EGTB verification tool

Post by jshriver »

http://olympuschess.com/EGTBChecker/EGTBChecker.zip

The basic usage is:

java -jar EGTBChecker.jar /path/to/EGTBfiles
or
java -jar EGTBChecker.jar d:\EGTB

It recursively checks all files and sub-directories so if you have all your files in C:\EGTB no need to list each subdirectory.

Verified it works in Linux and Windows. Sorry it's command-line only for now, planning to add a GUI but wanted to get the core parts done first.

It supports the following EGTB tablebases:
Syzygy 3,4,5, 6 DTZ and 6 WDL
Gaviota 3,4,5
Nalimov 3,4,5, 6
Robbo Total Bases 3,4,5,z
Robbo Triple Bases 2,3,4,5,5-1, z

As always open to suggestions and comments!

It's a little raw. This has been in my head for years and finally sat down tonight and pushed it out in about 5 hours. Most of the work though was creating the database.

-Josh
Joerg Oster
Posts: 938
Joined: Fri Mar 10, 2006 4:29 pm
Location: Germany

Re: Release: EGTB verification tool

Post by Joerg Oster »

Hi, trying to check my syzygy 5men files, I get the following:

Code: Select all

java -jar EGTBChecker.jar /home/joster/syzygy5men/syzygy
EGTB Checker:
/home/joster/syzygy5men/syzygy
Exception in thread "main" java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NullPointerException
	at java.util.Objects.requireNonNull(Objects.java:203)
	at java.util.Arrays$ArrayList.<init>&#40;Arrays.java&#58;3813&#41;
	at java.util.Arrays.asList&#40;Arrays.java&#58;3800&#41;
	at com.olympuschess.EGTBChecker.EGTBChecker.processFiles&#40;EGTBChecker.java&#58;35&#41;
	at com.olympuschess.EGTBChecker.EGTBChecker.main&#40;EGTBChecker.java&#58;22&#41;
	... 5 more
Am I doing something wrong?
Jörg Oster
User avatar
Werner
Posts: 2872
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Release: EGTB verification tool

Post by Werner »

Thanks Joshua,
works here fine on Windows 10 PC, Intel CPU

regards
Werner
jpqy
Posts: 550
Joined: Thu Apr 24, 2008 9:31 am
Location: Belgium

Re: Release: EGTB verification tool

Post by jpqy »

C:\Program Files\Chess\EGTBChecker>java -jar EGTBChecker.jar C:\RTB
EGTB Checker:
C:\RTB
checksum.md5: is not a EGTB file
KBBBvK.rtbw: Syzygy set OK
KBBBvK.rtbz: Syzygy set OK
...
KRvKP.rtbz: Syzygy set OK
KRvKR.rtbw: Syzygy set OK
KRvKR.rtbz: Syzygy set OK

C:\Program Files\Chess\EGTBChecker>

Thanks Joshua..works great here..maybe it would be interesting to see a total ,to know we have them all !

Kind regards,
JP.
Joerg Oster
Posts: 938
Joined: Fri Mar 10, 2006 4:29 pm
Location: Germany

Re: Release: EGTB verification tool

Post by Joerg Oster »

Joerg Oster wrote:Hi, trying to check my syzygy 5men files, I get the following:

Code: Select all

java -jar EGTBChecker.jar /home/joster/syzygy5men/syzygy
EGTB Checker&#58;
/home/joster/syzygy5men/syzygy
Exception in thread "main" java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0&#40;Native Method&#41;
	at sun.reflect.NativeMethodAccessorImpl.invoke&#40;NativeMethodAccessorImpl.java&#58;62&#41;
	at sun.reflect.DelegatingMethodAccessorImpl.invoke&#40;DelegatingMethodAccessorImpl.java&#58;43&#41;
	at java.lang.reflect.Method.invoke&#40;Method.java&#58;498&#41;
	at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main&#40;JarRsrcLoader.java&#58;58&#41;
Caused by&#58; java.lang.NullPointerException
	at java.util.Objects.requireNonNull&#40;Objects.java&#58;203&#41;
	at java.util.Arrays$ArrayList.<init>&#40;Arrays.java&#58;3813&#41;
	at java.util.Arrays.asList&#40;Arrays.java&#58;3800&#41;
	at com.olympuschess.EGTBChecker.EGTBChecker.processFiles&#40;EGTBChecker.java&#58;35&#41;
	at com.olympuschess.EGTBChecker.EGTBChecker.main&#40;EGTBChecker.java&#58;22&#41;
	... 5 more
Am I doing something wrong?
Obviously, yes. :oops:

The path did change in the meantime.
Works perfectly fine now. Thanks.
Jörg Oster
User avatar
jshriver
Posts: 1342
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Re: Release: EGTB verification tool

Post by jshriver »

jpqy wrote:
Thanks Joshua..works great here..maybe it would be interesting to see a total ,to know we have them all !

Kind regards,
JP.
That's something I have planned for the next release :). I'm also planning on having it generate a report afterwards to make the output a bit cleaner and more specific.

In case there is a little confusion the output is in this format:

filename description OK

If the hash is incorrect it'll let you know the file is corrupt based on the filename and what it should be. If the hash exist but the filename is different it'll also tell you that.

The description is something along "Nalimov 6 men 3-3 set" "Nalimov 3-4-5 men set" "Syzygy set", etc.

Realized once I saw the previous post the "Syzygy set OK" might be confusing. Just means it's part of that set, and that specific file is OK. I'll try and clean that up a bit to make it more obvious.

Again up for any recommendations and ideas.

-Josh
Jamal Bubker
Posts: 326
Joined: Mon May 24, 2010 4:32 pm

Re: Release: EGTB verification tool

Post by Jamal Bubker »

Thank you very much Joshua for releasing such a nice tool :D :D