You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: defaults_test.go
    path of file: ./repos/kubernetes/pkg/apis/batch/v1beta1
    
    the code of the file until where you have to start completion: /*
Copyright 2017 The Kubernetes Authors.

Licensed under the Apache Lice
    
func TestSetDefaultCronJob(t *testing.T) {
	tests := map[string]struct {
		original *batchv1beta1.CronJob
		expected *batchv1beta1.CronJob
	}{
		"empty batchv1beta1.CronJob should default batchv1beta1.ConcurrencyPolicy and Suspend": {
			original: &batchv1beta1.CronJob{},
			expected: &batchv1beta1.CronJob{
				Spec: batchv1beta1.CronJobSpec{
					ConcurrencyPolicy:          batchv1beta1.AllowConcurrent,
					Suspend:                    newBool(false),
					SuccessfulJobsHistoryLimit: utilpointer.Int32(3),
					FailedJobsHistoryLimit:     utilpointer.Int32(1),
				},
			},
		},
		"set fields should not be defaulted": {
			original: &batchv1beta1.CronJob{
				Spec: batchv1beta1.CronJobSpec{
					ConcurrencyPolicy:          batchv1beta1.ForbidConcurrent,
					Suspend:                    newBool(true),
					SuccessfulJobsHistoryLimit: utilpointer.Int32(5),
					FailedJobsHistoryLimit:     utilpointer.Int32(5),
				},
			},
			expected: &batchv1beta1.CronJob{
				Spec: batchv1beta1.CronJobSpec{
					ConcurrencyPolicy:          batchv1beta1.ForbidConcurrent,
					Suspend:                    newBool(true),
					SuccessfulJobsHistoryLimit: utilpointer.Int32(5),
					FailedJobsHistoryLimit:     utilpointer.Int32(5),
				},
			},
		},
	}

	for name, test := range tests {
		original := test.original
		expected := test.expected
		obj2 := roundTrip(t, runtime.Object(original))
		actual, ok := obj2.(*batchv1beta1.CronJob)
		if !ok {
			t.Errorf("%s: unexpected object: %v", name, actual)
			t.FailNow()
		}
		if actual.Spec.ConcurrencyPolicy != expected.Spec.ConcurrencyPolicy {
			t.Errorf("%s: got different concurrencyPolicy than expected: %v %v", name, actual.Spec.ConcurrencyPolicy, expected.Spec.ConcurrencyPolicy)
		}
		if *actual.Spec.Suspend != *expected.Spec.Suspend {
			t.Errorf("%s: got different suspend than expected: %v %v", name, *actual.Spec.Suspend, *expected.Spec.Suspend)
		}
		if *actual.Spec.SuccessfulJobsHistoryLimit != *expected.Spec.SuccessfulJobsHistoryLimit {
			t.Errorf("%s: got different successfulJobsHistoryLimit than expected: %v %v", name, *actual.Spec.SuccessfulJobsHistoryLimit, *expected.Spec.SuccessfulJobsHistoryLimit)
		}
		if *actual.Spec.FailedJobsHistoryLimit != *expected.Spec.FailedJobsHistoryLimit {
			t.Errorf("%s: got different failedJobsHistoryLimit than expected: %v %v", name, *actual.Spec.FailedJobsHistoryLimit, *expected.Spec.FailedJobsHistoryLimit)
		}
	}
}