lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 8d6a7ce 2/3: Add another example for PETE's e


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 8d6a7ce 2/3: Add another example for PETE's equality "operator"
Date: Wed, 24 Mar 2021 10:37:26 -0400 (EDT)

branch: master
commit 8d6a7cec8424db951f3077435c11edd2dfa2a9f7
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Add another example for PETE's equality "operator"
---
 et_vector_test.cpp | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/et_vector_test.cpp b/et_vector_test.cpp
index 71815f0..e3f34e4 100644
--- a/et_vector_test.cpp
+++ b/et_vector_test.cpp
@@ -198,6 +198,23 @@ int test_main(int, char*[])
     LMI_TEST_EQUAL( 1.0, MinOf(+v2));
     LMI_TEST_EQUAL(-1.0, MinOf(+v3));
     LMI_TEST_EQUAL(-1.0, MinOf(+v4));
+
+    // Combination example: test whether vector is all boolean-valued.
+    // In APL, one might write:
+    //   AND slash [ravel] V ElementOf 0 1
+    //   (using 'ravel' to flatten rank, which is irrelevant here)
+    // Lacking ElementOf, this example uses:
+    //   AND slash (v=0) OR v=1
+    // In APL, one might instead write:
+    //   AND slash V = NOT NOT V
+    // using NOT NOT to turn values into booleans, but, using PETE
+    // with std::vector, "!!V" returns a vector<bool>; ET !! perhaps
+    // boolean operators should therefore be amended to return 'int'.
+    LMI_TEST_EQUAL(true , AllOf(EqualTo(true, v0) ||  EqualTo(false, v0)));
+    LMI_TEST_EQUAL(true , AllOf(EqualTo(true, v1) ||  EqualTo(false, v1)));
+    LMI_TEST_EQUAL(true , AllOf(EqualTo(true, v2) ||  EqualTo(false, v2)));
+    LMI_TEST_EQUAL(false, AllOf(EqualTo(true, v3) ||  EqualTo(false, v3)));
+    LMI_TEST_EQUAL(false, AllOf(EqualTo(true, v4) ||  EqualTo(false, v4)));
     }
 
     return 0;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]