Ω(err).ShouldNot(HaveOccurred())
		})

		Context("Given a dataset with non-float features", func() {
			BeforeEach(func() {
				columnTypes, err := columntype.StringsToColumnTypes([]string{"x", "1.0"})
				Ω(err).ShouldNot(HaveOccurred())

				trainingSet = dataset.NewDataset([]int{0}, []int{1}, columnTypes)

				err = trainingSet.AddRowFromStrings([]string{"hi", "24"})
				Ω(err).ShouldNot(HaveOccurred())
			})

			It("Returns an error", func() {
				err := estimator.Train(trainingSet)
				Ω(err).Should(BeAssignableToTypeOf(gdeErrors.NonFloatFeaturesError{}))
			})
		})

		Context("Given a dataset with a non-float target", func() {
			BeforeEach(func() {
				columnTypes, err := columntype.StringsToColumnTypes([]string{"x", "1.0"})
				Ω(err).ShouldNot(HaveOccurred())

				trainingSet = dataset.NewDataset([]int{1}, []int{0}, columnTypes)

				err = trainingSet.AddRowFromStrings([]string{"hi", "24"})
				Ω(err).ShouldNot(HaveOccurred())
			})