module dud.semver.hashtest;

@safe pure private:
import std.format : format;

import dud.semver.parse;
import dud.semver.semver;

unittest {
	string[][] prs = [
		[], ["foo"], ["1", "2"], ["1", "foo"], ["1", "baz"], ["1", "3"]
	];

	string[][] bs = [
		[], ["somehash"], ["somehash", "morehash", "dmd"]
	];

	SemVer[] semvers;
	foreach(mj; 0 .. 3) {
		foreach(mi; 0 .. 3) {
			foreach(p; 0 .. 3) {
				foreach(pr; prs) {
					foreach(b; bs) {
						semvers ~= SemVer(mj, mi, p, pr, b);
					}
				}
			}
		}
	}

	bool[SemVer] hashes;
	foreach(sv; semvers) {
		assert(sv !in hashes);
		hashes[sv] = true;
		assert(sv in hashes);
	}
}