diff --git a/src/Math-Core/PMVector.class.st b/src/Math-Core/PMVector.class.st index 1bc96b8e6..4820c79d1 100644 --- a/src/Math-Core/PMVector.class.st +++ b/src/Math-Core/PMVector.class.st @@ -77,14 +77,14 @@ PMVector >> - aVectorOrNumber [ { #category : #operation } PMVector >> < aNumber [ - "Apply < operator to every element of a vector" - 1 to: self size do: [ :n | self at: n put: (self at: n) < aNumber]. + "Apply < operator to every element of a vector and returns a new vector" + ^ ((1 to: self size) collect: [ :n | (self at: n) < aNumber]) asPMVector. ] { #category : #operation } PMVector >> > aNumber [ - "Apply > function to every element of a vector" - 1 to: self size do: [ :n | self at: n put: (self at: n) > aNumber]. + "Apply > function to every element of a vector and return a new vector" + ^ ((1 to: self size) collect: [ :n | (self at: n) > aNumber]) asPMVector. ] { #category : #transformation } diff --git a/src/Math-Tests-Core/PMVectorTest.class.st b/src/Math-Tests-Core/PMVectorTest.class.st index 6624f6f8b..5ee2228ee 100644 --- a/src/Math-Tests-Core/PMVectorTest.class.st +++ b/src/Math-Tests-Core/PMVectorTest.class.st @@ -60,6 +60,26 @@ PMVectorTest >> testAsArray [ ] { #category : #tests } +PMVectorTest >> testGreaterThan [ + | vec vecCopy | + vec := #(1 2 3) asPMVector. + vecCopy := vec deepCopy. + self assert: (vec > 1.5) equals: #(false true true) asPMVector. + "Ensure that in-place modification does not take place" + self assert: vec equals: vecCopy asPMVector. +] + +{ #category : #tests } +PMVectorTest >> testLessThan [ + | vec vecCopy | + vec := #(1 2 3) asPMVector. + vecCopy := vec deepCopy. + self assert: (vec < 1.5) equals: #(true false false) asPMVector. + "Ensure that in-place modification does not take place" + self assert: vec equals: vecCopy asPMVector. +] + +{ #category : #tests } PMVectorTest >> testMatrixConversionWithBothDims [ | vect result expected | vect := #(1 0.5 0.2 3 1 -1 7 3 2 12 13 3) asPMVector .