func TestGroupWithClass(t *testing.T) {
	program := data.Program{}
	program.AcademicProgram.ProgramId = "Test"
	program.AcademicProgram.Description = sql.NullString{String: "Test Program", Valid: true}
	program.ClassGroups = generateGroups(1, 1)
	program.ClassGroups[0].GroupRequirementType = "CLASS"
	program.ProgramClasses = []model.ProgramClass{
		{
			ProgramId:         "Test",
			ParentGroupNumber: 1,
			SequenceNumber:    2,
			CourseName:        sql.NullString{String: "Test Class", Valid: true},
			CurriculumId:      "12345",
			TitleCode:         sql.NullString{String: "", Valid: false},
			TitleCodeRequired: false,
		},
	}

	out, err := Convert(program)
	if err != nil {
		t.Error(err)
	}

	j, err := json.MarshalIndent(out, "", "    ")
	if err != nil {
		t.Error(err)
	}
	t.Log(string(j))

	if len(out.Requirements) != 1 {
		t.Log(fmt.Sprintf("Wrong number of child Requirements! %d != 1\n", len(out.Requirements)))
		t.Fail()
	}

	if len(out.Requirements[0].Requirements) != 1 {
		t.Log(fmt.Sprintf("Wrong number of (grand)child requirements! %d != 1\n", len(out.Requirements[0].Requirements)))
		t.Fail()
	}

	if len(out.Requirements[0].Requirements[0].Specifications) != 1 {
		t.Log(fmt.Sprintf("Wrong number of (great-grand)child specifications! %d != 1\n", len(out.Requirements[0].Requirements[0].Specifications)))
		t.Fail()
	}
}