count of "that" "this"

Given a string, return true if the number of appearances of "that" anywhere in the string is equal to the number of
appearances of "this" anywhere in the string (case in-sensitive).

sameThatThis("That That This") -> false
sameThatThis("This is not That") -> true
sameThatThis("thisnoisthatxxnotbthatyynotxisi that this forthis") -> true

public boolean sameThatThis(String str) {
//your target function, don't change signature, add to a new class file
*IMPORTANT : Follow TDD test driven development*

First do the test helper and write at least 6 different test cases and last implement your target function

Add main method ->
testCases (think of edge test cases besides the 3 I have given) ->
test Helper functions, then implement above target function all same class , as in IcyHot

Unit test with tests and test helper in same class. Follow same pattern and order.

First add test cases, then test helper and last try to solve the target function (and its helper)
Copy this to a new Class with appropriate name.
Can copy parts of IcyHot to new class or type everything.

Create a new class, sample and instructions: (IcyHot)

So you will have a new class with 4 methods. Please make sure icyHot comments or function names are not there, rename everything to match this question.