package edu.berkeley.cs.succinct;
import java.util.HashSet;
public class TestUtils {
/**
* Naive string count algorithm. This is the baseline we test against.
*
* @param input Input string.
* @param str Query string.
* @return Number of occurrences of the query string in the input string.
*/
public static int stringCount(String input, String str) {
int count = 0;
for (int i = 0; i < input.length(); i++) {
int j = 0;
for (; j < str.length(); j++) {
if (input.charAt(i + j) != str.charAt(j)) {
break;
}
}
if (j == str.length()) {
count++;
}
}
return count;
}
/**
* Naive string record count algorithm. This is the baseline we test against.
*
* @param input Input string.
* @param offsets Offsets marking beginning of new records.
* @param str Query string.
* @return Number of records in the input string which contain the query string.
*/
public static int stringRecordCount(String input, int[] offsets, String str) {
HashSet<Integer> records = new HashSet<>();
for (int i = 0; i < input.length(); i++) {
int j = 0;
for (; j < str.length(); j++) {
if (input.charAt(i + j) != str.charAt(j)) {
break;
}
}
if (j == str.length()) {
int k = 0;
for (; k < offsets.length; k++) {
if (offsets[k] > i)
break;
}
records.add(k - 1);
}
}
return records.size();
}
}