All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.dakusui.jcunit.enumerator.PairwiseTestArrayGenerator Maven / Gradle / Ivy

There is a newer version: 0.8.17
Show newest version
package com.github.dakusui.jcunit.enumerator;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

import org.apache.commons.lang3.ArrayUtils;

import com.github.dakusui.jcunit.enumerator.ipo.IPO;
import com.github.dakusui.jcunit.enumerator.ipo.IPO.Run;
import com.github.dakusui.jcunit.enumerator.ipo.IPO.TestRunSet;
import com.github.dakusui.jcunit.enumerator.ipo.IPO.TestSpace;

public class PairwiseTestArrayGenerator extends BaseTestArrayGenerator {
	private TestRunSet testRunSet;
	private Map indexToKeyMap = new HashMap();
	
	@Override
	public void init(Map domains) {
		super.init(domains);
		Object[][] testSpaceDomains = new Object[this.domains.size()][];
		int i = 0;
		for (T cur: this.domains.keySet()) {
			System.out.println("--- " + cur);
			testSpaceDomains[i++] = this.domains.get(cur);
			indexToKeyMap.put(i, cur); // since i is already incremented, put it as is. 
		}
		System.out.println(ArrayUtils.toString(testSpaceDomains));
		TestSpace space = new TestSpace(testSpaceDomains);
		IPO ipo = new IPO(space);
		this.testRunSet = ipo.ipo();
		this.size = this.testRunSet.size();
		this.cur = 0;
	}

	@SuppressWarnings("unchecked")
	@Override
	protected Map get(long cur) {
		Run run = this.testRunSet.get((int) cur);
		Map ret = new LinkedHashMap();
		// IPO classes provide 1-origin methods!
		for (int i = 1; i <= run.width(); i++) {
			ret.put(indexToKeyMap.get(i), (U) run.get(i));
		}
		return ret;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy