// Equal compares two line strings. Returns true if lengths are the same
// and all points are Equal.
420495
func (ls LineString) Equal(lineString LineString) bool {
	return MultiPoint(ls).Equal(MultiPoint(lineString))
}
690224
func (o *SeparatorsToIndexOption) Equal(o2 *SeparatorsToIndexOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
1254631
func (o *RemoveStopWordsOption) Equal(o2 *RemoveStopWordsOption) bool {
	if o2 == nil {
		return !o.removeStopWords && len(o.languages) == 0
	}
	return reflect.DeepEqual(o, o2)
}
297491
func (v Vector) Equal(b Vector) bool {
	return v.Compare(b) == Equal
}
71897
func (p *Polyline) Equal(b *Polyline) bool {
	if len(*p) != len(*b) {
		return false
	}
	for i, v := range *p {
		if v != (*b)[i] {
			return false
		}
	}

	return true
}
730711
func (p *Point) Equal(p2 Point) bool {
	return FloatEqual(p.X, p2.X) && FloatEqual(p.Y, p2.Y)
}
429541
func (o *GetRankingInfoOption) Equal(o2 *GetRankingInfoOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
488907
func (o *SortFacetValuesByOption) Equal(o2 *SortFacetValuesByOption) bool {
	if o2 == nil {
		return o.value == "count"
	}
	return o.value == o2.value
}
1250512
func (self EqList) Equal(o Equaler) bool {
	if o == nil {
		return false
	}
	other := o.(EqList)
	if len(other) == 0 {
		return false
	}
	curr := []Model(self)
	if len(curr) == 0 {
		return false
	}
	if len(curr) != len(other) {
		return false
	}
	for i, e := range other {
		if !curr[i].Equal(e) {
			return false
		}
	}
	return true
}
1236984
func (mls MultiLineString) Equal(multiLineString MultiLineString) bool {
	if len(mls) != len(multiLineString) {
		return false
	}

	for i, ls := range mls {
		if !ls.Equal(multiLineString[i]) {
			return false
		}
	}

	return true
}
961502
func (o *ReplaceSynonymsInHighlightOption) Equal(o2 *ReplaceSynonymsInHighlightOption) bool {
	if o2 == nil {
		return o.value == true
	}
	return o.value == o2.value
}
296101
func (p *Point) Equals(point *Point) bool {
	if p[0] == point[0] && p[1] == point[1] {
		return true
	}

	return false
}
1112465
func (o *AllowTyposOnNumericTokensOption) Equal(o2 *AllowTyposOnNumericTokensOption) bool {
	if o2 == nil {
		return o.value == true
	}
	return o.value == o2.value
}
523348
func (o *RestrictHighlightAndSnippetArraysOption) Equal(o2 *RestrictHighlightAndSnippetArraysOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
134140
func (s *String) Equal(value string) *String {
	if !(s.value == value) {
		s.chain.fail("\nexpected string equal to:\n %q\n\nbut got:\n %q",
			value, s.value)
	}
	return s
}
288541
func (c Point) Equals(other core.DxfElement) bool {
	if otherPoint, ok := other.(*Point); ok {
		return c.BaseEntity.Equals(otherPoint.BaseEntity) &&
			c.Location.Equals(otherPoint.Location) &&
			core.FloatEquals(c.Thickness, otherPoint.Thickness) &&
			c.ExtrusionDirection.Equals(otherPoint.ExtrusionDirection) &&
			core.FloatEquals(c.XAxisAngle, otherPoint.XAxisAngle)
	}
	return false
}
260593
func (s1 String) Equal(s2 String) bool {
	return len(s1) == len(s2) && s1.IsSuperset(s2)
}